教程
🛡️

网络安全

Web 安全、渗透测试、密码学与安全合规的系统化教程。

信息收集:渗透前先把目标摸个底朝天

渗透测试 80% 的时间在收集信息。这篇讲 whois、子域名、端口扫描(Nmap)、旁站/C段、目录扫描、指纹识别、Google Hacking 与 FOFA 等资产发现手法。

· 更新于 2026-07-18 阅读量 --

黑客圈有句话:“渗透的本质是信息收集。“你掌握的目标信息越多,能下手的点就越多。一个没暴露的端口、一个被忽略的子域名、一个泄露的备份文件,往往就是突破口。这一篇把主流的信息收集手法过一遍。

所有手法仅用于你对自有或授权的资产进行安全评估。对不属于自己的目标做扫描、枚举可能违反法律法规与服务条款。

信息收集分两类

  • 被动收集:不直接接触目标(查公开数据库、搜索引擎),最难被发现;
  • 主动收集:直接和目标交互(端口扫描、目录爆破),会留下日志。

实战里通常先被动、后主动,能少碰目标就少碰。

whois:注册信息里的大鱼

域名注册时填的信息(注册人、邮箱、电话、注册商)记在 whois 数据库。查法:

whois example.com

可能发现:

  • 管理员邮箱 → 用于社工或撞库;
  • 注册的其他域名(同邮箱)→ 发现关联资产;
  • 手机号、公司名 → 社工素材。

国内域名很多已隐私保护,但老域名、境外域名仍可能泄露。配合 reverse whois(用邮箱反查域名)能挖出同一人持有的资产群。

子域名收集:扩大攻击面

主站 www.example.com 防护严,但它的测试站 test.example.com、后台 admin.example.com、API api.example.com 可能很松。子域名越多,攻击面越大。

常用手段:

  1. 证书透明度(crt.sh):HTTPS 证书会公开记录,查 crt.sh?q=example.com 能捞出很多子域;
  2. 搜索引擎site:example.com
  3. 字典爆破:用 sublist3ramassoneforall 等工具,配合常见前缀字典(www/test/api/admin/mail/blog…)枚举;
  4. DNS 解析记录:查历史解析,发现已下线的旧资产(IP 可能还活着)。

端口扫描:Nmap 是标配

确认了 IP/域名,下一步看”开了哪些门”:

# 基础扫描:探测开放端口和服务版本
nmap -sV -Pn target.com

# 全端口扫描(1-65535)
nmap -p- -sV -Pn target.com

# 探测操作系统
nmap -O target.com

# 常用脚本扫描(漏洞/配置)
nmap -sC -sV target.com
  • -sV 探服务版本(知道是 Apache 2.4 还是 Nginx 1.18,差异巨大);
  • -Pn 跳过 ping 探测(很多服务器禁 ping);
  • -sC 跑默认 NSE 脚本,常能直接发现漏洞线索。

扫出 22(SSH)、3306(MySQL)、6379(Redis)、6379 暴露公网,往往就是突破口。

旁站与 C 段:绕开主站的思路

  • 旁站:同一台服务器上跑的其他网站。主站安全,但同服务器的 bbs.example.com 有洞,就能通过它拿到服务器权限,再反打主站。用 ip138同 IP 网站查询 等查某 IP 上还有哪些站。
  • C 段:同一网段(如 192.168.1.x)的其他机器。内网里常互信,打下一台就能横向移动。

目录与文件扫描:找隐藏入口

很多关键文件不链在页面上:/admin/backup.zip/.git/phpinfo.php/robots.txt。用字典爆破:

# dirsearch 示例
python3 dirsearch.py -u https://target.com -e php,html,bak,zip

# gobuster 示例
gobuster dir -u https://target.com -w /usr/share/wordlists/dirb/common.txt -x php,html,zip

重点留意:

  • robots.txt:可能写出”不想被搜的目录”,反而泄密;
  • 备份文件(.bak.swp~):源码泄露;
  • .git/:源码仓库泄露,可恢复全部代码;
  • phpinfo():暴露绝对路径、配置。

