
マルチスレッドで情報収集とサービス列挙を行い、結果を保存するためのディレクトリ構造を構築するとともに、さらなるテストのための推奨事項を作成するセキュリティツール。

OSCPラボ向けに作られた偵察ツールで、情報収集とサービス列挙を自動化し、各ホストの結果、発見事項、エクスプロイトを保存するディレクトリ構造、推奨コマンド、戦利品やフラグを保存するディレクトリ構造を作成します。
コントリビューションを大歓迎します!
Reconnoitreは数年間メンテナンスしてきた愛用ツールですが、私の意見では、Interlace内で独自の列挙アプローチを構築する機能には及びません。OSCPを超えてInfosecに取り組もうとしている方には、このプロジェクトを時間をかけて検討することを強くお勧めします。
このツールは、Mike Czumak (T_v3rn1x) のOSCPレビュー(リンク)で公開された作業と、Re4sonのmix-recon(リンク)から多大な影響とコードを受けています。仮想ホストスキャンは、元々teknogeekの作業を基にしたjobertabmaの仮想ホスト発見スクリプト(リンク)を適応したものです。さらに、仮想ホストスキャンコードは、Tim Kentと私のプロジェクト(リンク)から適応されています。
Reconnoitreをインストールするには、まず以下のコマンドを実行してリポジトリのローカルコピーを作成します(配置したい場所で行ってください)。
git clone https://github.com/codingo/Reconnoitre.git
その後、次のコマンドでsetup.pyを実行します。
python3 setup.py install
セットアップが完了すると、Reconnoitreがパス(reconnoitreとして)に追加され、以下のコマンドでどこからでも起動できます。
reconnoitre <args>
このツールは個人使用のために自由に使用・コピーできますが、元々この自動化作業を始めたMike Czumakへの帰属とクレジットを提供する必要があります。
これらの例は、このツールの潜在的なユースケースを示すものです。スキャンで達成したい内容に応じて、コマンドラインを追加または削除できます。
reconnoitre -t 192.168.1.5 -o /root/Documents/labs/ --services
出力例は次のようになります。
root@kali:~/# reconnoitre -t 192.168.1.5 --services -o /root/Documents/labs/
__
|"""\-= RECONNOITRE
(____) An OSCP scanner
[#] Performing service scans
[*] Loaded single target: 192.168.1.5
[+] Creating directory structure for 192.168.1.5
[>] Creating scans directory at: /root/Documents/labs/192.168.1.5/scans
[>] Creating exploit directory at: /root/Documents/labs/192.168.1.5/exploit
[>] Creating loot directory at: /root/Documents/labs/192.168.1.5/loot
[>] Creating proof file at: /root/Documents/labs/192.168.1.5/proof.txt
[+] Starting quick nmap scan for 192.168.1.5
[+] Writing findings for 192.168.1.5
[>] Found HTTP service on 192.168.1.5:80
[>] Found MS SMB service on 192.168.1.5:445
[>] Found RDP service on 192.168.1.5:3389
[*] TCP quick scan completed for 192.168.1.5
[+] Starting detailed TCP/UDP nmap scans for 192.168.1.5
[+] Writing findings for 192.168.1.5
[>] Found MS SMB service on 192.168.1.5:445
[>] Found RDP service on 192.168.1.5:3389
[>] Found HTTP service on 192.168.1.5:80
[*] TCP/UDP Nmap scans completed for 192.168.1.5
これにより、各ターゲットのscansフォルダに以下のような推奨事項ファイルも書き込まれます。
[*] Found HTTP service on 192.168.1.50:80
[>] Use nikto & dirb / dirbuster for service enumeration, e.g
[=] nikto -h 192.168.1.50 -p 80 > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_nikto.txt
[=] dirb http://192.168.1.50:80/ -o /root/Documents/labs/192.168.1.50/scans/192.168.1.50_dirb.txt -r -S -x ./dirb-extensions/php.ext
[=] java -jar /usr/share/dirbuster/DirBuster-1.0-RC1.jar -H -l /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -r /root/Documents/labs/192.168.1.50/scans/192.168.1.50_dirbuster.txt -u http://192.168.1.50:80/
[=] gobuster -w /usr/share/seclists/Discovery/Web_Content/common.txt -u http://192.168.1.50:80/ -s '200,204,301,302,307,403,500' -e > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_gobuster_common.txt -t 50
[=] gobuster -w /usr/share/seclists/Discovery/Web_Content/cgis.txt -u http://192.168.1.50:80/ -s '200,204,301,307,403,500' -e > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_gobuster_cgis.txt -t 50
[>] Use curl to retreive web headers and find host information, e.g
[=] curl -i 192.168.1.50
[=] curl -i 192.168.1.50/robots.txt -s | html2text
[*] Found MS SMB service on 192.168.1.5:445
[>] Use nmap scripts or enum4linux for further enumeration, e.g
[=] nmap -sV -Pn -vv -p445 --script="smb-* -oN '/root/Documents/labs/192.168.1.5/nmap/192.168.1.5_smb.nmap' -oX '/root/Documents/labs/192.168.1.5/scans/192.168.1.5_smb_nmap_scan_import.xml' 192.168.1.5
[=] enum4linux 192.168.1.5
[*] Found RDP service on 192.168.1.5:3389
[>] Use ncrackpassword cracking, e.g
[=] ncrack -vv --user administrator -P /root/rockyou.txt rdp://192.168.1.5
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --hostnames
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --services --quick
これにより、ターゲット範囲内のすべてのサービスをスキャンし、生存ホストのファイル構造を作成するとともに、これらのマシンで発見されたサービスに基づいて実行すべき他のコマンドの推奨事項を書き込みます。--quick を削除すると、より詳細なプローブを実行しますが、実行時間が大幅に長くなります。
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --services
このツールでホストおよびサービススキャンを行うための最低限の要件は、nbtscan と nmap の両方がインストールされていることです。ホストスキャンを使用せず、pingスイープとサービススキャンのみを行う場合は、nmap のみのインストールで済みます。出力される findings.txt は、Kali Linuxを使用していない場合、ディストリビューションで利用できない可能性のある追加ツールを推奨することがよくあります。すべての要件と推奨事項は、Kali Linuxにネイティブであり、このツールを使用する際の推奨ディストリビューションです(必須ではありません)。
これらの要件に加えて、出力はしばしば必要なワードリストを参照することがあります。OSCPに取り組んでいる場合は、g0tmilkによる「List of Recommended Tools」スレッドで見つけることができます。そうでない場合は、これらの大部分をオンラインまたはKali Linuxのインストール内ですでに見つけることができます。
最初の手順は、まだインストールしていない場合、Dockerをインストールすることです。Docker インストール
基本的な使用法:
cd <Reconnoitre ディレクトリ>
docker build -t reconnoitre .
docker run reconnoitre -o outputdir -t 127.0.0.1
ファイルをローカルに保持したい場合は、ディレクトリをDockerコンテナにマウントできます。
cd <Reconnoitre ディレクトリ>
docker build -t reconnoitre .
mkdir /path/to/dir
docker run -v /path/to/dir:/outputdir --services -o outputdir -t 127.0.0.1
| 引数 | 説明 |
|---|
| -h, --help | ヘルプメッセージを表示して終了 |
| -t TARGET_HOSTS | ターゲットのアドレス範囲または単一ホストを指定。ホストを含むファイルでも可。 |
| -o OUTPUT_DIRECTORY | 結果を書き込むターゲットディレクトリを指定。 |
| -w WORDLIST | プリコンパイル済みコマンドや実行する攻撃に使用する独自のワードリストを指定(オプション)。 |
| --pingsweep | ピングスイープを実行して生存ホストを発見し、OUTPUT_DIRECTORYに新しいtarget.txtファイルを書き込む。 |
| --dns, --dnssweep | ターゲットリストからDNSサーバーを探す。 |
| --snmp | ターゲットリストからSNMPリクエストに応答するホストを探す。 |
| --services | ターゲットに対してサービススキャンを実行し、さらに実行すべきコマンドの推奨事項を書き込む。 |
| --hostnames | ターゲットのホスト名を発見し、hostnames.txtに書き込む。 |
| --virtualhosts | 指定されたワードリストを使用して仮想ホストを発見する。発見されたホスト名により拡張可能。 |
| --ignore-http-codes | 仮想ホストスキャンで無視するHTTPコードのカンマ区切りリスト。 |
| --ignore-content-length | 指定されたコンテンツ長を無視する。サーバーが仮想ホスト推測ごとに静的ページを返す場合に便利。 |
| --quiet | バナーとヘッダーを抑制し、grep可能な結果のみに制限。 |
| --quick | クイックスキャンと初回の推奨事項の書き込み後、次のターゲットに移動。 |
| --no-udp | UDPサービススキャンを無効にする(デフォルトはオン)。 |