做安全测试这几年,我越来越觉得“信息收集”四个字被严重低估了。很多人以为拿个扫描器扫一圈就是信息收集了,但真到了内网、真到了Windows主机上,决定你后续是顺利推进还是卡死半路的,往往是前期有没有把信息收全、收准。尤其是Windows主机信息收集,它不像打点那样刺激,但一套完整的收集思路,能让你少走好几个弯路。
这篇东西我不会讲怎么用某个商业软件点按钮,而是站在我自己实操的角度,把主机侧信息收集相关的知识点重新捋一遍。内容包括收集的整体思路、外围信息探查、主机内部核心配置读取、凭据与日志处理,以及最后的自动化整理和常见坑点。适合刚入门、想系统建立信息收集框架的安全测试人员,也适合做基线核查、应急响应的运维同学参考。内容全部基于授权测试环境下的常见实践,务必在合规前提下使用。
1. 信息收集的整体设计思路
1.1 先把收集范围分层,别一头扎进主机里
信息收集不是一个动作,而是一套流程。我习惯把它分成四个层次:目标确认、外围探测、入口分析与主机留存。
目标确认是搞清楚授权范围,哪些IP段能碰,哪些域名归属明确,这一步看似废话,但最容易被忽略。很多人上来就跑扫描器,结果扫到未授权的资产,后面全都是问题。我在每次测试前会先画一张简单的目标清单,标明IP、域名、责任人,再谈下一步。
外围探测是看目标的公网暴露面,比如开放端口、Web服务、证书信息、子域名等。这个过程可以借助搜索引擎、证书透明度日志、DNS记录等公开渠道完成,不需要触碰目标系统。主机信息收集则是在拿到内网权限或者明确授权的前提下,对Windows主机本身做系统层面的信息提取。最后是留存,把收集到的信息按资产、按用途归档,方便后续利用和报告输出。
这样分层的意义在于,每一层都有明确的产出物,不会乱。而且遇到问题时能快速定位是哪一层掉了链子,是DNS信息没查全,还是主机账户枚举漏了。
1.2 不同场景下的收集侧重点完全不同
同样叫信息收集,不同任务的侧重点差异很大。
红队攻防演练里,信息收集的目标是找最短路径。此时更关注的是入口服务、弱口令可能性、暴露的敏感文件、内网可达范围。合规基线核查则完全反过来,重点是补丁状态、账户策略、共享权限、审计策略是否开启,每一台机器都要能追溯到责任人。应急响应场景下,主机信息收集主要围绕“发生了什么”,需要看登录日志、进程启动时间、计划任务、自启动项、最近修改的文件,甚至要分析内存中的痕迹。
我遇到过不少朋友,不管什么场景都套同一套命令,结果在应急场景下被海量日志淹没,在红队场景下又因为没有重点而漏掉关键入口。所以我建议,动手之前先问自己三个问题:这次任务的核心目标是什么?拿到主机后最想确认的事情是什么?哪些信息是可以直接帮助下一步决策的?想清楚了再决定收集哪些数据。
1.3 信息收集的黄金原则:先宽后窄,先易后难
我实操时有个习惯,叫“先宽后窄,先易后难”。
先宽后窄的意思是,第一次收集尽量覆盖系统全貌,比如所有本地用户、所有服务、所有启动项、所有网络连接,哪怕有些信息暂时用不上,也要先记录下来。因为很多线索是串起来的,比如某个服务对应某个端口,某个端口对应某个进程,某个进程又对应某个启动项,单看任何一个都发现不了问题,串起来才能还原真实情况。
先易后难指的是优先收集无需特殊权限就能获取的信息。普通用户权限能查环境变量、当前用户信息、网络配置,管理员权限则能读SAM文件、抓Lsass进程内存、查看完整的事件日志。从低挂高,能拿到多少算多少,每一步都不白做。
这套原则最大的好处是不会漏东西。尤其是Windows主机信息收集,信息点非常碎,靠记忆很容易丢项,靠流程才能兜住。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 主机定位与外围端口探查
2.1 确认主机在网络中的身份:IP、域名、系统版本
拿到一台Windows主机,我第一步永远是确认它在网络中的身份。
先看IP配置。内网环境的IP能透露很多信息,比如10.10.x.x和192.168.x.x往往代表不同的网段归属,DNS后缀有时会直接暴露域名的内部命名规则。命令是 ipconfig /all,加 all 参数才能看到DNS服务器、DHCP服务器、主机名等完整信息。这里有个细节,多网卡机器一定要看全,有些机器同时连着办公网、服务器网、存储网,每块网卡都是一个潜在的攻击面。
然后是系统版本。直接输 systeminfo 能看到完整的操作系统版本、补丁编号、系统启动时间。这里有个小技巧:系统启动时间可以帮你判断这台机器是不是刚重启过。如果一台机器启动时间很近,说明可能刚打过补丁,已知漏洞利用的窗口变小了,后面的思路要相应调整。
主机名也能看出不少东西。虽然很多管理员会做主机名混淆,但仍有大量内网机器的主机名直接暴露了用途,比如FileServer-01、DC-02这类命名。收集主机名的同时,建议把所在域信息也记下来,echo %USERDOMAIN% 可以看到当前登录用户所在域名,判断机器是域成员还是独立主机。这一步决定后续是走域渗透思路还是本地提权思路。
2.2 端口与服务是主机的“门面”
端口扫描我习惯放在主机身份确认之后。刚进入内网的机器,最忌讳盲扫C段,动静大,还容易被发现。正确姿势是先扫目标主机的全端口,服务识别到位后再决定是否需要端口上的进一步操作。
Windows主机上常见的端口有135(RPC)、139(NetBIOS)、445(SMB)、3389(RDP)、5985/5986(WinRM),这些都是管理类和文件共享类服务。一旦这些端口暴露,基本等于告诉你可以尝试远程管理或者横向移动。Web类端口如80、443、8080也不能放过,很多内网系统喜欢把Web管理后台直接开在主机上。
扫描时我优先用Nmap的版本探测,nmap -sV -p- 目标IP 虽然慢,但对单台主机很值得。拿到服务版本后,端口背后的产品类型和已知漏洞倾向性就基本清晰了。扫描参数也有讲究,-sV是版本探测,-
