UDP Hunterとは?
UDPスキャンは常に遅くて面倒な作業であり、UDPにIPv6を追加すると、ツールの選択肢が非常に限られてきます。UDP Hunterは、UDPサービススキャンに特化したPythonベースのオープンソースネットワーク評価ツールです。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、およびUDP Hunterの開発中に貴重な意見を提供してくれたAnant氏とSumit Siddharth(Sid)氏に心から感謝します。
サポートされている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 ” and “--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プローブの追加
- 異なるレポート形式
- 悪用関連のヘルプの更新
詳細情報: