
Syborg は、アクティブでも完全にパッシブでもない再帰的 DNS ドメイン列挙ツールです。このツールは単純にドメイン名を構築し、指定された DNS サーバーに問い合わせを行います。
Syborg は @Tomnomnom の ettu から着想を得た行き止まり回避システムを備えています。
一部のツールでサブドメイン列挙を実行すると、ほとんどのツールは virustotal、crtsh、censys などの公開レコードを受動的に照会します。この手法は非常に高速で、短時間で多くのドメインを発見するのに役立ちます。
しかし、これらの公開レコードに記載されていないドメインも存在します。そうしたドメインを見つけるために、Syborg はネームサーバーと対話し、キューが空になるまで DNS からサブドメインを再帰的にブルートフォースします。
画像クレジット: Carbon
ettu のページで述べられているように、引用します:
通常、DNS 名に対して返すレコードがない場合、
NXDOMAINエラーが発生するでしょう:▶ host four.tomnomnom.uk Host four.tomnomnom.uk not found: 3(NXDOMAIN)代わりに空の応答が返されることもあることに気づいたかもしれません:
▶ host three.tomnomnom.uk後者の場合の違いは、多くの場合、クエリした名前を接尾辞として持つ別の名前が存在し、その名前に対してレコードが返されることです。
▶ host one.two.three.tomnomnom.uk one.two.three.tomnomnom.uk has address 46.101.59.42この応答の違いを利用することで、前者の状況では再帰を行わないようにすることで、再帰的 DNS ブルートフォースにおける行き止まりを回避できます:
▶ echo -e "www\none\ntwo\nthree" | ettu tomnomnom.uk one.two.three.tomnomnom.uk
Syborg はこれらすべての機能を、シンプルな並行処理と再帰で統合しています。
Python 3.x (推奨)
Python 2.x (未テスト)
git clone コマンドを使用してリポジトリをクローンします:
git clone https://github.com/MilindPurswani/Syborg.git
依存関係を解決します:
pip3 install -r requirements.txt
python3 syborg.py yahoo.com
使用法に関する詳細は Syborg の Creative Usage Guidelines に記載されています。ぜひご確認ください!
場合によっては、Syborg が CPU 使用率を高くすることがあり、VPS でこのツールを使用すると大きなコストがかかる可能性があります。そのため、cpulimit という別のユーティリティを使用して制限することをお勧めします。
cpulimit -l 50 -p $(pgrep python3)
このツールは次のようにインストールできます:
sudo apt install cpulimit
FileQueue ライブラリに感謝します。dnsgen のようなツールを提供してくれたことに感謝します。