ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

渗透测试信息收集完全指南:从 0 到 1,决定 80% 成败的第一步

2026/8/9 4:56:22 拓冰建站 浏览量
渗透测试信息收集完全指南:从 0 到 1,决定 80% 成败的第一步

一、为什么信息收集是渗透测试的 "地基"

1.1 它决定了攻击的上限

没有充分的信息收集,后续的漏洞发现就像盲人摸象—— 你甚至不知道目标是什么,怎么可能找到它的弱点?信息越充分,攻击面越大,成功概率越高。

1.2 它是攻击路径的 "地图"

信息收集帮助你建立目标系统的完整画像:

plaintext

域名 → IP段 → 开放端口 → 服务版本 → 技术栈 → 员工信息 → 代码泄露 ↓ ↓ └──────────── 组合成一张"攻击地图" ────────────────┘

1.3 它是新手和高手的分水岭

同样一个目标:

  • 新手:扫了 80 端口,看看首页,结束
  • 高手:被动收集找子域名 → 搜索引擎找泄露源码 → GitHub 挖账号密码 → 社工库查员工信息

信息收集的能力,直接决定了渗透测试的深度和广度。


二、核心原则:先被动,后主动

⚠️永远先做被动收集,再做主动收集。

表格

阶段特点风险优先级
被动收集(OSINT)不直接接触目标,通过公开渠道获取情报安全无痕,不会触发告警第一选择
主动收集直接与目标系统交互会留下访问痕迹,必须授权第二阶段

三、被动信息收集(OSINT)四大模块

3.1 模块一:域名与子域名收集

3.1.1 主域名信息(WHOIS)

WHOIS 查询可以获取域名的注册信息,包括注册人、注册商、联系方式、注册时间等。

常用工具:

表格

工具 / 网站特点适用场景
Whois.com国际通用,信息全海外域名
爱站网 / 站长工具国内常用,中文界面国内域名
SecurityTrails查看历史 DNS 记录域名变更追踪

💡 实战技巧:通过 WHOIS 信息反查注册人持有的其他域名,往往能发现关联资产。

3.1.2 子域名收集(突破口)

子域名往往是渗透测试的薄弱环节 —— 测试环境、开发版系统、后台管理通常部署在子域名上,安全性远低于主站。

四大收集方法:

表格

方法原理代表工具
DNS 枚举字典爆破子域名SubDomainsBrute, Sublist3r, OneForAll
搜索引擎site:*.target.com语法Google, Bing, 百度
证书透明度从 SSL 证书中提取子域名crt.sh, censys
空间搜索引擎网络空间测绘FOFA, 360Quake, Hunter

常用命令:

bash

# SubDomainsBrute 枚举子域名 python subdomainsbrute.py target.com # Sublist3r 多引擎收集 sublist3r -d target.com -o subdomains.txt # OneForAll 全功能收集(推荐) python3 oneforall.py --target target.com run
3.1.3 DNS 记录分析

通过 DNS 记录,可以发现目标的 IP 地址、邮件服务器、CDN 等关键信息。

bash

# 查询A记录(IP地址) dig target.com A nslookup target.com # 查询MX记录(邮件服务器) dig target.com MX # 查询NS记录(域名服务器) dig target.com NS # 查询所有记录 dig target.com ANY # 反向查询(PTR记录) dig -x 1.2.3.4

3.2 模块二:公司与人员信息收集

3.2.1 公司基础信息

了解目标公司的基本情况,有助于判断攻击面和防护水平:

表格

信息维度来源价值
工商信息、股权结构企查查 / 天眼查发现子公司、关联资产
业务方向、产品线公司官网推测技术栈和系统类型
技术栈信息Boss 直聘 / 猎聘从招聘 JD 反推技术架构
融资情况、规模IT 桔子 / 36 氪估算安全投入水平
3.2.2 人员信息

员工信息是社工攻击的入口,也是密码喷洒的基础。

常用来源:

  • LinkedIn / 脉脉:员工职位、履历
  • 微博 / 知乎:个人信息、习惯
  • GitHub / Gitee:开发人员账号、代码风格

⚠️合规提醒:人员信息收集仅用于授权安全测试中的身份识别,严禁用于任何违法用途。


3.3 模块三:代码与文档泄露收集

3.3.1 GitHub 信息泄露(高价值)

开发人员经常将代码上传到 GitHub,有时会不小心包含敏感信息:

  • 数据库密码、API 密钥、Access Token
  • 配置文件(.env、config.yml)
  • 内部文档、部署脚本

