万字长文窥探信息收集真正的艺术
字数 2732 2025-08-22 12:23:06
信息收集的艺术:全面渗透测试资产收集指南
前言
信息收集远不只是简单的子域名扫描、目录爆破和端口探测。本文将系统性地介绍信息收集的完整流程和方法,帮助安全研究人员掌握资产发现、扩展和梳理的真正艺术。
信息收集流程概述
- 自动化信息收集阶段:使用工具自动进行初步信息收集
- 资产发现阶段:收集目标主体的大部分资产
- 组织信息收集
- 主域名收集
- 子域名收集
- 资产扩展阶段:进一步收集更多隐蔽资产
- 端口收集
- C段收集
- 资产梳理阶段:测活+指纹识别
- 自动化扫描阶段:漏洞扫描器测试
- 重点目标针对收集阶段:对关键资产进行深度信息收集
[0] 自动化信息收集阶段
在手工信息收集前,建议使用自动化工具快速进行大致的信息收集,与手工收集相互补充。
推荐工具:
- ARL(尤其推荐其文件泄露功能)
- shuize
- kunyu
- nemo_go
- ScopeSentry
[1] 资产发现阶段
组织结构收集
简介:
针对大型目标(集团企业、政党单位、高校等)收集其子公司、股权结构等信息。
作用:
- 全面收集所有子公司,扩大攻击面
- 采用自下而上或自上而下的攻击策略
- 发现内网横向移动机会
收集方法:
股权收集法
使用爱企查查看股权穿透图,记录股权占比>50%的子公司名称,保存为company.txt
关键人物收集法
从法人代表和高管入手,查找其关联公司,与股权收集结果相互补充
工具:
- 爱企查:https://aiqicha.baidu.com/
主域名收集
利用company.txt中的公司名收集其主域名。
方法:
ICP备案查询
- 官网查询接口(适合少量查询):https://beian.miit.gov.cn/
- 第三方程序查询接口(适合批量查询):https://www.beianx.cn/
- 使用ICPSearch工具批量爬取:
icpsearch -f company.txt - 使用正则提取域名:
([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}
- 使用ICPSearch工具批量爬取:
小蓝本查询
https://sou.xiaolanben.com/ 知识产权板块获取ICP备案
结果:保存主域名为domain.txt
子域名收集
网络测绘引擎(以FOFA为例)
domain="主域名" || cert="公用名" || cert="组织名1" || cert="组织名2" || cert="组织名3"
技巧:
- 结合domain和cert查询语法获取更多资产
- 手动查看HTTPS站点证书获取更多组织名
- 批量处理
domain.txt:# join.py脚本示例 with open('domain.txt', 'r') as file: lines = [line.strip() for line in file if line.strip()] result = ' || '.join([f'domain="{line}" || cert="{line}"' for line in lines]) print(result) - 开启"all"模式查询历史资产(需会员)
格式处理:
使用format.py脚本分离子域名和URL:
# 示例处理逻辑
if line.startswith('http://'):
subdomains.append(line[7:])
urls.append(line)
elif line.startswith('https://'):
subdomains.append(line[8:])
urls.append(line)
else:
subdomains.append(line)
urls.append('http://' + line)
urls.append('https://' + line)
英文证书查询(crt.sh)
- 精准查询:
?q=huawei.com - 模糊查询:
?o=huawei
使用crt.sh.py脚本批量提取公用名:
# 提取<TR>标签中的公用名
common_names = re.findall(r'<TD>(.*?\.(?:cn|com|org|net))</TD>', html_content)
OneForAll
集成了多种子域名收集方式,需配置API密钥发挥最大功效:
python oneforall.py --target huaweiyun.com run
python oneforall.py --targets domain.txt run
结果处理:
合并subdomain-1/2/3.txt、url-1/2/3.txt、ip-1/2.txt,去重后得到:
subdomain.txturl.txtip.txt
[2] 资产扩展阶段
端口收集
对ip.txt进行全端口扫描:
fscan.exe -hf ip.txt -t 3000 -p 1-65535 -num 100 -np -o result.txt
使用fscanOutput.py整理扫描结果。
C段收集
- 使用Eeyes工具整理C段:
Eeyes -l subdomain.txt - 手动选择存活IP多的C段保存为
c.txt - 合并
ip.txt和c.txt为ip_c.txt - 全端口扫描:
fscan.exe -hf ip_c.txt -t 3000 -p 1-65535 -num 100 -np -o result.txt
HOST碰撞
- 检查无法解析的域名:
# domain_auth.py示例 try: ip = socket.gethostbyname(domain) return True except socket.gaierror: return False - 使用工具进行HOST碰撞:
- HostCollision:https://github.com/pmiaowu/HostCollision
- Hosts_scan:https://github.com/fofapro/Hosts_scan
[3] 资产梳理阶段
测活+指纹识别
- 处理IP为URL格式:
# ipadd.py示例 http_ip = "http://" + ip https_ip = "https://" + ip - 合并去重得到
web.txt - 指纹识别:
TideFinger -uf web.txt -nobr -nopoc ehole.exe finger -l web.txt
[4] 自动化扫描阶段
# Nuclei
nuclei.exe -list test.txt -o output.txt
# Afrog
afrog -T urls.txt
# Xray
xray.exe webscan --basic-crawler http://xxxx.com/ --html-output output-a.html
xray.exe webscan --listen 127.0.0.1:7777 --html-output output-b.html
[5] 重点目标针对收集阶段
架构信息收集
- 反向代理:使用Wappalyzer识别
- 负载均衡:使用
lbd工具识别 - 站库分离:分析请求响应特征
- CDN:
- 识别:多地ping测试(17ce)
- 绕过方法:
- 全球ping(ipip.net)
- 历史DNS记录(IP138)
- 接口查询(Get-site-ip)
- 反向邮件
- FuckCDN工具
- WAF:使用wafw00f识别
源码信息收集
- CMS识别:
- 云悉
- 360观星
- 源码泄露:
- index of目录遍历
- GitHack:https://github.com/lijiejie/GitHack
- SvnHack:https://github.com/shengqi158/svnhack
- ds_store_exp:https://github.com/lijiejie/ds_store_exp
网站基本信息
- 语言:Wappalyzer识别
- 数据库:Wappalyzer/fofa识别
- Web容器:Wappalyzer/fofa识别
- 操作系统:TTL值分析
网站深度信息收集
- 目录爆破:
- fuff:https://github.com/ffuf/ffuf
- 7kbscan:https://github.com/7kbstorm/7kbscan-WebPathBrute
- dirsearch(Kali自带)
- JS接口:
- 使用
downloadjs.py下载网站JS文件 - 使用
findapi.py提取接口:p = re.findall(r'https?://[^\s\'"]+', line) - 工具:
- JSfinder
- packer-fuzzer
- URLfinder
- 使用
- 快照:Wayback Machine
- 插件信息:Wappalyzer
- 旁站:旁站工具分析
- 端口服务:
- nmap
- railgun(推荐)
网盘信息
- GitHub语法:
site:Github.com smtp @qq.com site:Github.com String password smtp site:Github.com root password - GitHub监控:云绘监控 https://github.yhuisec.com/
- 工具:
- gitdorks_go:https://github.com/damit5/gitdorks_go
- GitDorker:https://github.com/obheda12/GitDorker
社工信息
Google语法示例:
site:baidu.com ext:log|ext:txt|ext:conf|ext:cnf|ext:ini|ext:env
inurl:config|inurl:env|inurl:setting site:baidu.com
site:pastebin.com "baidu.com"
小程序/APP信息
- 抓包分析:Burp Suite
- 反编译:
- 查壳工具(apkscan)
- AppInfoScanner
- APKEditor
总结
信息收集是一个层层递进的过程,需要结合自动化工具和手工验证。关键在于:
- 全面发现资产
- 深入扩展隐蔽资产
- 有效梳理和识别关键目标
- 针对性深度收集
通过系统性的信息收集,可以为后续渗透测试打下坚实基础,显著提高发现漏洞的概率。