第三章:信息收集基础——被动与主动的艺术
各位同学,欢迎来到信息收集这一章。说实话,这是整个渗透测试里最容易被忽视,但也是我个人认为最重要的环节。你想想看,连目标的基本情况都不清楚,你怎么可能找到突破口?
信息收集分两大类:被动和主动。被动收集,说白了就是你不直接碰目标,靠公开信息去挖。主动收集,就是你直接跟目标系统打交道,发数据包、等回应。两者缺一不可。
3.1 被动信息收集:Google Hacking
Google Hacking,不是让你去黑谷歌,而是利用谷歌的搜索语法来挖敏感信息。我刚开始做渗透那会儿,就靠这个找到了不少有意思的东西。
常用的语法其实不多,但组合起来威力很大:
- site: 限定搜索域名,比如
site:example.com - intitle: 搜索标题中包含的关键字
- inurl: 搜索URL中包含的关键字
- filetype: 搜索特定文件类型,比如
filetype:pdf - intext: 搜索页面正文内容
经典案例:搜索管理后台
site:target.com intitle:"login" OR intitle:"admin"
我曾经用这个语法,在一个客户的网站上直接找到了未授权的后台登录页面。嗯,密码还是默认的。
个人经验:别只盯着常见的语法。试试组合 inurl:php?id= 加上 site:target.com,往往能挖到SQL注入点。我有个习惯,每次拿到新目标,先跑一遍Google Hacking,能省不少事。
3.2 Shodan:互联网的扫描器
Shodan,很多人叫它「黑暗谷歌」。它不搜网页,它搜联网设备。路由器、摄像头、服务器,只要连了网,都有可能被它收录。
为什么用它?因为很多系统暴露在公网上,但管理员自己都不知道。我记得有一次,客户说他们的数据库只在内网用。结果我一查Shodan,好家伙,直接暴露在公网上,端口还是默认的3306。
常用搜索语法:
- port: 搜索特定端口,比如
port:22 - country: 限定国家,比如
country:CN - product: 搜索特定软件,比如
product:Apache - org: 搜索组织名称
避坑指南:我曾经在Shodan上搜到一个开放了3389端口的服务器,以为是目标系统。结果一查IP归属,是另一家公司的。所以,一定要确认IP归属,别搞错了目标。
3.3 DNS枚举:挖出隐藏的子域名
DNS枚举,说白了就是找出目标的所有子域名。很多公司只关注主站安全,子域名往往疏于防范。你想想看,一个测试环境用的子域名,可能连补丁都没打。
常用工具:
- dnsrecon:Python写的,功能很全
- dnsenum:老牌工具,稳定可靠
- fierce:适合做子域名爆破
举个例子,用dnsrecon做枚举:
dnsrecon -d target.com -t std
这个命令会做标准的DNS记录查询。我建议加上 -t brt 做暴力枚举,能发现更多隐藏的子域名。
个人习惯:我会先用被动方式收集子域名,比如从证书透明度日志(crt.sh)里拉数据。然后再用工具做主动枚举。这样效率高,而且不容易漏。
3.4 主动信息收集:Nmap端口扫描
被动收集完了,就该主动上场了。Nmap,这工具不用我多介绍吧?渗透测试的瑞士军刀。
端口扫描,不是简单地把所有端口扫一遍就完事了。你得知道扫什么、怎么扫。
| 扫描类型 | 命令示例 | 适用场景 |
|---|---|---|
| TCP SYN扫描 | nmap -sS target |
快速、隐蔽,默认推荐 |
| TCP Connect扫描 | nmap -sT target |
非root用户可用,完整握手 |
| UDP扫描 | nmap -sU target |
慢,但能发现UDP服务 |
| 版本探测 | nmap -sV target |
识别服务版本 |
实战技巧:我一般先扫常见端口(-F),快速了解目标。然后针对开放端口做版本探测(-sV)。别一上来就全端口扫描,太慢了,而且容易被发现。
3.5 服务识别与信息收集工具链
端口扫出来了,接下来就是识别服务。Nmap的 -sV 参数能识别大部分服务,但有时候不够精确。我会配合 whatweb 或 wappalyzer 来识别Web应用。
举个例子:
nmap -sV -p 80,443 target.com
whatweb target.com
这样能知道Web服务器是Apache还是Nginx,用了什么CMS,甚至能识别出具体的插件版本。
说到工具链,我个人的工作流程是这样的:
- 被动收集:Google Hacking + Shodan + DNS枚举
- 主动扫描:Nmap端口扫描 + 服务识别
- 深度探测:针对特定服务做进一步识别
- 信息整理:把所有结果汇总,形成攻击面清单
避坑指南:我曾经在一次项目中,直接用Nmap全端口扫描,结果触发了目标的IDS告警。对方直接封了我的IP。所以,主动扫描一定要控制速度,加个 -T2 或者 -T3,别太激进。
好了,信息收集这块就讲这么多。记住,信息收集不是一次性的工作。渗透过程中,你随时可能发现新的线索,需要回头再做收集。保持耐心,别嫌麻烦。下一章,我们会把这些收集到的信息用起来,开始真正的漏洞挖掘。