GitHub Dorks 搜索语法:

plaintext

# 搜索目标公司的组织 org:target-company # 搜索敏感关键词 "target.com" password "target.com" api_key "target.com" secret "target.com" access_token "target.com" db_password # 搜索特定文件 filename:.env "target.com" filename:config.php "database" extension:yaml password

自动化工具:

  • GitLeaks:自动化检测 GitHub 仓库中的敏感信息
  • TruffleHog:查找提交历史中的密钥
  • Gitrob:扫描组织成员的公开仓库

bash

# gitleaks 扫描仓库 gitleaks detect --repo-url=https://github.com/target/repo # trufflehog 扫描 trufflehog github --org=target-company
3.3.2 云盘 / 网盘泄露

员工可能将内部文档上传到云盘,导致敏感信息泄露。

搜索关键词:

plaintext

"target.com" 密码 "target" 内部文档 "target" 项目方案 "target" 运维手册

常用工具:凌风云搜索、盘多多、百度网盘搜索引擎


3.4 模块四:历史漏洞与公开情报

3.4.1 历史漏洞查询

目标系统历史上是否出现过安全漏洞?这些信息可以帮助你了解目标的安全状况和薄弱环节。

表格

平台特点
漏洞盒子 / 补天平台国内漏洞报告平台,中文漏洞详情
CNVD / CNNVD中国国家漏洞数据库
CVE DetailsCVE 漏洞编号查询
Exploit-DB漏洞利用代码数据库
NVD美国国家漏洞数据库
3.4.2 网络空间搜索引擎(神器级)

利用网络空间搜索引擎,搜索目标公司暴露在公网上的所有资产。

表格

工具特点适用场景
FOFA国内最全,查询语法强大国内资产检索首选
360Quake国内空间测绘,数据量大国内资产补充
Hunter奇安信旗下,功能丰富综合资产检索
Shodan国际版,物联网设备为主全球设备检索
Censys国际版,证书数据丰富SSL/TLS 证书查询

FOFA 常用语法速查:

bash

# 基础查询 domain="target.com" # 查询主域名下所有资产 host="target.com" # 查询特定主机 ip="1.2.3.4" # 查询指定IP ip="1.2.3.0/24" # 查询C段 # 组合查询 title="后台管理" && domain="target.com" # 找目标的管理后台 body="Powered by ThinkPHP" && domain="target.com" # 找特定CMS cert="target.com" # 通过证书找关联域名 port="8080" && domain="target.com" # 找特定端口的资产 # 服务识别 banner="Tomcat" && domain="target.com" protocol="redis" && ip="1.2.3.0/24"

四、主动信息收集四大模块

⚠️重要提醒:主动收集会留下明显的访问痕迹,必须在获得书面授权后进行

4.1 模块一:端口扫描

端口扫描是主动信息收集的第一件事 —— 通过扫描目标 IP 的端口,了解开放了哪些服务。

核心工具:Nmap

bash

# ========== 基础扫描 ========== # SYN半开扫描(最常用,相对隐蔽) nmap -sS target.com # 扫描所有端口(1-65535) nmap -sS -p- target.com # 扫描指定端口范围 nmap -sS -p 1-10000 target.com # 快速扫描常用端口 nmap -sS -p 22,80,443,8080,3306,6379 target.com # ========== 深度扫描 ========== # 服务版本识别 nmap -sV -p 80,443 target.com # 操作系统识别 nmap -O target.com # 综合扫描(版本+OS+脚本) nmap -sV -O -sC target.com # ========== 漏洞扫描 ========== # 使用漏洞检测脚本 nmap --script=vuln target.com # 使用特定脚本 nmap --script=http-enum target.com nmap --script=ssl-enum-ciphers target.com # ========== 性能优化 ========== # 快速扫描(T4级别,牺牲一点隐蔽性) nmap -sS -T4 -p- target.com # 只显示开放端口 nmap -sS --open target.com # 输出到文件 nmap -sS -p- target.com -oN nmap_result.txt

其他端口扫描工具:

  • Masscan:极速端口扫描,号称 5 分钟扫完全互联网
  • RustScan:Rust 编写,速度极快,兼容 Nmap
  • Naabu:Go 语言编写,快速端口扫描

bash

# Masscan 快速扫描C段 masscan 192.168.1.0/24 -p80,443,8080 --rate=10000 # RustScan 快速扫描 rustscan -a target.com -- -sV

