渗透测试信息收集
其核心目标是全面梳理目标的资产范围、技术细节、潜在弱点,为漏洞探测和攻击提供精准 “地图”。配置浏览器代理,访问目标网站,通过 “Site map” 获取目录结构;使用 “Intruder” 爆破参数值。拖拽 “Domain” 实体到画布,输入目标域名,右键运行 “Transforms” 生成关联图谱。,搜索企业名→获取 ASN(如 AS15169)→查看该 ASN 包含的 IP 段。打开工具,输
在渗透测试中,信息收集(Information Gathering) 是整个流程的基础,直接决定后续渗透的方向和成功率。其核心目标是全面梳理目标的资产范围、技术细节、潜在弱点,为漏洞探测和攻击提供精准 “地图”。
一、信息收集的核心分类与目标
信息收集通常分为 被动收集(不直接与目标交互,隐蔽性高) 和 主动收集(直接与目标通信,可能被检测),具体收集内容及用途如下:
1. 目标基础信息(被动收集为主)
收集内容:
- 组织 / 企业背景:名称、子公司、业务范围、合作伙伴、地址、电话等。
- 人员信息:员工姓名、职位、邮箱、社交媒体账号(LinkedIn、Twitter 等)、手机号。
- 域名与 IP 资产:主域名、子域名、备案信息、关联 IP 段、ASN(自治系统编号)。
用途:
- 确定渗透范围(避免越权测试)。
- 挖掘社会工程学突破口(如伪装成员工钓鱼)。
- 定位核心资产(如官网、后台系统、业务服务器)。
常用工具及用法:
工具 |
功能 |
用法示例 |
WHOIS(命令行 / 在线工具) |
查询域名注册信息(注册人、邮箱、服务商、过期时间) |
whois example.com(命令行);在线:whois.domaintools.com |
theHarvester |
从搜索引擎、Pastebin 等抓取邮箱、子域名、IP |
theHarvester -d example.com -b google -l 1000(从 Google 抓取 1000 条信息) |
Hunter.io(在线) |
批量获取目标企业邮箱(如@example.com后缀) |
访问 hunter.io,输入域名即可获取邮箱列表 |
LinkedIn(在线) |
收集员工职位、姓名(需账号) |
搜索公司名称,筛选员工信息,用于社会工程学 |
ZoomInfo(在线) |
企业人员、业务关系深度信息(商业工具) |
搜索企业名称,获取组织架构和关键联系人 |
Maltego |
图形化展示信息关联(域名→IP→人员→组织) |
拖拽 “Domain” 实体到画布,输入目标域名,右键运行 “Transforms” 生成关联图谱 |
2. 网络与 IP 信息(被动 + 主动)
收集内容:
- IP 地址范围:目标所属的公网 IP 段(通过 ASN 查询)。
- 网络拓扑:IP 与域名的绑定关系、CDN / 负载均衡存在与否。
- 机房位置:IP 归属地、服务商(如阿里云、AWS)。
用途:
- 确定扫描范围(避免扫描无关 IP)。
- 判断目标防御能力(如存在 CDN 则需绕过)。
- 定位物理位置(辅助线下渗透或合规测试)。
常用工具及用法:
工具 |
功能 |
用法示例 |
ASN 查询(bgp.he.net) |
通过企业名称查 ASN,再查 ASN 对应的 IP 段 |
访问bgp.he.net,搜索企业名→获取 ASN(如 AS15169)→查看该 ASN 包含的 IP 段 |
Censys(在线 / API) |
搜索 IP / 域名的证书、端口信息 |
在线搜索domain:example.com;命令行:censys ip 192.168.1.1(需 API 密钥) |
Shodan(在线 / CLI) |
网络空间搜索引擎,查询 IP 开放的服务、设备 |
在线搜索org:"Example Corp";CLI:shodan search "port:80 example.com" |
ZoomEye(在线) |
类似 Shodan,侧重 Web 资产和设备 |
搜索site:example.com获取关联 Web 服务 |
nslookup/dig |
DNS 解析,获取域名对应的 IP |
nslookup example.com;dig A example.com(查 A 记录);dig MX example.com(查邮件服务器) |
Cloudflare WAF 检测(在线工具) |
判断域名是否使用 Cloudflare CDN |
访问whatismyipaddress.com/ip-lookup,对比域名解析 IP 与实际服务器 IP 是否一致 |
3. 子域名与资产枚举(被动 + 主动)
收集内容:
- 目标主域名下的所有子域名(如admin.example.com、api.example.com)。
- 子域名对应的 IP、端口、服务(如后台管理系统、API 接口)。
用途:
- 扩展渗透范围(主站防护严密时,子站可能存在漏洞)。
- 发现隐藏资产(如未公开的测试环境、内部系统)。
常用工具及用法:
工具 |
功能 |
用法示例 |
Amass |
综合子域名枚举(被动 API + 主动爆破) |
amass enum -d example.com(基础枚举);amass enum -d example.com -brute -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million.txt(结合字典爆破) |
Subfinder |
被动子域名收集(无主动扫描,隐蔽性高) |
subfinder -d example.com -silent -o subs.txt(静默模式,结果保存到文件) |
Sublist3r |
多引擎子域名枚举(Google、Bing 等) |
sublist3r -d example.com -v -o subs.txt(verbose 模式,显示过程) |
OneForAll(GitHub 开源) |
国产多源子域名收集工具 |
python3 oneforall.py --target example.com run(支持爆破、解析、验证) |
crt.sh(在线) |
通过 SSL 证书枚举子域名(证书中常包含子域名) |
访问 crt.sh,搜索example.com获取所有包含该域名的证书及子域名 |
4. 主机与端口信息(主动收集)
收集内容:
- 目标 IP 开放的端口(如 80、443、22、3306)。
- 端口对应的服务及版本(如nginx/1.18.0、ssh-OpenSSH_7.4)。
- 操作系统类型(如 Linux、Windows)。
用途:
- 定位可攻击的服务(如开放的 SSH 可能存在弱口令,MySQL 可能存在未授权访问)。
- 匹配对应服务的漏洞(如特定版本 nginx 的解析漏洞)。
常用工具及用法:
工具 |
功能 |
用法示例 |
Nmap(核心工具) |
端口扫描、服务探测、OS 识别 |
nmap -sV -O -p 1-1000 192.168.1.1(扫描 1-1000 端口,探测服务版本和 OS);nmap -sC -sV example.com(加载默认脚本,深度探测) |
Masscan |
超高速大规模端口扫描(适合 C 段 / 大网段) |
masscan -p 1-65535 10.0.0.0/8 --rate=100000(每秒 10 万包,扫描整个 10 段 IP 的所有端口) |
Zmap |
快速扫描特定端口(如 80/443) |
zmap -p 80 192.168.1.0/24(快速发现网段内开放 80 端口的主机) |
PortScan(Kali 图形化工具) |
简单端口扫描(适合新手) |
打开工具,输入 IP 和端口范围,点击 “Scan” 查看结果 |
5. Web 应用信息(主动收集)
收集内容:
- 技术栈:CMS(如 WordPress、Joomla)、Web 服务器(如 Apache、Nginx)、编程语言(如 PHP、Python)、框架(如 Django、Spring)。
- 目录与文件:隐藏目录(如/admin、/backup)、敏感文件(如robots.txt、config.php.bak)。
- 前端信息:JS 文件、API 接口、表单参数(可能泄露后端逻辑)。
用途:
- 定位技术栈对应的漏洞(如 WordPress 插件漏洞、Struts2 命令执行)。
- 发现后台入口或敏感文件(如备份文件可能包含密码)。
常用工具及用法:
工具 |
功能 |
用法示例 |
WhatWeb |
识别 Web 技术栈(CMS、服务器、框架) |
whatweb https://example.com(基础识别);whatweb -v https://example.com(详细输出,包括插件版本) |
Wappalyzer(浏览器插件) |
图形化识别 Web 技术栈 |
安装 Chrome/Firefox 插件,访问目标网站后点击插件图标查看技术栈 |
Dirsearch |
Web 目录 / 文件爆破 |
dirsearch -u https://example.com -e php,html -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt(爆破 php/html 文件,使用 common 字典) |
Gobuster |
目录 / 子域名爆破(支持多协议) |
gobuster dir -u https://example.com -w /usr/share/wordlists/dirb/big.txt -t 50(50 线程,用 big 字典爆破目录) |
Burp Suite |
抓包分析、目录扫描、参数探测 |
配置浏览器代理,访问目标网站,通过 “Site map” 获取目录结构;使用 “Intruder” 爆破参数值 |
Nikto |
Web 服务器漏洞扫描(如过时组件、配置错误) |
nikto -h https://example.com(扫描目标服务器的已知漏洞) |
CMSeek |
专门检测 CMS 类型及版本 |
python3 cmseek.py -u https://example.com(识别是否为 WordPress 等 CMS 及版本) |
6. 代码与配置泄露(被动 + 主动)
收集内容:
- 公开代码仓库泄露:GitHub、GitLab 上的目标源码(可能包含密钥、密码)。
- 配置文件泄露:.git、.svn版本控制文件,env、config配置文件。
- 备份文件:xxx.bak、xxx.zip等备份包(可能包含敏感信息)。
用途:
- 获取数据库密码、API 密钥等直接凭证。
- 分析源码逻辑,发现自定义漏洞(如硬编码漏洞、逻辑缺陷)。
常用工具及用法:
工具 |
功能 |
用法示例 |
TruffleHog |
扫描代码仓库中的密钥、密码 |
trufflehog git https://github.com/example/repo(扫描目标 Git 仓库的敏感信息) |
GitHack |
从.git泄露中恢复源码 |
python3 githack.py http://example.com/.git/(恢复目标网站的.git 仓库源码) |
SvnExploit |
从.svn泄露中提取文件 |
python svnexploit.py http://example.com/.svn/(下载 svn 版本控制的文件) |
Google Dorks(搜索语法) |
搜索公开泄露的敏感文件 |
搜索site:example.com filetype:env(找example.com的 env 配置文件);site:example.com intitle:"index of" .git(找.git 目录泄露) |
7. 社会工程学信息(被动收集)
收集内容:
- 员工习惯:作息时间、常用软件、沟通方式(如是否用企业微信、钉钉)。
- 组织规则:密码策略(如是否要求包含大小写)、权限分配(如谁能访问后台)。
- 公开事件:企业新闻、招聘信息(可能泄露技术栈,如招聘 “Java 开发” 说明用 Java)。
用途:
- 定制钓鱼邮件(如模仿 HR 发送带恶意附件的邮件)。
- 猜测密码(结合员工姓名、生日生成字典)。
常用工具及用法:
工具 |
功能 |
用法示例 |
CeWL |
根据目标网站内容生成密码字典(如提取关键词作为密码候选) |
cewl https://example.com -m 6 -w pass.txt(从网站提取长度≥6 的词,保存为密码字典) |
HaveIBeenPwned(在线) |
查邮箱是否在数据泄露中(判断员工密码是否已泄露) |
访问haveibeenpwned.com,输入邮箱查询泄露记录 |
Twitter/LinkedIn |
分析员工动态(如出差时间、使用的工具) |
搜索员工账号,观察其发布的内容 |
二、信息收集的流程建议
- 先被动后主动:先用被动工具(如 Shodan、theHarvester)收集公开信息,再用主动工具(如 Nmap、Dirsearch)扫描,减少被目标检测的概率。
- 分层验证:对子域名、IP 等信息,用ping、nslookup验证有效性,避免无效扫描。
- 工具组合:单一工具可能遗漏信息(如 Amass+Subfinder+crt.sh 组合收集子域名)。
三、注意事项
- 合法性:所有操作必须在授权范围内进行,未经允许的信息收集可能触犯法律(如《网络安全法》《刑法》)。
- 隐蔽性:主动扫描可能触发目标的 IDS/IPS 告警,建议控制扫描频率,使用代理或分布式扫描。
信息收集的深度直接决定后续渗透的效率 —— 越全面的信息,越容易找到突破点。
更多推荐
所有评论(0)