1. Windows主机信息收集的核心价值
在渗透测试和红队行动中,Windows主机信息收集从来都不是简单的"运行几个命令"这么简单。我见过太多新手拿到shell后直接开始无脑执行systeminfo,结果触发了EDR告警导致会话中断。真正专业的信息收集应该像外科手术一样精准——既要获取足够的情报,又要避免惊动防御系统。
通过分析目标Windows主机的配置细节,我们能发现:
- 未修补的系统漏洞(如永恒之蓝漏洞对应的KB编号缺失)
- 错误配置的服务权限(如Everyone组对敏感目录的写权限)
- 遗留的管理凭证(RDP连接历史、保存的凭据等)
- 安装的第三方软件漏洞(旧版Java、Flash等)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 隐蔽式信息收集技术
2.1 基础系统信息获取
避免直接使用systeminfo这类高危命令,改用组合查询:
powershell复制# 操作系统版本
(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ProductName
# 系统架构
$env:PROCESSOR_ARCHITECTURE
# 安装时间
(Get-CimInstance -ClassName Win32_OperatingSystem).InstallDate
这种分散查询的方式不会触发安全产品的"可疑系统信息收集"检测规则。我曾用这个方法在装有CrowdStrike的主机上持续收集信息长达两周未被发现。
2.2 网络配置深度解析
常规ipconfig/all太过显眼,建议分步获取:
cmd复制:: 适配器信息
wmic nicconfig get IPAddress,MACAddress,DHCPEnabled /value
:: DNS缓存(含历史访问记录)
ipconfig /displaydns > %temp%\dns.txt & type %temp%\dns.txt
:: ARP表(内网拓扑)
arp -a
特别注意那些带有"Hyper-V"、"VMware"字样的虚拟适配器,这能帮我们判断目标是否处于虚拟化环境。某次攻防演练中,正是通过发现VMware虚拟网卡,我们成功跳转到更重要的宿主机。
2.3 用户与权限的隐蔽侦查
2.3.1 当前会话信息
powershell复制# 当前用户权限
whoami /priv | findstr /i "SeImpersonatePrivilege SeAssignPrimaryPrivilege"
# 登录会话
query user 2>&1 | findstr /v "Error"
2.3.2 本地用户组分析
cmd复制for /f "tokens=*" %i in ('net localgroup') do @echo [+] %i & net localgroup "%i"
重点检查:
- 远程桌面用户组(Remote Desktop Users)
- 备份操作员组(Backup Operators)
- 特权组(Administrators)中的非默认成员
3. 系统安全配置审计
3.1 补丁与漏洞关联分析
不要直接运行wmic qfe list,改用:
powershell复制Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 20
然后对照以下关键补丁缺失情况:
| 漏洞编号 | 相关补丁KB | 影响说明 |
|---|---|---|
| MS17-010 | KB4012212 | 永恒之蓝漏洞 |
| CVE-2021-34527 | KB5005565 | PrintNightmare |
| CVE-2020-1472 | KB4557222 | Zerologon |
3.2 防火墙与杀软检测
3.2.1 防火墙规则
powershell复制Get-NetFirewallRule | Where-Object {$_.Enabled -eq $true} | Select-Object DisplayName,Profile,Direction,Action
3.2.2 安全产品检测
cmd复制tasklist /v | findstr /i "symantec mcafee trend carbonblack crowdstrike"
wmic /namespace:\\root\securitycenter2 path antivirusproduct get displayName
4. 敏感数据定位技术
4.1 文件系统快速扫描
powershell复制# 查找配置文件
Get-ChildItem -Path C:\ -Include *.config,*.xml,*.ini -Recurse -ErrorAction SilentlyContinue | Select-Object -First 100
# 搜索近期修改的文件
Get-ChildItem -Path C:\Users\ -Recurse -File | Sort-Object LastWriteTime -Descending | Select-Object -First 50
4.2 注册表关键路径
重点关注这些注册表项:
code复制HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\SYSTEM\CurrentControlSet\Services
提取命令:
reg复制reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run /s
5. 自动化信息收集框架
对于需要持续监控的场景,我推荐这个PowerShell脚本框架:
powershell复制$output = @{
SystemInfo = @{
OSVersion = [Environment]::OSVersion.VersionString
Architecture = $env:PROCESSOR_ARCHITECTURE
InstalledHotfixes = Get-HotFix | Select-Object HotFixID,InstalledOn
}
NetworkConfig = Get-NetIPConfiguration | Select-Object InterfaceAlias,IPv4Address,DNSServer
UserPrivileges = whoami /priv
}
$output | ConvertTo-Json -Depth 3 | Out-File -FilePath "$env:temp\system_audit.json"
这个脚本的特点:
- 输出为JSON格式便于后续分析
- 避免使用高危WMI调用
- 结果存储在临时目录不易被发现
6. 对抗安全产品的技巧
在企业环境中,我们需要特别注意这些防御规避点:
重要提示:在装有EDR的环境中,连续快速执行多个WMI查询会触发行为检测。建议在每个命令之间添加随机延迟:
powershell复制Start-Sleep -Seconds (Get-Random -Minimum 3 -Maximum 10)
其他规避技巧:
- 使用Legacy命令行工具替代PowerShell(如sc.exe替代Get-Service)
- 通过certutil.exe进行文件编码/传输避免检测
- 修改WMI查询时间戳过滤器避开日志记录
7. 信息收集后的分析流程
获取原始数据只是第一步,真正的价值在于分析。这是我的标准分析流程:
- 权限矩阵分析:标记所有SeImpersonate/SeDebug权限的账户
- 服务漏洞匹配:将已安装服务版本与ExploitDB进行比对
- 网络拓扑重建:根据路由表和ARP记录绘制内网地图
- 时间线分析:通过文件修改时间判断管理员活动规律
某次真实渗透中,通过分析IIS日志的LastWriteTime,我们成功确定了系统管理员每天下午4点会登录服务器进行维护,从而规划了精准的横向移动时间窗口。
8. 高级信息收集技术
8.1 内存取证技巧
即使在没有专业工具的情况下,也可以获取有价值的内存信息:
powershell复制# 提取lsass进程信息(需管理员权限)
tasklist /fi "imagename eq lsass.exe" /v
8.2 域环境侦查
当主机加入域时,这些命令特别有用:
cmd复制nltest /domain_trusts
dsquery * "CN=Configuration,DC=domain,DC=com" -scope base -attr namingContexts
8.3 计划任务审计
powershell复制Get-ScheduledTask | Where-Object {$_.State -ne "Disabled"} | Select-Object TaskName,Author,Actions
重点检查:
- 以SYSTEM权限运行的任务
- 可疑的PowerShell或CMD动作
- 异常的任务创建者
9. 实战案例:某企业网络渗透过程
去年的一次红队行动中,我们通过系统信息收集发现了这些关键点:
- 某台IIS服务器安装了过期的PHP版本(5.4.45)
- 备份服务账户被添加到本地管理员组
- 防火墙放行了135/445端口的入站连接
- 存在未加密的RDP连接历史记录
利用这些信息,我们最终通过以下路径完成突破:
code复制PHP漏洞 → WebShell → 窃取备份账户凭证 → Pass-the-Hash攻击域控
整个过程耗时不到8小时,充分证明了细致的信息收集价值。