4.2 模块二:服务指纹识别

端口扫描完成后,需要识别端口上运行的是什么服务以及版本号 —— 不同版本的服务可能存在不同的已知漏洞。

4.2.1 Web 技术栈识别

表格

工具类型特点
WhatWeb命令行识别速度快,插件丰富
Wappalyzer浏览器插件直观方便,日常浏览可用
BuiltWith在线工具信息全面,支持批量
EHole命令行国产工具,CMS 指纹识别强

WhatWeb 常用命令:

bash

# 基本扫描 whatweb http://target.com # 扫描多个URL whatweb http://target.com http://target2.com # 从文件读取URL列表 whatweb -i urls.txt # 详细输出 whatweb -v http://target.com # 隐身模式(随机UA,延迟请求) whatweb -a 1 http://target.com
4.2.2 识别内容清单

plaintext

Web服务器: Apache / Nginx / IIS / Tomcat / Jetty 操作系统: Windows / Linux / BSD 开发语言: PHP / Java / Python / Ruby / .NET / Go CMS框架: WordPress / Drupal / ThinkPHP / SpringBoot 前端框架: React / Vue / Angular / jQuery 数据库: MySQL / SQL Server / Oracle / PostgreSQL / Redis 中间件: Nginx / Apache / Tomcat / JBoss / WebLogic

4.3 模块三:目录与文件扫描

Web 服务器上往往存在隐藏的目录、管理后台、备份文件、配置文件等,这些都可能成为突破点。

4.3.1 常用工具对比

表格

工具语言特点推荐指数
ffufGo快速灵活,模糊测试功能强⭐⭐⭐⭐⭐
gobusterGo高性能,支持 DNS / 目录 / 虚拟主机⭐⭐⭐⭐
dirsearchPython功能全面,国内常用⭐⭐⭐⭐
DirbC经典工具,简单直接⭐⭐⭐
御剑-国产,中文界面⭐⭐⭐
4.3.2 常用命令

bash

# ========== ffuf ========== # 基础目录扫描 ffuf -u http://target.com/FUZZ -w /path/to/dict.txt # 指定线程和延迟 ffuf -u http://target.com/FUZZ -w dict.txt -t 50 -p 0.1 # 过滤状态码 ffuf -u http://target.com/FUZZ -w dict.txt -fc 404 # 递归扫描 ffuf -u http://target.com/FUZZ -w dict.txt -recursion # 模糊测试(参数fuzz) ffuf -u http://target.com/page?id=FUZZ -w dict.txt # ========== gobuster ========== # 目录扫描 gobuster dir -u http://target.com -w dict.txt -t 50 # 输出到文件 gobuster dir -u http://target.com -w dict.txt -o result.txt # 扫描常见扩展名 gobuster dir -u http://target.com -w dict.txt -x php,txt,html,bak # ========== dirsearch ========== # 基础扫描 python3 dirsearch.py -u http://target.com # 指定字典 python3 dirsearch.py -u http://target.com -w dict.txt # 指定扩展名 python3 dirsearch.py -u http://target.com -e php,html,txt
4.3.3 常见敏感目录 / 文件速查

plaintext

# 管理后台 /admin、/manage、/login、/system、/admin.php、/manager # 备份文件 /backup、/bak、/back、/www.zip、/backup.sql、/database.sql # 临时文件 /tmp、/temp、/test、/test.php、/info.php、/phpinfo.php # 版本控制 /.git、/.svn、/.idea、/.DS_Store、/WEB-INF # 配置文件 /.env、/config.php、/config.inc.php、/web.config、/application.yml # 其他 /robots.txt、/sitemap.xml、/crossdomain.xml、/phpmyadmin

4.4 模块四:漏洞初步探测

在完成信息收集后,可以对目标进行初步的漏洞探测,验证已知漏洞是否存在。

表格

工具类型特点
Nmap NSE端口级自带漏洞检测脚本,轻量
XrayWeb 扫描国产神器,被动扫描 + 主动扫描
AWVSWeb 扫描商业级,误报率低
Goby综合评估集成信息收集和漏洞探测
Nuclei模板化YAML 模板,社区驱动

bash

# Nmap 漏洞脚本扫描 nmap --script=vuln target.com # Nuclei 模板化扫描 nuclei -u http://target.com -t /path/to/templates/ # Nuclei 扫描特定漏洞类型 nuclei -u http://target.com -tags cve,sqli,xss