指纹识别:知道对方用什么

“对症下药”前得先知道对方框架。指纹包括:

  • Web 容器:Apache / Nginx / IIS / Tomcat;
  • 语言:PHP / Java / Python / Node;
  • 框架:ThinkPHP、Spring、Django、Laravel;
  • CMS:WordPress、Discuz、织梦。

工具:whatwebwappalyzer(浏览器插件)、御剑 等。知道是 ThinkPHP 5.0,就能直接查对应版本的历史漏洞;知道是 WordPress,就扫 /wp-content/plugins/ 找插件漏洞。

Google Hacking:让搜索引擎替你找

用搜索引擎的高级语法挖敏感信息:

语法作用示例
site:限定站点site:example.com
filetype:限定文件类型filetype:pdf site:example.com
inurl:URL 含某词inurl:admin site:example.com
intitle:标题含某词intitle:"后台管理"
""精确匹配"mysql root@localhost"

实战组合:filetype:sql "CREATE TABLE" site:example.com 可能直接搜到泄露的数据库导出文件;inurl:phpmyadmin 找数据库管理后台。

FOFA / Shodan:网络空间搜索引擎

  • FOFA / Hunter:国内资产搜索引擎,语法如 domain="example.com"title="后台"body="登录"app="Apache"。能一次性拉出某公司的所有暴露资产、某框架的所有实例。
  • Shodan:全球设备搜索引擎,搜摄像头、路由器、工控设备。

这些平台把”资产发现”规模化,是信息收集的利器。

信息整理:别收集完就忘

收集到的东西要沉淀成”目标档案”:

目标:example.com
├─ 子域:test/admin/api/mail
├─ IP:1.2.3.4(开放 80/443/22)
├─ 技术栈:Nginx + PHP 7.4 + ThinkPHP 5.0
├─ 暴露文件:/robots.txt 泄露 /admin、/.git 可访问
└─ 关联:同邮箱注册了 example-api.com

后面每一步利用,都从这份档案里取线索。

更多实战案例:信息收集从域名开始

拿到目标域名后,先做资产梳理:用 whois 查注册信息(有时能拿到管理员邮箱、注册商),用子域名工具(如 oneforall、subfinder、搜索引擎 site:target.com)枚举子域,很多漏洞藏在没人注意的测试子域(test、dev、admin、api)。再用指纹识别(wappalyzer、whatweb)看对方用的什么 Web 容器、什么框架、什么 CMS,因为不同组件有不同历史漏洞。

更多实战案例:端口与服务探测

用 nmap 扫目标开放了哪些端口:nmap -sV -sC target 能识别服务版本并跑默认脚本。开放 3306 说明有 MySQL,开放 6379 说明有 Redis,开放 8080 可能是管理后台。结合目录扫描(如 dirsearch、gobuster 跑常见路径字典)找隐藏后台、备份文件(www.zipbackup.sql)、配置文件(.env)。这些信息拼起来,攻击面就清晰了。

常见坑

  1. 只扫一个域名:遗漏子域和 IP 段,丢掉大量资产。
  2. 目录爆破字典太小:用常见字典扫不到非常规路径,可换大字典或基于响应特征。
  3. 忽视备份与泄露文件.git 目录、.envphpinfo.php 常泄露密钥。
  4. 未授权扫描生产环境:在没授权的情况下扫描他人系统是违法的,务必只在自己拥有或书面授权的环境操作。

进阶:从信息到入口

侦察的目的不是”收集越多越好”,而是找到可达且薄弱的入口。比如发现一个老版本 WordPress 插件有已知漏洞、一个暴露的 Jenkins 没设登录、一个 swagger 接口文档可直接调用——这些都是高价值入口。把信息按”资产—组件—已知漏洞—可利用性”串成链条,测试才有方向。

