
🚀 DNS自動スキャナーおよびツール 🖱️ (ゾーン転送、DNSゾーン乗っ取り、サブドメイン乗っ取り)
Subrakeは、当初はサブドメイン列挙のための個人プロジェクトとして始まりましたが、現在ではゾーン転送、DNSゾーン乗っ取り、サブドメイン乗っ取りを一括で特定できる詳細なDNSスキャンツールに成長しました。
ゾーン転送は何年も前から存在しており、何らかの理由でドメインで有効になっている場合、第三者がゾーンからすべてのレコードを列挙できるようになります。これは実際には、所有者がドメインをあるプロバイダーから別のプロバイダーに移転する際に使用されます。
サブドメイン乗っ取りは、その名の通り、サブドメインが指しているサービスの乗っ取りです。そのサービスは利用されていない、または停止している必要があります。
DNSゾーン乗っ取りは、サブドメイン乗っ取りと比較すると、悪用された場合により深刻になる可能性があります。これはドメインのゾーンの1つを乗っ取るものです。これにより、バックエンドにサービスを作成するだけではなく、はるかに多くのことが可能になります。実際に独自のDNSレコードを設定し、自由に操作できます。
より詳細な情報については、私のブログをご覧ください:A Guide to Zone Transfer, DNS Zone Takeover and Subdomain Takeover
SubrakeはDNS評価ツール(ほぼ自動化)であり、UIとCLIの両方を備え、DNS問題をカバーするためにさまざまなフェーズを経ます。このツールは継続的に変更と開発が行われており、誰でもプロジェクトに貢献できます。
主にバグバウンティや情報セキュリティ業界向けに設計されていますが、ブルーチームや内部ペネトレーションテストにも活用できます。CLIとWebベースのGUIインターフェースの両方をサポートし、複数のインストールモードに対応しています。主な機能は以下のとおりです。
csv形式で提供。Subrakeは、自動モードでセットアップするか、リポジトリを手動でクローンしてsetuptoolsを使用してインストールできます。前者はより制御が効き、UIを備えて柔軟です。しかし、シンプルなCLIモードを好む場合やWindowsの場合は、手動セクションを参照してください。
リポジトリをクローンして移動します:
$ git clone https://github.com/hash3liZer/Subrake.git
$ cd ./Subrake
Vagrant(KVM使用)を使用してsubrakeをセットアップできます。マシンが起動され、すべてが自動的に設定されます。まず要件をインストールします:
$ apt update
$ apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager vagrant vagrant-libvirt
次に、リポジトリ内でvagrant upを実行します:
$ vagrant up
サーバーのプロビジョニングには時間がかかります。完了すると、次のURLが表示されます:http://127.0.0.1:9090
デフォルトの認証情報はsubrake/passwordです。プロビジョニング中に変更することもできます:
$ SUBRAKE_USERNAME="username" SUBRAKE_PASSWORD="password" vagrant up
完了後、以下のコマンドで新しく作成したマシンの状態を管理できます:
# マシンの状態を確認
$ vagrant status
# マシンをサスペンド
$ vagrant suspend
# マシンを再開
$ vagrant resume
# マシンをシャットダウン
$ vagrant halt
# 再起動
$ vagrant up
# マシンを削除
$ vagrant destroy
手動セットアップでは、ディレクトリに直接移動し、setuptoolsを使用してインストールできます。
要件をインストールし、setup.pyを実行します:
$ pip3 install -r requirements.txt
$ python3 setup.py install
subrakeがインストールされているか確認します:
subrake --help
DockerfileからDockerイメージをビルドすることもできます:
$ docker build -t subrake:latest .
Dockerコンテナを確認します:
$ docker run --rm subrake --help
スクリプトをベアメタルサーバーにデプロイすることもできます。そのためには、新しいUbuntu 20.04サーバーを起動し、次のコマンドを実行します:
$ chmod +x ./installer.sh
$ ./installer.sh --deploy
サーバーは0.0.0.0:9090でアクセス可能になります。nginxサービスをセットアップしてリバースプロキシとして使用できます。
UIを使用する場合は、Subtap a Domainページに直接移動してスキャンを実行できます。スキャンに関するいくつかの質問が表示されます:
スキャンはtmuxセッション内で開始されます。CTRL+E => dを押すと実行中の画面を終了し、新しいスキャンを開始できます。また、画面を一時停止して上下に移動するには、CTRL+E => [を押します。これはTMUXのショートカットで、グローバルバインドキーがCTRL+Eに変更されています。
実行中の画面に戻るには、その名前を再度入力します:
コマンドラインでは、subrakeと入力してツールに直接アクセスできます。以下にsubrakeの使用例をいくつか示します:
デフォルトオプションでの簡単な実行:
$ subrake -d google.com
マルチスレッドを使用したSubrake:
$ subtake -d google.com -t 50
モジュールとワードリストを使用したSubrake:
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt
OSINT結果と複数のSecListsサブドメインリストを使用したSubrake:
注:同じ名前のサブドメインは自動的にフィルタリングされ、1つとしてカウントされます。
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt,SecLists/Discovery/DNS/dns-Jhaddix.txt
検索エンジンなし + 複数のツールの出力を結合 + IPフィルタリング(ツールをsubrakeに統合できることに注意):
$ domain="google.com"
$ subfinder -d $domain -nW -o $domain/1.txt && sublist3r -d $domain -o $domain/2.txt && cat $domain/* >> /tmp/output.txt
$ subrake -d $domain -w tmp/output.txt --filter --skip-search
ポートスキャンを使用したSubrake:
注:デフォルトでポート80、443はすべてのホストに対してHTTP/HTTPSバナーでスキャンされます。そのため、ここで指定する必要はありません。
$ subrake -d google.com --ports 8080,8443,8000,23,445
プルリクエストや機能の提案は自由に行ってください。以下の方法で貢献できます: