万字长文窥探信息收集真正的艺术
字数 2732 2025-08-22 12:23:06

信息收集的艺术:全面渗透测试资产收集指南

前言

信息收集远不只是简单的子域名扫描、目录爆破和端口探测。本文将系统性地介绍信息收集的完整流程和方法,帮助安全研究人员掌握资产发现、扩展和梳理的真正艺术。

信息收集流程概述

  1. 自动化信息收集阶段:使用工具自动进行初步信息收集
  2. 资产发现阶段:收集目标主体的大部分资产
    • 组织信息收集
    • 主域名收集
    • 子域名收集
  3. 资产扩展阶段:进一步收集更多隐蔽资产
    • 端口收集
    • C段收集
  4. 资产梳理阶段:测活+指纹识别
  5. 自动化扫描阶段:漏洞扫描器测试
  6. 重点目标针对收集阶段:对关键资产进行深度信息收集

[0] 自动化信息收集阶段

在手工信息收集前,建议使用自动化工具快速进行大致的信息收集,与手工收集相互补充。

推荐工具

  • ARL(尤其推荐其文件泄露功能)
  • shuize
  • kunyu
  • nemo_go
  • ScopeSentry

[1] 资产发现阶段

组织结构收集

简介
针对大型目标(集团企业、政党单位、高校等)收集其子公司、股权结构等信息。

作用

  1. 全面收集所有子公司,扩大攻击面
  2. 采用自下而上或自上而下的攻击策略
  3. 发现内网横向移动机会

收集方法

股权收集法

使用爱企查查看股权穿透图,记录股权占比>50%的子公司名称,保存为company.txt

关键人物收集法

从法人代表和高管入手,查找其关联公司,与股权收集结果相互补充

工具

  • 爱企查:https://aiqicha.baidu.com/

主域名收集

利用company.txt中的公司名收集其主域名。

方法

ICP备案查询

  1. 官网查询接口(适合少量查询):https://beian.miit.gov.cn/
  2. 第三方程序查询接口(适合批量查询):https://www.beianx.cn/
    • 使用ICPSearch工具批量爬取:icpsearch -f company.txt
    • 使用正则提取域名:([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}

小蓝本查询

https://sou.xiaolanben.com/ 知识产权板块获取ICP备案

结果:保存主域名为domain.txt

子域名收集

网络测绘引擎(以FOFA为例)

domain="主域名" || cert="公用名" || cert="组织名1" || cert="组织名2" || cert="组织名3"

技巧

  1. 结合domain和cert查询语法获取更多资产
  2. 手动查看HTTPS站点证书获取更多组织名
  3. 批量处理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)
    
  4. 开启"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.txturl-1/2/3.txtip-1/2.txt,去重后得到:

  • subdomain.txt
  • url.txt
  • ip.txt

[2] 资产扩展阶段

端口收集

ip.txt进行全端口扫描:

fscan.exe -hf ip.txt -t 3000 -p 1-65535 -num 100 -np -o result.txt

使用fscanOutput.py整理扫描结果。

C段收集

  1. 使用Eeyes工具整理C段:
    Eeyes -l subdomain.txt
    
  2. 手动选择存活IP多的C段保存为c.txt
  3. 合并ip.txtc.txtip_c.txt
  4. 全端口扫描:
    fscan.exe -hf ip_c.txt -t 3000 -p 1-65535 -num 100 -np -o result.txt
    

HOST碰撞

  1. 检查无法解析的域名:
    # domain_auth.py示例
    try:
        ip = socket.gethostbyname(domain)
        return True
    except socket.gaierror:
        return False
    
  2. 使用工具进行HOST碰撞:
    • HostCollision:https://github.com/pmiaowu/HostCollision
    • Hosts_scan:https://github.com/fofapro/Hosts_scan

[3] 资产梳理阶段

测活+指纹识别

  1. 处理IP为URL格式:
    # ipadd.py示例
    http_ip = "http://" + ip
    https_ip = "https://" + ip
    
  2. 合并去重得到web.txt
  3. 指纹识别:
    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] 重点目标针对收集阶段

架构信息收集

  1. 反向代理:使用Wappalyzer识别
  2. 负载均衡:使用lbd工具识别
  3. 站库分离:分析请求响应特征
  4. CDN
    • 识别:多地ping测试(17ce)
    • 绕过方法:
      • 全球ping(ipip.net)
      • 历史DNS记录(IP138)
      • 接口查询(Get-site-ip)
      • 反向邮件
      • FuckCDN工具
  5. WAF:使用wafw00f识别

源码信息收集

  1. CMS识别
    • 云悉
    • 360观星
  2. 源码泄露
    • index of目录遍历
    • GitHack:https://github.com/lijiejie/GitHack
    • SvnHack:https://github.com/shengqi158/svnhack
    • ds_store_exp:https://github.com/lijiejie/ds_store_exp

