HostRecon:态势感知工具
Beau Bullock //
概述
HostRecon是我用PowerShell编写的一款工具,用于在获得系统访问权限后快速枚举多个通常需要检查的项目。它可以在渗透测试的侦察阶段为测试人员提供态势感知支持。该工具收集本地系统、用户和域信息。最重要的是,它不使用任何“net”、“ipconfig”、“whoami”、“netstat”或其他系统命令,因为这些常见命令/工具的使用曾触发某些安全产品的告警。相反,这些命令已被PowerShell和WMI查询替代。
在许多渗透测试中,我们仍会遇到仅安装PowerShell 2.0的Windows 7系统。为确保后向兼容性,我避免了使用PowerShell 3.0及以上版本中许多可提供所需功能的cmdlet。
常见安全产品检测
我希望这款工具能够帮助快速识别系统上使用的安全产品。HostRecon尝试枚举系统上的常见安全产品,包括防病毒软件、入侵检测系统、应用程序白名单、行为分析等。这将是一个不断变化/增长的列表,我会尽力保持更新。我已请BHIS的同事帮助我扩展这个安全产品列表,将他们在此次测试中看到的任何新进程和产品名称发送给我。
态势感知
HostRecon从目标系统提供信息,帮助渗透测试人员制定进一步的攻击策略。在盲目运行有效载荷之前,了解系统上部署的安全防护措施非常重要。系统是否运行应用程序白名单?是否使用Web代理处理互联网流量?本地管理员密码是否可能随机化?HostRecon将尝试回答其中一些问题。在继续之前拥有良好的态势感知应能提高成功的机会。
以下是它当前检查的完整列表:
- 当前主机名 – 收集本地系统的主机名
- IP信息 – 收集IP信息;替代“ipconfig”
- 当前用户名 – 收集当前用户名;替代“whoami”
- 当前域名 – 收集当前域名
- 所有本地用户 – 从系统收集本地用户;替代“net users”
- 本地管理员组 – 收集本地管理员组成员;替代“net localgroup administrators”
- Netstat信息 – 收集监听和已建立的连接信息;替代“netstat”
- DNS缓存信息 – 收集DNS缓存信息;替代“ipconfig /displaydns”
- 共享 – 收集共享信息;替代“net use”
- 计划任务 – 从系统收集任何计划任务;替代“schtasks”
- Web代理信息 – 确定是否使用Web代理
- 进程列表 – 列出系统上所有当前运行的进程
- 防病毒信息 – 检查防病毒软件是否启用以及运行的产品
- 防火墙状态 – 确定本地防火墙是否启用
- 本地管理员密码解决方案(LAPS) – 尝试定位安装LAPS时使用的DLL
- 域密码策略 – 收集域账户密码策略
- 域管理员组成员 – 列出域管理员组的成员
- 域控制器 – 列出任何域控制器
- 检查常见安全产品 – 分析进程列表以查找常见安全产品进程和名称
出口过滤检查
Invoke-HostRecon还包括评估系统出口过滤的功能。可以传递“-Portscan”标志以启动对allports.exposed的出站端口扫描,帮助确定允许通过出口防火墙的开放端口。(端口扫描模块的功劳归于Joff Thyer)。通过运行“Invoke-HostRecon -Portscan”,它还将对allports.exposed执行出口检查。
使用方式
HostRecon可以在此处下载:https://github.com/dafthack/HostRecon
-
在系统上启动PowerShell会话
1
C:>powershell.exe -exec bypass
-
导入脚本
1
PS C:>Import-Module HostRecon.ps1
-
运行HostRecon
1
PS C:>Invoke-HostRecon
要对前100个端口执行出口过滤检查,请运行以下命令:
|
|
如果您有任何其他想法希望添加到HostRecon中,请发送电子邮件、在Twitter上联系我(@dafthack)或在Github上提交问题。请注意,我避免使用任何系统工具(“ipconfig”、“net”、“netstat”、“arp”等),并且也避免使用任何PowerShell 3.0及更高版本的cmdlet。