当前位置:首页 > 休闲

渗透测试 信息收集

干渗透这行,渗透收集信息收集这一步做得好不好,测试基本决定了后续是信息顺风顺水还是到处碰壁。我见过太多人拿到一个目标域名,渗透收集直接上扫描器一顿梭哈,测试结果要么被WAF封了IP,信息要么扫出来的渗透收集东西全是噪音。真正有效的测试信息收集,更像是信息在拼一张残缺的地图——你得先知道目标大概长什么样,再决定从哪个方向切进去。渗透收集

先说说最基础的测试:域名和IP。很多人习惯直接whois查一下注册信息就完事,信息但注册人隐私保护现在几乎是渗透收集标配,能拿到的测试有价值信息越来越少。我一般会先看目标主站的信息SSL证书。证书里的SAN字段经常泄露一些没公开的子域名,比如test.internal.example.com或者oa.example.com这种。用crt.sh查一下,有时候能捞到几十个内部系统入口。这比子域名爆破字典跑半天效率高多了。

DNS记录也值得细看。A记录、MX记录、TXT记录,各有各的用处。MX记录能告诉你目标用的是自建邮件系统还是云邮件服务,如果是自建,那邮件网关往往是个不错的突破口。TXT记录里偶尔会藏着SPF配置或者验证字符串,能推断出他们用了哪些第三方服务。有一次我通过一条TXT记录发现目标在用某个SaaS平台的域名验证,顺着摸过去找到了一个未授权的管理后台。

子域名枚举是绕不开的环节。但别只依赖字典爆破。搜索引擎的site语法、GitHub上的代码泄露、甚至目标自己的招聘信息里提到的技术栈,都是子域名的来源。我习惯把amass的被动模式跑一遍,再配合subfinder,最后用httpx批量探活。注意,探活的时候并发别开太高,不然目标的安全设备会直接把你拉黑。慢一点,稳一点,比什么都强。

端口扫描这块,nmap的默认扫描很容易触发告警。我一般先用masscan快速过一遍常见端口,拿到开放列表后再用nmap做服务识别。但有个细节:很多运维会把管理端口改到高位,比如22222、54321。所以全端口扫描还是有必要的,只是要控制速率。另外,UDP端口别忽略,SNMP如果开放且community string是默认的public,那基本等于把内网拓扑图送给你了。

目录和文件探测是另一个重头戏。dirsearch、ffuf这些工具大家都会用,但字典的选择很关键。我通常会根据目标的技术栈定制字典——比如目标用Spring Boot,那就重点跑/actuator、/env、/heapdump;如果是PHP站点,phpinfo.php、.git/、.svn/这些老几样还是得试。有一次我在一个政府站点的/backup/目录下找到了整个数据库的SQL导出文件,连密码都是明文。这种低级错误现在少了,但没绝迹。

信息收集还得看人。目标公司的员工在社交媒体上发的动态、技术博客里贴的报错截图、甚至招聘JD里写的“熟悉某内部系统”,都是情报。我认识一个哥们,靠目标运维在知乎上回答问题时暴露的IP段,直接定位到了他们的测试环境。这种非技术手段的信息收集,有时候比扫描器管用得多。

最后提一句:信息收集不是一次性任务。随着你对目标理解的加深,会发现新的线索,然后回头再挖。这个过程是迭代的。别急着进入漏洞利用阶段,地图画得越细,后面踩雷的概率就越低。

分享到: