inter-recon
自動的な初期のWebおよび脆弱性の偵察を実行するスクリプト。
エラー発生時にはいくつかのチェックを行います。
いくつかのチェックをスキップしたり、再開したり、中断した最後のポイントから続行したりすることが可能です。(これは、VPNの時間制限などのネットワーク問題が時々発生するためです。)
inter-reconスクリプトをbinパス(例:/usr/bin/)にコピーまたはリンクすると、任意の場所からスクリプトを実行できることに注意してください。出力は実行した場所に作成されます。
READMEの最後(追加情報セクション)にあるWFUZZの問題と回避策を参照することが重要です。
複数の既知のドメイン/IPを使用する場合の例:
- domains.txtファイルにすべてのドメインまたは異なるIPを作成
- 実行: inter-recon -T $(pwd)/domains.txt -d $(pwd)/known-domains -w /home/kali/Desktop/tools/inter-recon/dictionaries/without-slash/dict-small-without-slash.txt -s all -a true
ネットワーク/IPで使用する場合の例:
- 実行: inter-recon -t 10.11.1.1/24 -w /home/kali/Desktop/tools/inter-recon/dictionaries/without-slash/dict-small-without-slash.txt -s all -a true
使い方:
inter-recon.sh [オプション]
-t {NET OR IP}
-T {Target PATH}
-d {Dictionary Path}
-w {DICT PATH}
-s {scan type}
-a オプション: 最初の実行時にwfuzzプロセスですべてをスキップし、何も確認しないスーパー自動スキャン用
スキャンタイプ
- all
- portscan
- nmap TCP -> フルポート、次のポートのいずれかが開いている場合にホストが起動しているかをチェック (1025,1028,1029,10443,111,135,139,1521,161,1917,21,22,23,25,2869,3306,3389,443,445,49000,497,5000,515,53,548,5985,5986,6000,79,80,8080,8081,8090,9001,9002,9100,993,995)
- nmap UDP -> デフォルトのホスト起動プロセスで上位100ポート
- vulnscan
- nmap UDPおよびTCPスキャンをファイルにパース
- nmap UDPおよびTCPスキャンをサービスフォルダにサービスごとにパース
- 開いているポートに対してポート/バージョン関連スクリプトを実行するnmap UDPおよびTCP
- smbmapゲスト実行 -> ユーザーなしで書き込み/読み取りが可能かをチェック
- enum4linuxゲスト実行 -> Sambaから取得した情報をチェック
- smbversion実行 -> Sambaのバージョンを取得(LinuxサーバーではSambaバージョンを確認する唯一の方法となる場合がある)
- webscan
- nmap実行からhttpxによるHTTPディスカバリ
- wfuzzによる発見されたURLのファジング
- aquatoneによるファジングからのステータス200 URLのスクリーンショット
- byp4xxによる403バイパステクニック
- following steps -> スクリプト実行後に行うことの簡単な説明
- ドキュメンテーションフォルダとテンプレート構造 -> 証拠を追加するフォルダを作成し、スキャンに関連する情報を含む.mdファイルを追加
- vuln
- portscan (上記と同じ)
- vulnscan (上記と同じ)
- following steps (上記と同じ)
- ドキュメンテーションフォルダとテンプレート構造
- web
- portscan (上記と同じ)
- webscan (上記と同じ)
- following steps (上記と同じ)
- ドキュメンテーションフォルダとテンプレート構造
構造:
- 最初にTCPとUDPのポートスキャン(バージョン付き)(nmap、sudoが必要)
- 脆弱性偵察スキャン(ポートをIP,Port,Service,Versionの形式でファイルにパースし、サービスファイルにパース、フルポート/バージョン関連スクリプトでnmapを実行するコマンド)
- httpxがHTTPポートを見つけた場合のWebファジング偵察スキャン(httpx、wfuzz、aquatone、byp4xx 403ファイル <- ステータス403が存在する場合)
使用するアプリケーション:
- nmap (通常バージョンおよびnmap-vulnersスクリプト付き、両方ともsudoが必要。TCP(-PSを使用していくつかのポートが開いている場合にフルポート)およびUDP(上位100ポートのみ)を使用)
- httxp (nmap実行からHTTPポートを取得するため)
- aquatone (HTTPディスカバリで見つかったステータス200の応答のスクリーンショットを撮るため)
- wfuzz (HTTPポートに対してファジングを行うため)
- byp4xx (さまざまな方法で403 URLのバイパスを試みるため)
- smbmap (ネットワーク共有フォルダに関連するゲスト権限を取得するため)
- enum4linux (ゲスト権限でSMB情報を取得するため)
- smbversion (SMBの実際のバージョンを取得するため)
- dnsrecon (DNSサーバーへのゾーン転送を試みるため)
- crackmapexec (サーバーに関連する名前を取得するため)
- host (DNSサーバーのホスト名を取得)
- dig (サーバーをネームサーバーとして使用してDNSサーバーのホスト名を取得(@))
出力フォルダ構造: (例)
- 192.168.122.1-24/ -> 初期フォルダ
- nmap/ -> TCPおよびUDPのnmap(バージョン付き)のXMLおよびgrepable出力を含むフォルダ
- nmap-tcp-target.xml -> 一部のツールにインポートするためのnmap出力
- nmap-udp-target.xml -> 一部のツールにインポートするためのnmap出力
- nmap-tcp-target.xml -> パースして情報を読みやすくするためのgrepable nmap
- nmap-udp-target.xml -> パースして情報を読みやすくするためのgrepable nmap
- aux/ -> 以前の実行とスキップされたwfuzz URLを制御するフォルダ
- nmap/ -> ここにhttpx用のすべてのnmapがあります。httpxプロセスで処理済みのnmapファイルは削除され、エラーが発生した場合にそのnmapファイルから続行できるようにします。
- full-initial-files.txt -> ここでは実行が正しかったURLを削除します
- wfuzz-skipped-urls.txt -> ここではエラーが発生したためにスキップしたURLを追加します ((Total request + 1) - Processed request != 0)
- debug/ -> 実行のデバッグ用フォルダ
- nmap-tcp-output.txt -> nmap(バージョンのみ)の実行出力
- nmap-tcp-cve-output.txt -> 関連するすべてのスクリプトを実行するための -A オプション付きnmap
- nmap-udp-output.txt -> nmap(バージョンのみ)の実行出力
- nmap-udp-output.txt -> 関連するすべてのスクリプトを実行するための -A オプション付きnmap
- wfuzz-output.txt -> wfuzzの実行出力
- screenshot-output.txt -> aquatoneの実行出力
- fuzzing/ -> wfuzzの実行を含むフォルダ(ステータス50および40を確認することが重要)
- services/ -> nmapからパースされたすべてのサービスを含むフォルダ
- {SERVICE-NAME}-services.txt -> IP,PORT,Extra-service-infoの出力を含むサービス実行結果
- cve/ -> nmap-vulnersスクリプトによってホストごとに見つかった脆弱性を含むフォルダ
- {IPs}.txt -> nmap-vulnersスクリプトの出力
- http-discover/ -> httpxの実行を保存および制御するフォルダ
- httpx_aux.txt -> httpxを実行するためのすべてのドメイン+ポートを含むファイル
- screenshots/ -> wfuzzによって見つかったステータス200のURLのスクリーンショットを含むフォルダ
- screens -> すべてのスクリーンショットを含むフォルダ
- report.html -> 構造化された情報を含むレポート
- {OTHER} -> report.htmlへのその他の要素
- full-initial-files.txt -> wfuzzでファジングするための初期HTTPディスカバリでhttpxが見つけたURLを含むファイル
- urls-status-{200,401,403,etc}.txt -> wfuzzによって見つかった最終的なステータスURL。変数$status(見つかったURLのステータス)に応じて変化します
- targets.txt -> -tパラメータで追加したIPまたはネットワークを含むファイル
- bypass/ -> byp4xx lobuhiアプリケーションを含むフォルダ(403 URLが見つかった場合のみ)
- byp4xx-{URL without : and /}.txt -> 各403 URLのbyp4xx出力
- all-urls-fuzzing-results.txt -> 形式 "urlStatus URL" のすべてのURLファジングスキャン結果を含むファイル
- full-nmap-parsed-tcp.txt -> 形式 "IP,Port,Service,Version" でパースされたNmap
- smb/
- smbmap/
- {HOST}-smbmap.txt -> ゲストのSambaフォルダ権限のsmbmap実行結果
- enum4linux/
- {HOST}-enum4linux.txt -> 回復可能なゲスト情報
- smbversion/{HOST}-smbversion.txt -> Sambaのバージョン(nmapや他のツールが実際のバージョンを認識しない場合があるので便利)
今後の予定:
- wfuzzからのURLステータスファイルをドキュメントに直接追加(200、401、403、503。チェック漏れを防ぐため)
- 脆弱性スキャンに「OPENVASスキャン」を含める
- Webスキャンにwfuzzで見つかったHTTP URLからのURLとドメインの取得を含める
- OSINTという新しいスキャンタイプを含める。これにより、Webや異なるスクリプト実行から情報を取得できる。
インストールツールURL:
追加情報
- UDP nmapは上位100ポートのみです。時間があれば、バックグラウンドで全UDPポートの追加nmapを実行してください。
- TCP nmapはいくつかのポートをチェックしてホストが起動しているか確認し、起動していればスキャンします。時間があれば、バックグラウンドで-Pnオプションを使用して全TCPポートの追加nmapを実行してください。
- wfuzzがスクリプトをブロックすることが数回ありました。wfuzzには、URLでエラーが発生した場合にデッドロックが発生する問題があるようです。問題が解決されるまでの回避策として、th.join()をコメントアウトし、ファイル /usr/local/lib/python3.9/dist-packages/wfuzz/myhttp.py の "Cleanup" 関数にpassを追加してください。