什么是UDP Hunter?
UDP 扫描一直是一项缓慢且痛苦的工作,如果再加上 IPv6 的 UDP 扫描,可用的工具选择就非常有限了。UDP Hunter 是一个基于 Python 的开源网络评估工具,专注于 UDP 服务扫描。通过 UDP Hunter,我们专注于为 IPv6 和 IPv4 主机提供广泛已知的 UDP 协议审计。截至目前,UDP Hunter 支持 19 种不同的服务探针。该工具允许您对大型网络进行批量扫描,也可以针对特定端口等进行目标主机扫描。一旦发现开放的服务,UDP Hunter 还会更进一步,为您提供如何可能利用已发现服务的指导。UDP Hunter 以简洁的文本格式提供报告,但更多报告格式的支持正在开发中。
UDP Hunter 的工作原理是什么?
UDP Hunter 在收到任何 IP 范围时会生成一个 IP 列表。它还支持域名,域名将被解析,IP 将被添加到列表中。一旦 UDP Hunter 内部创建了列表,它将向所有列出的 IP 发送 UDP 探针。如果主机正在运行 UDP 服务,它将做出响应。UDP Hunter 基本上会嗅探网络,特别是针对 UDP 流量,然后读取所有到达目标主机的 UDP 数据包。运行 UDP Hunter 后收到的所有 UDP 探针都将被报告。但是,有一个选项(通过设置 --noise=false)可以忽略无关的 UDP 数据包,仅观察来自目标列表中提及的主机和服务/端口的感兴趣的 UDP 流量。创建 UDP Hunter 的想法最初受到 udp-proto-scanner 的启发。我衷心感谢 Portcullis Labs 提供了这个工具,同时也感谢 Anant 和 Sumit Siddharth(Sid) 在 UDP Hunter 开发过程中提供的宝贵意见。
支持的 UDP 探针:
截至目前,我们支持以下 UDP 服务探针的默认端口:
- ike - 500 端口
- rpc / RPCCheck - 111 端口
- ntp / NTPRequest - 123 端口
- snmp-public / SNMPv3GetRequest - 161 端口
- ms-sql / ms-sql-slam - 1434 端口
- netop - 6502 端口
- tftp - 69 端口
- db2 - 523 端口
- citrix - 1604 端口
- echo - 7 端口
- chargen - 19 端口
- systat - 11 端口
- daytime / time - 13 端口
- DNSStatusRequest / DNSVersionBindReq - 53 端口
- NBTStat - 137 端口
- xdmcp - 177 端口
- net-support - 5405 端口
- mdns-zeroconf - 5353 端口
- gtpv1 - 2123 端口
设置:
从这里下载工具或克隆仓库:
git clone https://github.com/NotSoSecure/udp-hunter
要求:
- Python 3.x
- Python 模块 - 也列在“requirements.txt”文件中
- netaddr
- colorama
- argparse
- ifaddr
- datetime
以下内容应有助于您完成初始设置:
安装所有必需的模块:
pip3 install -r requirements.txt
所需的配置文件:
- udp.txt - 此文件包含 UDP 探针
- udphelp.txt - 此文件包含工具列表、每个 UDP 探针或服务的建议
您也可以使用命令行参数更改配置文件:
“--configfile ” 和 “--probehelp ”
通过运行以下命令验证配置:
python udp-hunter.py
注意:它应显示以下帮助详细信息,如果抛出任何错误,请检查您的配置或联系我以解决任何工具特定的错误。
功能/选项:
UDP Hunter v0.1beta 具有以下功能:
必需选项:
- --host - 单个主机 - 必需
或
- --file - IP 文件 - 必需
可选选项:
- --output - 输出文件 - 必需
- --probes - 探针名称或 'all'(默认:所有探针)(可选)
- 探针列表 - ike, rpc, ntp, snmp-public, ms-sql, ms-sql-slam, netop, tftp, db2, citrix, echo, chargen, systat, daytime, time, RPCCheck, DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, SNMPv3GetRequest, xdmcp, net-support, mdns-zeroconf, gtpv1
- --ports - 端口列表或 'all'(默认:所有端口)(可选)
- --retries - 向每个主机发送的数据包数量。默认为 2(可选)
- --noise - 过滤未列出 IP 的输出(可选)
- --verbose - 详细输出,也将显示嗅探器输出 --- 请将其保持为 true,默认情况下为 true。这将有助于我们分析输出。
- --timeout - 超时时间 1.0, 2.0(单位:分钟)(可选)
- --lhost6 - 提供监听接口的 IPv6 地址
- --lhost4 - 提供监听接口的 IPv4 地址
- --configfile - 配置文件位置 - 默认为同一目录下的 'udp.txt'
- --probehelp - 帮助文件位置 - 默认为同一目录下的 'udphelp.txt'
用法:
用法:python udp-hunter.py --file=inputfile.txt --output=outputfile.txt [可选参数]
用法:python udp-hunter.py --file=inputfile.txt --output=outputfile.txt [--probes=NTPRequest,SNMPv3GetReques] [--ports=123,161,53] [--retries=3] [--noise=true] [--verbose=false] [--timeout=1.0] [--configfile]
致谢:
UDP 探针主要取自 amap、ike-scan、nmap 和 udp-proto-scanner。扫描代码的灵感来自 udp-proto-scanner。
未来工作:
- 添加更多 UDP 探针
- 不同的报告格式
- 更新与利用相关的帮助信息
了解更多: