
このツールは、複数のOSINT(オープンソースインテリジェンス)ツールの結果を集約することで、企業に関連するサブドメインを列挙するために使用できます。
.______ .______ .______ ._______ ._______ ._______ . : _ \ : __ \ : __ \ : . \ : __ / : .___ \ __ :| | | || _|| _|| : | || |> \ | : | | | :| | . | || : \ | : \ | : || |> | : | | | |. __/ | || |\ _. _/ |/ _. / | | :/ || || :/ :/ |__| : : :
Copyright 2019 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.
Dr.ROBOTは**ドメイン偵察・列挙(Domain Reconnaissance and Enumeration)**のためのツールです。コンテナを利用することで、依存関係の処理、OS間の非互換性、異なる言語といったオーバーヘッドを軽減し、高い移植性と構成の柔軟性を備えて作られています。
ユースケース: 組織が保有する公開サーバーを可能な限り収集します。DNSリソースに問い合わせることで、さらなる解析を実行できる潜在的なターゲットの大規模なリストを迅速に作成できます。
注記: Dr.ROBOTは単一機能のツールではありません。情報収集に使用するツールを簡単にカスタマイズできるため、最新・最高のツールと、実戦で実績のあるお気に入りのツールの両方を活用できます。
Dr.ROBOTは設定ファイル、テンプレート、ログ、出力ファイル、データベースファイルを、$HOME ディレクトリ配下の .drrobot に追加します。
ディレクトリ構造は以下のようになります。
-rw-r--r-- 1 0 Sep 16 12:15 ansible_inventory
drwxr-xr-x 5 160 Sep 16 12:18 ansible_plays
-rw-r--r-- 1 13576 Sep 16 12:41 config.json
drwxr-xr-x 4 128 Sep 17 10:48 dbs
drwxr-xr-x 21 672 Sep 16 13:51 docker_buildfiles
drwxr-xr-x 4 128 Sep 16 15:38 logs
drwxr-xr-x 3 96 Sep 16 12:46 output
もし設定を壊してしまい復元できない場合は、$HOME ディレクトリ内の config.json ファイルを削除し、Dr.ROBOTを再実行してください。新しい設定ファイルが自動生成されます。
git clone <URL>
cd gitrepo
pip install -r requirements.txt
pip install -e .
drrobot --help
usage: drrobot [-h] [--proxy PROXY] [--dns DNS] [--verbose] [--dbfile DBFILE]
{gather,inspect,upload,rebuild,dumpdb,output,serve} ...
Docker DNS recon tool
positional arguments:
{gather,inspect,upload,rebuild,dumpdb,output,serve}
gather Runs initial scanning phase where tools under the
webtools/scannerscategory will run and gather
information used in the following phases
inspect Run further tools against domain information gathered
from previous step.Note: you must either supply a file
which contains a list of IP/Hostnames orThe targeted
domain must have a db under the dbs folder
upload Upload recon data to Mattermost/Slack
rebuild Rebuild the database with additional files/all files
from previous runtime
dumpdb Dump contents of database (ip,hostname,banners) to a
text file with hostname for filename
output Generate output in specified format. Contains all
information from scans (images, headers, hostnames,
ips)
serve Serve database file in docker container using django
optional arguments:
-h, --help show this help message and exit
--proxy PROXY Proxy server URL to set DOCKER http_proxy too
--dns DNS DNS server to add to resolv.conf of DOCKER containers
--verbose Display verbose statements
--dbfile DBFILE Specify what db file to use for saving data too
git clone <URL>
cd gitrepo
pipenv sync
pipenv shell
drrobot --help
usage: drrobot [-h] [--proxy PROXY] [--dns DNS] [--verbose] [--dbfile DBFILE]
{gather,inspect,upload,rebuild,dumpdb,output,serve} ...
Docker DNS recon tool
positional arguments:
{gather,inspect,upload,rebuild,dumpdb,output,serve}
gather Runs initial scanning phase where tools under the
webtools/scannerscategory will run and gather
information used in the following phases
inspect Run further tools against domain information gathered
from previous step.Note: you must either supply a file
which contains a list of IP/Hostnames orThe targeted
domain must have a db under the dbs folder
upload Upload recon data to Mattermost/Slack
rebuild Rebuild the database with additional files/all files
from previous runtime
dumpdb Dump contents of database (ip,hostname,banners) to a
text file with hostname for filename
output Generate output in specified format. Contains all
information from scans (images, headers, hostnames,
ips)
serve Serve database file in docker container using django
optional arguments:
-h, --help show this help message and exit
--proxy PROXY Proxy server URL to set DOCKER http_proxy too
--dns DNS DNS server to add to resolv.conf of DOCKER containers
--verbose Display verbose statements
--dbfile DBFILE Specify what db file to use for saving data too
プロキシ環境での実行は面倒でした。この問題を軽減するため、$HOME/.drrobot/* 配下に certs ディレクトリを作成し、そこに .crt ファイルを追加できるようにしています。Dockerfileのビルドプロセスの一環として、証明書を含むtarファイルを生成し、Amassなどのアプリケーションが実行できるようにしています。
Dr.ROBOTには docker-compose.yml ファイルが同梱されています。このファイルには、Minioと実行時に収集されたファイルを提供するためのシンプルなComposeファイルが含まれています。
使用するには:
cd /path/to/drrobot/
docker-compose up
このツールはDockerに大きく依存しています。
インストール手順はこちらを参照してください:
任意のモジュールをAnsible対応にすることができます。
インストール手順はインストールガイドを参照してください。
brew install gnu-tareval $(ssh-agent)
ssh-add /path/to/keyfile
独自のツールを追加する方法については、設定を参照してください。
使用方法については、使い方を参照してください。