HostRecon:情境感知工具
Beau Bullock //
概述
HostRecon是我用PowerShell编写的工具,用于在获取系统访问权限后快速枚举多项常规检查项。它能在渗透测试的侦察阶段为测试人员提供情境感知支持,收集本地系统、用户和域信息。其最关键的特性是完全不使用net
、ipconfig
、whoami
、netstat
等系统命令(这些命令常触发安全产品告警),而是通过PowerShell和WMI查询实现等效功能。
为兼容广泛存在的Windows 7(仅支持PowerShell 2.0)环境,该工具避免使用PowerShell 3.0及以上版本的cmdlet。
安全产品检测
HostRecon能快速识别系统中安装的安全产品,包括防病毒软件、入侵检测系统、应用白名单、行为分析工具等。该功能依赖持续更新的安全产品列表,并欢迎BHIS同事通过提交渗透测试中遇到的新进程和产品名称来扩充检测范围。
情境感知价值
通过获取目标系统的关键信息,HostRecon帮助渗透测试人员制定后续攻击策略。在盲目执行载荷前,了解系统安全防护状态(如是否启用应用白名单、是否存在网络代理、本地管理员密码是否随机化)至关重要。良好的情境感知能显著提升攻击成功率。
当前检测项包括:
- 主机名:替代
hostname
- IP信息:替代
ipconfig
- 当前用户名:替代
whoami
- 域名信息:获取当前域
- 本地用户:替代
net users
- 本地管理员组:替代
net localgroup administrators
- 网络连接状态:替代
netstat
- DNS缓存:替代
ipconfig /displaydns
- 共享资源:替代
net use
- 计划任务:替代
schtasks
- Web代理配置:检测代理使用情况
- 进程列表:枚举运行进程
- 防病毒产品:检测AV状态及产品型号
- 防火墙状态:检查本地防火墙启停状态
- LAPS检测:定位本地管理员密码解决方案DLL
- 域密码策略:获取域账户密码策略
- 域管理员组成员:列出域管理员
- 域控制器:枚举域控制器
- 安全产品检测:分析进程列表以识别安全产品
出口过滤检测
通过-Portscan
参数可启动对allports.exposed的出站端口扫描(端口扫描模块由Joff Thyer开发),用于检测出口防火墙放行的端口。执行Invoke-HostRecon -Portscan
即可触发完整检测,支持使用-TopPorts 100
指定扫描前100个常用端口。
使用方法
- 从GitHub下载工具:https://github.com/dafthack/HostRecon
- 在PowerShell中执行绕过策略:
C:>powershell.exe -exec bypass
- 导入模块:
PS C:>Import-Module HostRecon.ps1
- 运行侦察:
PS C:>Invoke-HostRecon
- (可选)执行出口过滤检测:
PS C:>Invoke-HostRecon -Portscan -TopPorts 100
欢迎通过邮件、Twitter(@dafthack)或GitHub提交功能建议。请注意:本工具坚持避免使用系统命令及PowerShell 3.0+的cmdlet。