五、新手实战建议

5.1 建立标准化流程

不要想到什么做什么。建议建立一套标准化的信息收集流程,每次拿到目标后都按流程执行,避免遗漏。

plaintext

信息收集标准流程 ├── 1. 目标确认 → 确定测试范围和授权边界 ├── 2. 被动收集 │ ├── WHOIS查询 → 基础注册信息 │ ├── 子域名枚举 → 发现隐藏资产 │ ├── DNS分析 → IP和解析记录 │ ├── 空间搜索引擎 → FOFA/Shodan │ ├── GitHub泄露 → 代码和密钥 │ └── 历史漏洞 → CNVD/CVE ├── 3. 主动收集 │ ├── 端口扫描 → 开放服务 │ ├── 指纹识别 → 技术栈 │ ├── 目录扫描 → 隐藏路径 │ └── 漏洞初探 → 已知漏洞验证 └── 4. 信息整理 → 结构化输出报告

5.2 投入时间学 FOFA

FOFA 这类空间搜索引擎是信息收集的神器。投入时间学会它的搜索语法,能极大提升效率。

bash

# 进阶语法示例 # 找目标公司所有开放的Redis服务 protocol="redis" && domain="target.com" # 找使用了某CMS的目标 body="ThinkPHP" && domain="target.com" # 通过图标哈希找关联资产 icon_hash="123456789" # 找开放了特定端口的C段 port="8080" && ip="1.2.3.0/24"

5.3 不要跳过被动收集

很多新手直接跳到端口扫描,忽略了被动收集。但被动收集往往能发现主动收集看不到的信息 —— 比如被遗忘的子域名、泄露的代码、员工信息等。

被动收集的优势:

  • ✅ 不触发告警,安全无痕
  • ✅ 信息量大,覆盖面广
  • ✅ 零成本,免费工具多
  • ✅ 可以发现 "暗资产"(目标自己都忘了的系统)

5.4 做好信息整理

信息收集会产生大量数据,建议使用结构化方式整理:

推荐工具:

  • 思维导图:XMind / MindMaster → 梳理整体结构
  • 表格:Excel / 飞书表格 → 记录 IP、端口、服务详情
  • 笔记:Obsidian / Notion → 分类整理发现

整理模板:

plaintext

目标:target.com ├── 域名信息 │ ├── 主域名:target.com │ ├── 子域名:[列表] │ └── WHOIS:[摘要] ├── IP资产 │ ├── IP段:[C段/B段] │ └── 开放端口:[表格] ├── 技术栈 │ ├── Web服务器:Nginx 1.18 │ ├── 开发语言:PHP 7.4 │ └── CMS:ThinkPHP 5.0 ├── 敏感信息 │ ├── GitHub泄露:[列表] │ └── 历史漏洞:[列表] └── 初步攻击面 ├── 高危端口:[列表] ├── 已知CVE:[列表] └── 可疑目录:[列表]

5.5 牢记合规底线

⚠️红线提醒:信息收集中的很多行为(端口扫描、目录爆破)会留下明显的访问痕迹,必须在获得书面授权后进行

未经授权的信息收集,即使你只是 "看看",也可能触发法律风险。渗透测试必须在合法授权范围内进行。


六、总结:一张图记住全流程

plaintext

┌─────────────────────┐ │ 目标确认 & 授权 │ └──────────┬──────────┘ │ ┌──────────▼──────────┐ │ 被动信息收集OSINT │ └──────────┬──────────┘ │ ┌────────────────────┼────────────────────┐ │ │ │ ┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐ │ 域名/子域名 │ │ 公司/人员 │ │ 代码/漏洞 │ │ WHOIS/DNS │ │ 企查查/招聘 │ │ GitHub/FOFA │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ └────────────────────┼────────────────────┘ │ ┌──────────▼──────────┐ │ 主动信息收集 │ └──────────┬──────────┘ │ ┌────────────────────┼────────────────────┐ │ │ │ ┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐ │ 端口扫描 │ │ 指纹识别 │ │ 目录扫描 │ │ Nmap/Masscan│ │ WhatWeb │ │ ffuf/御剑 │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ └────────────────────┼────────────────────┘ │ ┌──────────▼──────────┐ │ 漏洞初步探测 │ │ Xray / Nuclei │ └──────────┬──────────┘ │ ┌──────────▼──────────┐ │ 信息整理 & 报告 │ └─────────────────────┘