小测验

  • 问题1:子域名枚举能发现什么?答案:测试/后台/API 等易被忽视的资产。
  • 问题2:开放 6379 端口说明什么?答案:运行着 Redis 服务,可能是未授权访问点。
  • 问题3:侦察的核心目的?答案:找到可达且薄弱的入口,而非堆砌信息。

更多实战案例:信息收集的输出管理

侦察产出不是”看一眼”,而要结构化:资产清单(域名、IP、端口、服务、版本)、组件清单(Web 容器、框架、CMS、中间件)、入口清单(后台、API、上传点、登录口)、泄露清单(备份、.git、.env、phpinfo)。用表格或笔记软件管理,测试时逐项打勾,避免遗漏也避免重复劳动。信息越结构化,后续利用越有方向。

常见坑(终补)

  1. 只扫一个域名:遗漏子域和 IP 段,丢掉大量资产。
  2. 目录爆破字典太小:用常见字典扫不到非常规路径。
  3. 忽视备份与泄露文件:.git、.env、phpinfo 常泄露密钥。
  4. 未授权扫描生产环境:违法,务必只在授权环境操作。

进阶(终补):从信息到入口

侦察目的不是收集越多越好,而是找到可达且薄弱的入口。比如发现老版本插件有已知漏洞、暴露的 Jenkins 没登录、swagger 接口可直接调用——这些是高价值入口。把信息按”资产—组件—已知漏洞—可利用性”串成链条,测试才有方向。

小测验(终补)

  • 问题1:子域名枚举能发现什么?答案:测试/后台/API 等易被忽视的资产。
  • 问题2:开放 6379 说明什么?答案:运行着 Redis,可能是未授权访问点。
  • 问题3:侦察核心目的?答案:找到可达且薄弱的入口,而非堆砌信息。

实战要点:侦察与攻击的衔接

侦察不是终点,要为后续利用服务。每发现一个资产,马上问:它跑什么服务、什么版本、有没有已知漏洞、有没有暴露的接口或后台、能不能直接访问。把”组件 + 已知漏洞 + 可利用性”连成链条。比如发现 WordPress + 某老插件,立刻查该插件 CVE 和利用脚本;发现 swagger,立刻试调用接口。侦察的产出要能直接驱动下一步测试。

易错提醒

别只扫一个域名(漏子域和 IP 段);别用太小字典爆破目录(扫不到非常规路径);别忽视 .git、.env、phpinfo 等泄露文件;最重要的是:未授权不要扫描他人系统,违法。在授权靶场或自搭环境练手,把技能用在正途。

自测

  • 子域名枚举能发现什么?答:测试/后台/API 等易被忽视的资产。
  • 开放 6379 说明什么?答:运行着 Redis,可能是未授权访问点。
  • 侦察核心目的?答:找到可达且薄弱的入口,而非堆砌信息。

延伸思考:侦察的信息安全边界

侦察阶段也可能触碰法律红线:未经授权扫描他人系统、探测他人端口、访问他人泄露文件,都可能有问题。即使是”只是看看”,也可能被认定为非法侵入。安全学习者务必在授权靶场(如各大 SRC 的测试范围、公认可练的 vuln 环境)练习。守法是安全从业者的底线,能力越强越要自律。

一句话自测

  • 侦察为什么必须在授权环境?答:未授权扫描/探测可能违法,务必用靶场。
  • 侦察产出怎么驱动利用?答:把”组件+已知漏洞+可利用性”连成链条。

这一篇你该记住的

信息收集占渗透大部分时间,分被动(查公开源,难被发现)和主动(扫描,留日志)。关键动作:whois 挖注册信息、子域名扩大攻击面、Nmap 扫端口和服务版本、查旁站/C 段绕主站、目录爆破找隐藏文件、指纹识别定框架、Google Hacking 与 FOFA 搜敏感资产。所有发现要整理成目标档案。

摸清了目标底细,动手前还有一件比技术更重要的事——规矩。下一篇讲 OWASP Top 10 与安全观:黑客守则、法律红线,以及业界公认的 Web 风险清单,先把价值观立住。