第三章:信息收集基础——被动与主动的艺术

各位同学,欢迎来到信息收集这一章。说实话,这是整个渗透测试里最容易被忽视,但也是我个人认为最重要的环节。你想想看,连目标的基本情况都不清楚,你怎么可能找到突破口?

信息收集分两大类:被动和主动。被动收集,说白了就是你不直接碰目标,靠公开信息去挖。主动收集,就是你直接跟目标系统打交道,发数据包、等回应。两者缺一不可。

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,甚至能识别出具体的插件版本。

说到工具链,我个人的工作流程是这样的:

  1. 被动收集:Google Hacking + Shodan + DNS枚举
  2. 主动扫描:Nmap端口扫描 + 服务识别
  3. 深度探测:针对特定服务做进一步识别
  4. 信息整理:把所有结果汇总,形成攻击面清单

避坑指南:我曾经在一次项目中,直接用Nmap全端口扫描,结果触发了目标的IDS告警。对方直接封了我的IP。所以,主动扫描一定要控制速度,加个 -T2 或者 -T3,别太激进。

好了,信息收集这块就讲这么多。记住,信息收集不是一次性的工作。渗透过程中,你随时可能发现新的线索,需要回头再做收集。保持耐心,别嫌麻烦。下一章,我们会把这些收集到的信息用起来,开始真正的漏洞挖掘。