HostRecon:提升渗透测试情境感知的PowerShell工具

HostRecon是一款基于PowerShell的主机侦察工具,专为渗透测试人员设计。它通过WMI查询替代系统命令,可枚举系统信息、安全产品状态、域策略等关键数据,支持出口过滤检测,兼容PowerShell 2.0,有效规避安全产品告警。

HostRecon:情境感知工具

Beau Bullock //

概述

HostRecon是我用PowerShell编写的工具,用于在获取系统访问权限后快速枚举多项常规检查项。它能在渗透测试的侦察阶段为测试人员提供情境感知支持,收集本地系统、用户和域信息。其最关键的特性是完全不使用netipconfigwhoaminetstat等系统命令(这些命令常触发安全产品告警),而是通过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个常用端口。

使用方法

  1. 从GitHub下载工具:https://github.com/dafthack/HostRecon
  2. 在PowerShell中执行绕过策略:
    C:>powershell.exe -exec bypass
  3. 导入模块:
    PS C:>Import-Module HostRecon.ps1
  4. 运行侦察:
    PS C:>Invoke-HostRecon
  5. (可选)执行出口过滤检测:
    PS C:>Invoke-HostRecon -Portscan -TopPorts 100

欢迎通过邮件、Twitter(@dafthack)或GitHub提交功能建议。请注意:本工具坚持避免使用系统命令及PowerShell 3.0+的cmdlet。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计