HostRecon:态势感知工具
作者:Beau Bullock
概述
HostRecon是我用PowerShell编写的一款工具,旨在帮助快速枚举通常在获得系统访问权限后需要检查的多个项目。它可以在渗透测试的侦察阶段为测试人员提供态势感知支持,收集本地系统、用户和域信息。最关键的是,它不使用任何“net”、“ipconfig”、“whoami”、“netstat”或其他系统命令,因为这些常见命令/工具曾触发安全产品告警。相反,这些命令已被PowerShell和WMI查询替代。
在许多渗透测试中,我们仍会遇到仅安装PowerShell 2.0的Windows 7系统。为确保向后兼容性,我避免了使用PowerShell 3.0及以上版本中许多可提供所需功能的cmdlet。
常见安全产品检测
我希望开发一款能够帮助快速识别系统上使用的安全产品的工具。HostRecon尝试枚举系统上的常见安全产品,包括防病毒(AV)、入侵检测系统(IDS)、应用程序白名单、行为分析等。这将是一个不断变化/增长的列表,我会尽力保持更新。我已请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会话:
|
|
导入脚本:
|
|
运行HostRecon:
|
|
要对前100个端口执行出口过滤检查,运行以下命令:
|
|
如果您有任何其他想法希望添加到HostRecon中,请发送电子邮件、在Twitter(@dafthack)上联系我或在Github上提交问题。请注意,我避免使用任何系统工具(“ipconfig”、“net”、“netstat”、“arp”等),也避免使用任何PowerShell 3.0及更高版本的cmdlet。