当我们进行信息收集时,最初获取的线索可能只是一个域名、一个公司名称或一个IP地址。面对不同的起点,下一步的行动策略也需要相应调整。本文将围绕这三类初始信息,系统性地梳理一套渗透测试信息收集的思路与工具方法,尤其是在红队攻防演练场景下,高效、全面的资产梳理至关重要。
从域名开始
判断CDN
首要任务是判断目标域名是否使用了CDN。如果存在CDN,我们需要尝试绕过它,以发现服务器的真实IP。
- Ping命令检测:使用
ping命令,若返回的域名很长或包含明显的cdn、ali、tencent等字段,则很可能使用了CDN。
- Nslookup命令检测:使用
nslookup命令查询,如果一个域名解析出多个IP地址,通常意味着使用了CDN。
- 在线多地Ping工具:使用如
https://ping.chinaz.com/ 这类网站进行检测。输入域名后,若多个探测节点返回的IP各不相同,则基本可以确定存在CDN;如果所有或大多数节点返回同一个IP,则该IP很可能是真实IP。
绕过CDN查找真实IP
确认CDN存在后,可尝试以下方法寻找真实IP:
- 多地Ping与海外节点探测:使用
https://www.itdog.cn/ping 等工具。CDN服务往往主要覆盖国内,针对海外节点的加速配置可能不同或缺失,有时海外节点返回的IP即是真实IP。
- 查询子域名:许多公司出于成本考虑,可能只对主站或流量大的站点部署CDN。一些子域名(如
mail.example.com, dev.example.com)可能直接解析到真实服务器IP。因此,收集子域名并逐一检查其解析记录是关键步骤。子域名收集方法详见后文。
- 查询DNS历史记录:查找域名与IP绑定关系的历史记录,可能包含部署CDN之前的解析信息。
https://dnsdb.io/zh-cn/
https://x.threatbook.cn/
https://tools.ipip.net/cdn.php
- 利用SSL证书:服务器使用的SSL证书信息可能暴露真实IP。例如,通过Censys (
https://censys.io) 等平台,可以搜索特定SSL证书的SHA1指纹,从而找到使用该证书的所有IPv4主机,其中可能包含源站IP。
- 其他途径:关注目标网站的敏感文件泄露(如
phpinfo)、通过XSS、SSRF等漏洞从内部发起请求、或通过网站订阅邮件(查看邮件头)等方式,都有可能获取真实IP。
子域名收集
扩大攻击面的核心是收集子域名。以下是一些有效的方法和工具:
- 搜索引擎语法:
site:baidu.com
intitle:公司名称
- 网络空间测绘引擎:这是目前最高效的方式之一。
- FOFA:
domain="ke.com", host="ke.com", icon_hash="-hash值-"
- 360 Quake, Hunter, 微步在线:原理类似。
- 在线查询工具:
https://phpinfo.me/domain/
https://site.ip138.com/baidu.com/domain.htm
- 本地工具:
- Hosts碰撞:这是一种发现“隐藏”资产的方法。某些服务配置为禁止通过IP直接访问,必须使用特定域名(Host头)才能访问。通过将收集到的目标域名与目标IP段(可从历史解析记录、C段获取)进行配对碰撞(模拟修改本地hosts),可以发现这类绑定域名才能访问的资产。
从IP地址开始
如果起点是一个IP地址,我们可以进行反向关联和横向扩展。
- IP反查域名:
- 在线工具:
http://www.ip-adress.com/reverse_ip, http://www.7c.com/
- SearchMap工具:集IP反查、WHOIS、端口扫描等功能于一体。
- C段扫描:
- 旁站查询:查询同一台服务器(同一IP)上运行的其他网站。
https://webscan.cc/
https://chapangzhan.com/
- 端口扫描:
从公司名称开始
企业信息是重要的情报来源,能帮你发现关联资产、子公司、产品乃至人员信息。
- 企业信息查询平台:
- 爱企查/天眼查:查询公司基本信息、关联企业、对外投资、知识产权(软件著作权、商标)、网站备案、APP、微信公众号等。重点关注控股子公司、备案域名和自研产品。
- 股权穿透图:清晰展示公司的投资控股关系,有助于确定攻击范围。
- 小蓝本 (
https://sou.xiaolanben.com/pc):特别适合查询目标公司的APP、小程序、注册商标以及竞品信息。
- 供应商关联:有些网站底部会标注技术支持方。例如,发现“北京XX科技有限公司”是某系统的供应商,可以用
body="北京XX科技有限公司"在FOFA等引擎中搜索,找出所有使用该系统的客户站点,这些客户可能成为间接目标。
- ICP备案查询 (
https://beian.miit.gov.cn/):通过网站底部的备案号,反查公司主体及所有备案的网站域名。
- GitHub信息泄露监控:
- 使用
site:Github.com smtp @baidu.com、site:Github.com password、site:Github.com 内部等语法,搜索目标公司相关代码仓库中可能泄露的敏感信息,如API密钥、数据库密码、内部文档等。
网站资产深度识别与探测
在获取具体URL后,需要对目标进行深度剖析。
- 指纹识别:
- Wappalyzer浏览器插件:快速识别网站使用的技术栈(前端框架、服务器、编程语言等)。
- TideFinger (潮汐指纹): 在线及命令行指纹识别工具,识别准确率较高 (
http://finger.tidesec.net)。
- EHole (棱洞):专注于识别重点资产框架,并具备一些漏洞检测能力。
- 观察HTTP响应头:手动检查响应头中的
Server、X-Powered-By等字段,常能直接获取中间件、脚本语言信息。
- 目录/路径扫描:发现隐藏的目录、文件、接口等敏感信息。
- JS文件信息提取:JavaScript文件中常包含未在首页显现的API接口、内部域名、隐藏路径等。
- JSFinder: 从JS文件中快速提取URL和子域名。
- LinkFinder: 专门用于在JS文件中发现端点(endpoint)和敏感参数。
- FindSomething浏览器插件:被动式信息收集,自动分析浏览页面时的JS请求,提取敏感信息。
- WAF探测:了解目标防护情况,决定后续策略。
- Wafw00f: 识别和指纹化Web应用程序防火墙(WAF)产品的工具。
总结
信息收集是渗透测试的基石,其深度和广度直接决定了后续攻击的成败。整个过程应遵循“由点到面”的原则:从一个初始点(域名、IP、公司名)出发,通过本文所述的多种技术手段,层层递进,逐步绘制出目标的完整数字资产地图。在红队攻防演练或安全评估中,耐心和细致是信息收集阶段最宝贵的品质。熟练运用这些工具和方法,结合手动分析与验证,才能最大化信息收集的价值,为后续的攻击路径规划打下坚实基础。
原文链接:https://xz.aliyun.com/t/14387
|