网站基本信息

  1. 语言:Wappalyzer识别
  2. 数据库:Wappalyzer/fofa识别
  3. Web容器:Wappalyzer/fofa识别
  4. 操作系统:TTL值分析

网站深度信息收集

  1. 目录爆破
    • fuff:https://github.com/ffuf/ffuf
    • 7kbscan:https://github.com/7kbstorm/7kbscan-WebPathBrute
    • dirsearch(Kali自带)
  2. JS接口
    • 使用downloadjs.py下载网站JS文件
    • 使用findapi.py提取接口:
      p = re.findall(r'https?://[^\s\'"]+', line)
      
    • 工具:
      • JSfinder
      • packer-fuzzer
      • URLfinder
  3. 快照:Wayback Machine
  4. 插件信息:Wappalyzer
  5. 旁站:旁站工具分析
  6. 端口服务
    • nmap
    • railgun(推荐)

网盘信息

  1. GitHub语法
    site:Github.com smtp @qq.com
    site:Github.com String password smtp
    site:Github.com root password
    
  2. GitHub监控:云绘监控 https://github.yhuisec.com/
  3. 工具
    • 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信息

  1. 抓包分析:Burp Suite
  2. 反编译
    • 查壳工具(apkscan)
    • AppInfoScanner
    • APKEditor

总结

信息收集是一个层层递进的过程,需要结合自动化工具和手工验证。关键在于:

  1. 全面发现资产
  2. 深入扩展隐蔽资产
  3. 有效梳理和识别关键目标
  4. 针对性深度收集

通过系统性的信息收集,可以为后续渗透测试打下坚实基础,显著提高发现漏洞的概率。

信息收集的艺术:全面渗透测试资产收集指南 前言 信息收集远不只是简单的子域名扫描、目录爆破和端口探测。本文将系统性地介绍信息收集的完整流程和方法,帮助安全研究人员掌握资产发现、扩展和梳理的真正艺术。 信息收集流程概述 自动化信息收集阶段 :使用工具自动进行初步信息收集 资产发现阶段 :收集目标主体的大部分资产 组织信息收集 主域名收集 子域名收集 资产扩展阶段 :进一步收集更多隐蔽资产 端口收集 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,} 小蓝本查询 https://sou.xiaolanben.com/ 知识产权板块获取ICP备案 结果 :保存主域名为 domain.txt 子域名收集 网络测绘引擎(以FOFA为例) 技巧 : 结合domain和cert查询语法获取更多资产 手动查看HTTPS站点证书获取更多组织名 批量处理 domain.txt : 开启"all"模式查询历史资产(需会员) 格式处理 : 使用 format.py 脚本分离子域名和URL: 英文证书查询(crt.sh) 精准查询: ?q=huawei.com 模糊查询: ?o=huawei 使用 crt.sh.py 脚本批量提取公用名: OneForAll 集成了多种子域名收集方式,需配置API密钥发挥最大功效: 结果处理 : 合并 subdomain-1/2/3.txt 、 url-1/2/3.txt 、 ip-1/2.txt ,去重后得到: subdomain.txt url.txt ip.txt [ 2 ] 资产扩展阶段 端口收集 对 ip.txt 进行全端口扫描: 使用 fscanOutput.py 整理扫描结果。 C段收集 使用Eeyes工具整理C段: 手动选择存活IP多的C段保存为 c.txt 合并 ip.txt 和 c.txt 为 ip_c.txt 全端口扫描: HOST碰撞 检查无法解析的域名: 使用工具进行HOST碰撞: HostCollision:https://github.com/pmiaowu/HostCollision Hosts_ scan:https://github.com/fofapro/Hosts_ scan [ 3 ] 资产梳理阶段 测活+指纹识别 处理IP为URL格式: 合并去重得到 web.txt 指纹识别: [ 4 ] 自动化扫描阶段 [ 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 提取接口: 工具: JSfinder packer-fuzzer URLfinder 快照 :Wayback Machine 插件信息 :Wappalyzer 旁站 :旁站工具分析 端口服务 : nmap railgun(推荐) 网盘信息 GitHub语法 : GitHub监控 :云绘监控 https://github.yhuisec.com/ 工具 : gitdorks_ go:https://github.com/damit5/gitdorks_ go GitDorker:https://github.com/obheda12/GitDorker 社工信息 Google语法示例 : 小程序/APP信息 抓包分析 :Burp Suite 反编译 : 查壳工具(apkscan) AppInfoScanner APKEditor 总结 信息收集是一个层层递进的过程,需要结合自动化工具和手工验证。关键在于: 全面发现资产 深入扩展隐蔽资产 有效梳理和识别关键目标 针对性深度收集 通过系统性的信息收集,可以为后续渗透测试打下坚实基础,显著提高发现漏洞的概率。