如何使用NetworkRecon.ps1识别网络漏洞
作者:David Fletcher
每当有机会时,我喜欢在测试中收集约五分钟的数据包以便分析,寻找网络攻击机会。但在许多任务中,我发现自己无法检查网络流量。原因可能是我不想安装第三方软件、技术控制阻止了安装,或者这超出了测试范围。本文介绍的NetworkRecon.ps1脚本,可以帮助你快速分析Windows客户端系统可见的潜在漏洞协议。
工具开发背景
最初,我尝试开发一个工具,能够收集并分析流量,输出类似于PowerUp.ps1的Invoke-AllChecks
功能的结果。PowerUp用于提供简洁的反馈,指出操作系统配置中可能导致权限提升的问题。这个脚本的目标是为网络协议滥用提供类似的功能。
在调查可用选项时,我发现使用PowerShell(尤其是Windows 7及更早版本)进行数据包捕获和分析的功能并不理想。幸运的是,我已经熟悉了Kevin Robertson开发的Invoke-Inveigh
工具,它被包含在多个其他攻击框架中。在遇到收集和分析工作流的问题后,我采用了该工具中的数据包嗅探功能作为替代方案。
脚本功能详解
脚本包含三个主要功能:
-
Invoke-NeighborAnalysis
- 检测OSI模型第二层中的协议(如CDP、DTP、VTP、LLDP等)。
- 通过
arp -a
或Get-NetNeighbor
的输出分析多播地址,判断协议是否在使用中。 - 由于数据包嗅探器使用原始套接字,无法捕获以太网帧,因此这是目前检测CDP、DTP、VTP和LLDP的唯一方法。
-
Invoke-TraceCollect
- 记录网络流量到跟踪文件中(默认5分钟),供后续分析。
- 根据操作系统版本输出
.cap
或.etl
格式文件。Windows 8.1及以上版本支持直接保存为数据包捕获格式,而旧版本则需要通过Microsoft Message Analyzer转换ETL格式。 - 运行此功能需要管理员权限。
-
Invoke-LiveAnalysis
- 使用原始IP套接字捕获流量并实时分析。
- 通过第三层多播地址和已知端口识别协议(如mDNS、NBNS、LLMNR、HSRP、OSPF、VRRP)。
- 通知用户观察到的流量细节,如认证方法、密码或哈希值,以及查询的主机名。
协议与漏洞关联
- CDP和LLDP:可能泄露设备名称和固件版本等敏感信息。
- DTP和VTP:可能允许攻击者通过VLAN跳跃攻击访问受保护网络区域。
- mDNS、NBNS和LLMNR:可能导致攻击者发送毒化响应,引发凭证泄露或直接利用。
- HSRP和VRRP:可能让攻击者通过选举成为活动路由器,实施中间人攻击。
- OSPF:攻击者可能通过操纵路由表成为中间人。
- DHCP启动选项:可能允许攻击者启动未授权操作系统或分析启动镜像中的有效凭证。
未来目标
工具的最终目标是包含对所有第三层协议的智能收集和攻击功能,并继续研究第二层协议是否可以通过PowerShell原生接口实现攻击。
完整脚本可在Bitbucket获取,详细功能说明参见SANS白皮书。欢迎提供反馈!
用户评论
- Tomasz Kuehn(2017年6月9日):
LiveAnalysis绑定到了无用的接口(如NPCAP回环或127.0.0.1),如何指定目标接口? - David Fletcher回复:
将添加选项以列出并选择目标接口,初始版本仅针对单接口有线工作站设计。 - Tomasz Kuehn:
完成后请通知我。