信息收集在Kali里的份量,比你想的重得多
很多人刚开始接触Kali Linux,第一反应就是“装好了就能一键黑掉全网”,结果打开终端面对几百个工具,完全不知道先干什么。实际上,一次正经的授权渗透测试,或者一次自我安全巡检,真正的胜负手往往不是那几下“攻击动作”,而是前期信息收集做得够不够扎实。Kali作为安全发行版,最大的价值之一就是天生自带一整套信息收集武器库,从网段探测、端口识别、服务指纹,到Web目录枚举、无线网络分析,再到主机内部枚举,几乎覆盖了信息收集的每一个环节。
这篇文章想分享的,不是某一条具体攻击链路的复现,而是我在实际项目里怎么把Kali的“信息收集”能力打散、重组、串成一套可复用的流程。适合刚装好Kali不知道从哪下手的初学者,也适合已经用过一些工具但总觉得“扫完不知道下一步该干嘛”的朋友。读完你至少能回答三个问题:信息收集到底要收什么?用什么工具收?收集完怎么组织这些数据。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
1. 信息收集为什么是Kali实战里的“第一顺位”
先想清楚一件事:渗透测试或者安全评估,本质上是在回答“这个目标哪里最容易被撕开口子”。你连目标暴露了哪些服务、什么系统、哪些版本都不知道,就拿着Exp往死里怼,属于撞大运。信息收集的意义,就是把这些问号一个一个变成句号。
1.1 信息收集的分类:被动收集和主动收集不能只选一边
信息收集通常被分成两大类。被动信息收集,是指不直接触碰目标系统的信息获取方式,比如查DNS解析记录、翻证书透明度日志、搜搜索引擎快照、看目标站点历史页面等。这类动作在授权边界内做,隐蔽性高,而且经常能挖到主动扫描发现不了的东西,比如挂在子域名上的老旧后台、泄露的内部文档。
主动信息收集则直接和目标系统产生交互,端口扫描、服务识别、目录爆破、Web指纹获取都属于这一类。主动收集效率高、结果直接,但动静也大,容易被各类防护设备感知。实际项目中,我习惯先被动后主动,先用被动方式把目标的大致轮廓画出来,再用主动方式去验证和深挖。两条腿走路,信息才够全。
1.2 Kali发行版对信息收集的“原生优势”
Kali在信息收集上其实没做什么神奇的事情,它的厉害之处在于把散落在全网的开源工具做了系统化整合。nmap、masscan、dnsrecon、theHarvester、whatweb、gobuster、wireshark、airodump-ng这些工具,本来就是各自领域的佼佼者,Kali要做的是保证它们装好就能用、依赖不冲突、版本不落后。这看起来简单,但真到自己手动在别的系统上一个个装的时候就懂了,光编译依赖就能耗掉一下午。
另外,Kali的滚动更新策略保证了工具的时效性。新出的扫描器、新的指纹库,很快就能同步进源里。对于信息收集这种极其依赖工具更新速度的工作,这一点比什么都重要。我见过不少人在其他发行版上手动编译新版本nmap,折腾半天,不如直接在Kali里更新来得省心。
2. 网络层信息收集:从网段发现到服务指纹的完整链路
网络层信息收集是大多数渗透测试的第一步。目标再大,最终都要落在IP地址和端口上。这里说的网络层,不是指OSI第三层的路由协议,而是泛指“基于网络协议栈的信息探测”,也就是通过网段扫描、端口扫描、服务识别,搞清楚目标在网络里开了哪些门。
2.1 主机发现:先画出目标在网段里的“活点地图”
拿到一个网段,第一步不是拿nmap去怼端口,而是先做存活主机发现。对一个大网段跑全端口扫描,时间和流量成本都太高。Kali里主推的是nmap的-sn参数,也就是Ping扫描。
bash复制nmap -sn 192.168.1.0/24
这条命令会通过ICMP Echo、TCP SYN到443端口、TCP ACK到80端口、ARP请求等方式判断主机是否存活。在本地局域网里,ARP扫描的效率最高,因为同网段内的主机对ARP请求基本不会拒绝。实测下来,一个/24的网段,几秒钟就能把存活主机列表拉出来。
如果目标环境大量禁用了ICMP,可以在-sn后面加上-PS22,80,443,3389这类参数,强制使用TCP SYN探测常见端口,穿透性更好。比如:
bash复制nmap -sn -PS22,80,443,3389 10.10.16.0/24
这时候nmap会对目标主机的这几个端口发送SYN包,只要任何一个端口有响应,就认为主机存活。这种方式比单纯依赖ICMP靠谱得多,因为防火墙可能会放行TCP流量但丢弃ICMP。
在这个阶段,我会顺便把nmap的输出存成文件,便于后续处理:
bash复制nmap -sn -PS22,80,443,3389 10.10.16.0/24 -oG - | awk '/Up$/{print $2}' > live_hosts.txt
-oG是Grepable输出格式,配合awk就能直接提取出所有存活IP,存进文件作为后续扫描的输入列表。
2.2 端口扫描与版本识别:别盲目扫全端口,要有策略
主机存活的名单拿到手后,就要对每一台做端口扫描了。这里最大的误区是一上来就nmap -p- -sV 目标IP,全端口加版本探测确实全面,但速度极慢,而且大量服务根本不会开放在高位端口上。
我是这么分级的:
- 先扫常见端口Top 100或Top 1000,判断目标大概开了哪些服务;
- 对初扫有结果的IP,再用
-p-扫全端口,而且配合--min-rate提速; - 最后只对开放端口做详细的版本识别和脚本扫描。
Kali里nmap的版本号远比其他发行版更新快,支持的探测脚本也更多。常用命令可以这样组合:
bash复制nmap -sS -sV -T4 -p 1-1000 192.168.1.10 -oA nmap_initial
nmap -sS -T4 --min-rate 5000 -p- 192.168.1.10 -oA nmap_fullport
nmap -sV -sC -p 22,80,443,3306,8080 192.168.1.10 -oA nmap_version
第一步做常见端口初扫,第二步快速确认全端口开放情况,第三步对确认开放的重点端口做深度服务识别和默认脚本扫描。-sC会启用nmap的默认脚本集,这些脚本会尝试获取服务banner、枚举开放共享、检测常见漏洞,信息量很大。
这里有个经验:--min-rate 5000的意思是让nmap每秒最少发送5000个探测包,全端口扫描在两三分钟内就能跑完。但要注意,这个速率对目标网络可能造成明显的流量冲击,一定要在授权范围内使用。如果是对自己公司的办公网做巡检,建议把速率降到1000以下,避免打扰业务。
2.3 服务和操作系统指纹:版本号决定后续路子怎么走
服务识别得到的结果,绝不只是让你知道“这台机器开着SSH”这么简单。真正的价值在于版本号。OpenSSH 7.2和OpenSSH 9.3的漏洞面完全不是一个量级,Apache 2.4.49和2.4.50之间的差别可能是一个目录穿越Exp的事。
nmap的服务识别是基于指纹库的,它通过发送各种特征探测包,和服务响应做比对,从而识别出具体的服务名称和版本。操作系统的识别逻辑类似,通过TCP/IP协议栈的细微差异来推断OS类型,这就是nmap里-O参数做的事情。
bash复制nmap -O -sV -p 22,80,443 192.168.1.10
实测下来,对于常见的Linux发行版、Windows版本,nmap的OS识别准确率相当高。当然,不排除有些系统做了协议栈伪装,比如用ipfw或pf的“不透明”模式来干扰指纹识别,但大部分时候我们并不需要做到100%准确,识别到“Linux大概什么版本”“Windows Server哪一代”这个精度,就足够支撑下一步判断了。
服务端口信息整理出来后,建议立刻形成一张表,这会成为全程测试的核心参考:
| 端口 | 服务 | 版本 | 备注 |
|---|---|---|---|
| 22/tcp | OpenSSH | 7.2p2 | 需关注CVE-2016-6210等 |
| 80/tcp | Apache httpd | 2.4.49 | 存在路径穿越/代码执行风险 |
| 3306/tcp | MySQL | 5.7.26 | 弱口令或其他漏洞面 |
| 8080/tcp | nginx | 1.18.0 | 反向代理,需继续探查Web应用 |
3. Web应用与目录层面的信息收集:Nmap之外的另一半战场
网络层的端口和服务扫完了,你会发现在现实里很大比例的开放端口都集中在80/443/8080这些Web端口上。到了这一步,信息收集的主战场就从nmap转移到了Web应用层面。Web应用通常是攻击面最大的部分,因为它的业务逻辑复杂、入口众多、开发水平参差不齐。
3.1 Web指纹识别:知道对方用了什么技术栈,才能选对工具
Web指纹识别的目的是搞清楚这个Web应用是基于什么框架、什么中间件、什么前端技术搭的。同样是访问一个首页,WordPress站点的响应头、页面结构、静态资源路径和ThinkPHP站点完全不一样。识别出技术栈后,后续的漏洞探测、exp选择、目录爆破思路都会立刻清晰。
Kali里我用的比较多的指纹识别工具是whatweb,它的数据库非常丰富,识别速度快,输出也很直观:
bash复制whatweb http://192.168.1.10
输出会包含服务器类型、框架、CMS、JavaScript库、认证方式等信息。比如识别到目标用了WordPress,下一步就可以用wpscan做更细粒度的枚举,包括用户枚举、插件扫描、主题识别,甚至弱密码爆破。如果识别到ThinkPHP,那思路就转向框架历史漏洞列表。
有时候whatweb识别不出来,我就会用浏览器开发者工具手动看响应头和页面源码特征,或者用curl直接查看响应头:
bash复制curl -I http://192.168.1.10
看X-Powered-By、Set-Cookie、Server这些头和页面底部的版权信息,能补充大量指纹线索。指纹识别这个环节,工具和人工结合的效果最好。我见过有些站点的Server头被伪装过,但页面里还残留着框架特有的meta标签或者注释信息,这些是工具扫不出来的。
3.2 目录爆破:暴力枚举背后的字典功夫
指纹识别完成了,知道了站点的技术栈,接下来就要开始找隐藏的入口。目录爆破的原理很简单:不断地向目标发送路径请求,通过响应码和页面内容的差异来判断路径是否存在。Kali里的目录爆破工具很多,dirb、dirsearch、gobuster各有特点,我常用的是gobuster,并发性能出色。
bash复制gobuster dir -u http://192.168.1.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 -x php,html,txt,bak
-t 50是并发线程数,-x参数指定了要附加探测的扩展名。这里有个坑,很多新手默认只扫不带扩展名的路径,结果漏掉了大量php、bak、txt这类敏感文件。bak后缀尤其值得关注,开发者经常把配置文件的备份文件留在Web目录下,比如config.php.bak,直接访问就能看到源码或数据库凭据。
字典的选择也很讲究。Kali自带的/usr/share/wordlists/dirbuster系列字典覆盖了最常见的路径名,但如果目标是特定业务的站点,路径往往带业务特征,比如/admin、/user、/manage,这种时候就要根据站点语言和业务类型自己组合字典。dirsearch在这方面做得很好,直接支持--prefix和--suffix参数,可以快速生成个性字典:
bash复制dirsearch -u http://192.168.1.10 --prefix=/api/ --suffix=.json
3.3 子域名与虚拟主机枚举:别把眼光只放在一个域名上
很多Web应用的入口,并不是主域名直连的那台服务器,而是藏在子域名或虚拟主机后面。子域名枚举的价值在于,目标主站可能防护森严,但某个测试环境子域名或后台子域名可能直接裸奔在外网。
Kali里dnsrecon是子域名枚举的老牌工具,支持字典爆破和枚举常见记录类型:
bash复制dnsrecon -d example.com -t brt -D /usr/share/wordlists/dnsrecon/subdomains-top1mil.txt
-d指定目标域名,-t brt表示使用字典爆破模式,-D指定子域名字典。这个环节里,字典质量和目标域名的历史解析记录同样重要。我还会用证书透明度日志来查询,比如通过crt.sh在线查询域名的SSL证书历史,证书里往往会包含所有合法子域名记录,这是被动收集阶段的高价值手段。
不同的子域名可能解析到完全不同的IP,因此枚举出子域名后,一定要做一次“子域名→IP→端口”的关联,把新发现的IP重新加入前面提到的网络层扫描清单里。一个子域名后面可能对应一个全新的网段,那里也许才是真正的突破口。
4. 无线环境的信息收集:从wlan0到抓包分析的授权测试路径
Kali的看家本领之一就是无线安全分析,也正因如此,围绕“Kali wifi抓包”“无线字典下载”的搜索热度一直居高不下。无线信息收集的核心目标是:了解周围环境的无线信号分布、协议类型、加密方式、客户端连接状态等。注意,这里说的是信息收集阶段,不是攻击阶段。破解WiFi密码属于攻击行为,只在具备合法授权的测试中才能做,而且这类测试的目的是验证网络的安全性,而不是盗取他人网络资源。在实际工作中,我更多是用这些手段来评估自己公司的无线网络安全状况。
4.1 无线网卡模式的切换:必须先关掉NetworkManager
做无线信息收集,第一步是让无线网卡进入监听模式。监听模式下,网卡不再关联任何AP,而是被动接收射频范围内的所有802.11帧。这个过程中最大的拦路虎是NetworkManager,它会自动接管无线网卡,不断尝试连接已知网络,导致监听模式无法保持。
在Kali中,关闭NetworkManager对网卡的管理后,用airmon-ng实现监听模式切换:
bash复制sudo systemctl stop NetworkManager
sudo airmon-ng check kill
sudo airmon-ng start wlan0
这里需要注意,airmon-ng check kill会把NetworkManager和相关网络管理进程全部停掉,这会导致我们失去现有的网络连接。如果当前是靠无线网络访问远程服务器的,执行这条命令前要先想好退路,否则可能把自己的操作环境搭进去。
执行airmon-ng start wlan0后,网卡会进入monitor模式,通常变成wlan0mon接口。可以用iwconfig确认接口状态,看到Mode:Monitor就说明成功了。很多新手在这个环节会卡住,通常是因为网卡芯片不支持监听模式,或者驱动不对。购买USB无线网卡时,要优先选择芯片为Atheros AR9271、Realtek RTL8812AU、RTL8187这类在Kali社区有完善驱动的型号。
4.2 无线网络扫描:怎么看懂Beacon帧里的信息
网卡进入监听模式后,用airodump-ng扫描无线环境:
bash复制sudo airodump-ng wlan0mon
扫描结果会分成上下两块。上半部分是AP列表,显示BSSID、信道、信号强度、加密方式、认证方式、速率等信息;下半部分是客户端列表,显示每个客户端当前关联的BSSID。这些信息对网络分析很有价值。
重点看加密方式那一列。常见的包括OPN(开放)、WEP、WPA、WPA2、WPA3。OPN开放网络的话,信号范围内任何人都能直接连接,这在公共场所很多,但也意味着所有流量都暴露在空气中;WEP已经可以被轻易破解,如果企业还在用WEP,基本等于没有加密;WPA2是目前的主流,但如果使用弱密码,仍可能通过字典攻击或PMKID攻击的方式被拿下;WPA3理论上安全得多,但依然有降级攻击等研究方向。
这些信息的价值不在于“能不能拿来破解”,而在于判断一个无线网络的安全基线是否合格。比如做企业无线巡检时,发现某个接入点还在用WEP,这就是一个明确的高危风险项。
4.3 对目标信道做细粒度抓包:把连接过程“回放”出来
确定目标AP的工作信道后,需要把airodump-ng锁定到该信道,这样抓到的帧才完整。指定目标信道和BSSID抓取并保存到pcap文件:
bash复制sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon
抓到的pcap文件可以直接丢给Wireshark分析。Wireshark对802.11帧的解码能力非常强,可以解析出管理帧、控制帧、数据帧的全部字段。分析无线连接过程中,最值得关注的是认证和关联过程:客户端发送Authentication Request,AP返回Authentication Response;之后客户端发送Association Request,AP返回Association Response。这些帧在Wireshark中都有对应的类型和过滤条件。
如果你把Wireshark装好了,用以下过滤条件可以清晰看到特定客户端和AP之间的连接过程:
plaintext复制wlan.addr == AA:BB:CC:DD:EE:FF
这个过滤会显示该MAC地址参与的所有无线帧,包括探测请求、认证请求、关联请求、密钥协商过程中的EAPOL帧等。EAPOL帧是WPA/WPA2四次握手的关键帧,通过分析握手包的完整性,能判断通信过程是否正常,也能为后续的密钥安全性评估提供依据。
对于刚接触Wireshark的读者,建议多抓几次自己路由器的正常连接过程,然后在分析里对照着看:第一次软件连接是哪个帧,断连是哪个帧,重连又是哪个帧,把正常连接的帧序列建立起来之后,以后看到异常的认证流程就能一眼识别出来。
5. 主机内部信息收集:拿到最基本的访问权限之后该看什么
信息收集不只是攻击开始前和攻击过程中的事。拿到一个低权限的shell之后,信息收集仍然要持续进行。这个环节在Kali的语境下通常叫“主机枚举”或“本地枚举”,目标是从系统里发掘出能帮助你提升权限、扩大战果的线索。对于防御方来说,这个环节也同样重要——你可以用同样的思路检查一台被攻陷的主机上暴露了哪些信息。
5.1 系统信息与用户枚举:先把这台机器的“身份”搞明白
登录一台Linux主机后,第一步要收集的是基础系统信息。Kali自带的各种命令在这一步能发挥极大的作用:
bash复制uname -a
cat /etc/os-release
hostnamectl
id
cat /etc/passwd
uname -a能显示内核版本,内核版本直接关联到可利用的内核漏洞。cat /etc/passwd可以列出系统所有用户账户,重点是找出那些带有可登录shell的账户,比如/bin/bash或/bin/sh的,而不是仅仅存在系统服务账户。id则可以确认当前用户的UID和所属组,如果你的用户在某些特殊的组里,比如sudo组、docker组、disk组,那后续的提权路径一下子就会变得清晰很多。
这里分享一个Kali里很好用的本地枚举辅助脚本思路:用一行命令把系统里带可登录shell的用户提取出来:
bash复制grep -E "/(bash|sh|zsh)$" /etc/passwd
过滤出来的名单就是系统里真正的“人”的账户,值得逐一检查密码策略和登录历史。在排查潜在风险时,这一步能快速缩小范围。
5.2 敏感文件与配置泄露:找到那些“不该存在”的数据
系统里最危险的不是漏洞,而是放错位置的敏感数据。我见过不少案例,低权限用户能读取到数据库配置文件、备份压缩包、私钥文件、日志文件中的凭据记录,这些本不该出现在低权限可见范围内。
在主机内部做信息收集时,可以用find命令定位几类高价值文件:
bash复制find / -name "*.conf" -o -name "*.bak" -o -name "*.sql" 2>/dev/null
find / -name "id_rsa" -o -name "*.pem" -o -name "*.key" 2>/dev/null
find / -type f -user root -perm -4000 2>/dev/null
前两条定位配置文件和私钥文件,第三条经典的命令是查找SUID权限文件。SUID文件之所以关键,是因为当普通用户执行带SUID的文件时,进程会以文件属主的权限运行。如果某个SUID文件存在已知利用方式,那么低权限用户可以直接借它完成提权。比如绝对路径下有写权限的SUID脚本、find命令本身带SUID等。
对于Windows主机,信息收集的侧重点稍有不同,主要关注系统版本补丁情况、当前用户权限、自动登录凭据、浏览器保存的密码、PowerShell历史记录等。Kali里可以用impacket工具包里的脚本通过远程方式收集Windows的信息,比如使用secretsdump.py远程提取SAM数据库的密码哈希。当然,这需要先获得相应的远程权限。
5.3 网络连接与历史记录:从蛛丝马迹里还原机器“去过哪里”
一台主机如果被入侵过,攻击者留下的痕迹往往藏在网络连接和Shell历史记录里。检查当前监听端口和已经建立的连接,能帮助判断这台机器是否已经和外部存在可疑通信:
bash复制ss -tulnp
ss -tnp state established '( dport = :443 or sport = :443 )'
history
ss -tulnp列出所有正在监听的TCP和UDP端口及对应进程,这个清单和前面nmap扫到的端口清单做对比,往往能发现一些nmap没扫到但本机确实在监听的高位端口,这可能是主机防火墙规则做了限制,也可能是后门程序在监听。history命令能查看当前用户的历史命令记录,开发者在命令行里输过的MySQL密码、SSH私钥路径、上传下载过的文件,都能在这里看到。如果当前用户有sudo权限,还可以尝试查看root用户的history文件:
bash复制sudo cat /root/.bash_history
注意执行这个动作时一定要确认自己有权这样做,并且是在授权测试或自己设备的排查范围内。在所有场景下,遵守授权边界和法规要求都是不可逾越的红线。
6. 信息收集的全局组织:从单点工具到协同作战的效率提升
工具越来越多,信息越来越杂,如果不对收集到的数据进行统一组织,收集得越多反而越乱。跨过新手阶段后,真正拉开效率差距的,是信息整理和关联分析的能力。
6.1 数据记录的规范:统一格式才能避免返工
我在接触一个新目标的时候,无论是正规渗透测试还是企业安全巡检,都会先建立一个目录结构,大概长这样:
plaintext复制project/
├── recon/
│ ├── nmap/
│ ├── web/
│ ├── wireless/
│ └── osint/
├── exploits/
├── loot/
└── notes/
recon目录专门放信息收集阶段产生的文件,按扫描类型分子目录;exploits放后续用到的漏洞代码;loot放拿到的有效数据;notes里则用Markdown记录分析过程和结论。别小看这个习惯,它能让项目收尾时的报告整理效率提升一倍。而且一旦不同环节之间需要交叉关联,比如把nmap扫描到的Apache版本和Web指纹识别的中间件做对照,目录结构和统一命名会帮你节省大量时间。
6.2 信息收集的自动化串联:扫描结果之间的依赖关系
当目标主机数量多、服务复杂的时候,手工一条条跑命令会非常消耗时间。这时可以用脚本把不同工具串起来。比如用一段简单的bash脚本,将存活主机列表作为输入,逐台执行初步扫描:
bash复制while read host; do
echo "[*] Scanning $host"
nmap -sV -T4 -p 22,80,443,3306,8080 "$host" -oN "recon/nmap/$host.txt"
done < live_hosts.txt
这只是最基础的串联。更进阶的做法是在扫描完所有主机后,自动解析nmap输出里的服务信息,把端口和版本提取成表格文件。Kali下方方面面的信息收集工具,本身就像积木,怎么拼、按什么顺序拼,才是真正体现经验的地方。
自动化串联时有个重要提醒:每个工具的输出都要保留原始数据,不要只保留处理后的结果。因为后续某个环节可能需要回溯原始数据,重新解析某个字段。原始文件丢失后的“重新扫描”不仅是时间上的浪费,也可能会暴露更多探测痕迹。
6.3 信息收集过程中常见的“坑”与对策
信息收集看起来简单,做起来坑不少。把几个高频问题列出来,供参考:
- 扫描速率太高导致丢包:nmap快速扫描时,部分目标主机在网络拥塞情况下会丢弃探测包,导致端口被漏报。对策是先慢速扫一轮常规端口,再用高速扫全端口,最后对比两轮结果的差异。
- 修改了网络配置导致断网:在Kali里调整无线网卡模式或修改网络接口时会中断现有连接,操作前务必保存好当前环境的IP、网关和DNS参数,方便之后恢复。
- 只信一个工具的输出:不同工具对同一目标的扫描结果可能存在偏差,比如nmap识别端口服务正常,但whatweb识别Web框架失败。这时候需要多个工具交叉验证,别急着下结论。
- 忽视防御方视角的日志:信息收集阶段产生的探测流量,都会被目标的安全设备记录。如果你是在做授权测试,务必在测试前确认哪些动作可以做、哪些被明确禁止。如果是自我学习,则建议在自己搭的靶场或实验环境里练习。
- 忘记保存会话和结果文件:在交互式工具里看到的扫描输出,在终端关闭后就消失了。建议所有扫描动作都配合
-oA或-oN参数将结果落盘。以后需要回看或者出报告时,这些文件都是第一手证据。
6.4 在不同网络环境下调整收集策略
同样一套工具,在本地局域网、远程外网、云环境、隔离网络里使用时,策略完全不同。本地局域网可以大胆用ARP扫描、高并发探测,因为延迟低且网络环境可控;远程外网则要控制探测频率,避免影响目标业务或触发抗D策略,同时要考虑源IP被封禁的概率;云环境要留意敏感端口访问来源的限制,很多云安全组会把大范围扫描的IP直接封掉。
对于Kali装在虚拟机里的用户,无线相关的功能通常受限于宿主机网卡直通的问题。想用Kali做无线网络分析,要么给虚拟机直通USB无线网卡,要么直接在一台物理机上跑Kali。这是个硬件层面的选择,直接影响后续实战的顺畅程度。
最后分享一个个人习惯。每次信息收集阶段结束,我会强制自己用一段话概括目标的全貌,包括目标网络拓扑、开放服务、技术栈、可能存在的薄弱环节,以及下一步最先要验证的3个假设。写得出来,说明信息收集到位了;写不出来,说明还欠火候,需要回到前面的环节补齐。信息收集的终点不是“扫完所有端口”,而是“对目标有了足够清晰的判断,能支撑下一个决策”。做到这一步,后面用什么工具、做什么尝试,都会顺利很多。
