
bbot v3.0.2
ハッカーのための再帰的インターネットスキャナー。🧡
BEE·bot は Spiderfoot に触発された多目的スキャナーで、あなたの Recon、バグバウンティ、ASM を自動化するために作られました!
https://github.com/blacklanternsecurity/bbot/assets/20261699/e539e89b-92ea-46fa-b893-9cde94eebf81
リアルタイムのBBOTスキャン - VivaGraphJSによる可視化
インストール
# stable version
pipx install bbot
# bleeding edge (dev branch)
pipx install --pip-args '\--pre' bbot
Dockerを含むその他のインストール方法については、Getting Startedを参照してください
2.xからアップグレードしますか? BBOT 3.0には、CLI、プリセット、モジュール、イベント、およびPython APIに対する破壊的な変更が含まれています。アップグレードする前に、2.x → 3.0 移行ガイド(ソース)を参照してください。
速度向上のヒント: BBOTのDNSリゾルバー(blastdns)は、
/etc/resolv.conf内のリゾルバーごとに複数のスレッドを起動します。フィルタリングされていないリゾルバーを追加すると、スキャンが劇的に高速化されます。詳細は、サンプル resolv.confとヒントとコツを参照してください。
コマンド例
1) サブドメイン検出
パッシブAPIソースと、ターゲット固有のサブドメインミューテーションを用いた再帰的DNSブルートフォース。
# find subdomains of evilcorp.com
bbot -t evilcorp.com -p subdomain-enum
# passive sources only
bbot -t evilcorp.com -p subdomain-enum -rf passive
subdomain-enum.yml
description: Enumerate subdomains via APIs, brute-force
flags:
# enable every module with the subdomain-enum flag
- subdomain-enum
output_modules:
# output unique subdomains to TXT file
- subdomains
config:
dns:
threads: 25
brute_threads: 1000
# put your API keys here
# modules:
# github:
# api_key: ""
# chaos:
# api_key: ""
# securitytrails:
# api_key: ""
BBOTは他のツールよりも常に20〜50%多くのサブドメインを発見します。ドメインが大きいほど、その差は顕著になります。なぜそれが可能なのかについては、仕組みを参照してください。

2) Webスパイダー
# crawl evilcorp.com, extracting emails and other goodies
bbot -t evilcorp.com -p spider
spider.yml
description: Recursive web spider
modules:
- http
blacklist:
# Prevent spider from invalidating sessions by logging out
- "RE:/.*(sign|log)[_-]?out"
config:
web:
# how many links to follow in a row
spider_distance: 2
# don't follow links whose directory depth is higher than 4
spider_depth: 4
# maximum number of links to follow per page
spider_links_per_page: 25
3) メール収集
# quick email enum with free APIs + scraping
bbot -t evilcorp.com -p email-enum
# pair with subdomain enum + web spider for maximum yield
bbot -t evilcorp.com -p email-enum subdomain-enum spider
email-enum.yml
description: Enumerate email addresses from APIs, web crawling, etc.
flags:
- email-enum
output_modules:
- emails
4) Webスキャナー
# run a light web scan against www.evilcorp.com
bbot -t www.evilcorp.com -p web
# run a heavy web scan against www.evilcorp.com
bbot -t www.evilcorp.com -p web-heavy
web.yml
description: Quick web scan
include:
- iis-shortnames
flags:
- web
web-heavy.yml
description: Aggressive web scan
include:
# include the web preset
- web
flags:
- web-heavy
5) エブリシング・エブリウェア・オール・アット・ワンス
# everything everywhere all at once
bbot -t evilcorp.com -p kitchen-sink
# roughly equivalent to:
bbot -t evilcorp.com -p subdomain-enum cloud-enum code-enum email-enum spider web paramminer webbrute web-screenshots
kitchen-sink.yml
description: Everything everywhere all at once
include:
- subdomain-enum
- cloud-enum
- code-enum
- email-enum
- spider
- web
- paramminer
- webbrute
- web-screenshots
- baddns-heavy
config:
modules:
dnsbrute:
recursive_mutations: true
dnscommonsrv:
recursive_mutations: true
webbrute:
avoid_wafs: False
wayback:
urls: True
parameters: True
archive: True
仕組み
下のグラフをクリックして、BBOTの内部構造を探索してください。
出力モジュール
...およびその他!
PythonライブラリとしてのBBOT
同期
from bbot.scanner import Scanner
if __name__ == "__main__":
scan = Scanner("evilcorp.com", presets=["subdomain-enum"])
for event in scan.start():
print(event)
非同期
from bbot.scanner import Scanner
async def main():
scan = Scanner("evilcorp.com", presets=["subdomain-enum"])
async for event in scan.async_start():
print(event.json())
if __name__ == "__main__":
import asyncio
asyncio.run(main())
機能概要
- 複数ターゲットのサポート
- Webスクリーンショット
- 攻撃的なWebモジュール群
- NLPを活用したサブドメインミューテーション
- Neo4jへのネイティブ出力(およびその他)
- Ansibleによる依存関係の自動インストール
- カスタムYARAルールによる攻撃対象領域全体の検索
- Python API + 開発者向けドキュメント
ターゲット
BBOTは-tで無制限にターゲットを受け付けます。ターゲットはコマンドラインで直接指定することも、ファイルで指定することもできます(またはその両方!):
bbot -t evilcorp.com evilcorp.org 1.2.3.0/24 -p subdomain-enum
ターゲットには以下のいずれかを指定できます:
- DNS名 (
evilcorp.com) - IPアドレス (
1.2.3.4) - IPレンジ (
1.2.3.0/24) - オープンTCPポート (
192.168.0.1:80) - URL (
https://www.evilcorp.com) - メールアドレス (
[email protected]) - 組織 (
ORG:evilcorp) - ユーザー名 (
USER:bobsmith) - ファイルシステム (
FILESYSTEM:/tmp/asdf) - モバイルアプリ (
MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)
詳細については、ターゲットを参照してください。BBOTがスコープをどのように処理するかについては、スコープを参照してください。
APIキー
AmassやSubfinderと同様に、BBOTはSecurityTrailsなどの様々なサードパーティサービス向けのAPIキーをサポートしています。
標準的な方法は、APIキーを**~/.config/bbot/secrets.yml**に入力することです。複数のAPIキーを指定できることに注意してください:
modules:
shodan_dns:
api_key: 4f41243847da693a4f356c0486114bc6
c99:
# multiple API keys
api_key:
- 21a270d5f59c9b05813a72bb41707266
- ea8f243d9885cf8ce9876a580224fd3c
- 5bc6ed268ab6488270e496d3183a1a27
virustotal:
api_key: dd5f0eee2e4a99b71a939bded450b246
securitytrails:
api_key: d9a05c3fd9a514497713c54b4455d0b0
必要であれば、コマンドラインで指定することもできます:
bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246
詳細は設定を参照してください。
モジュール、フラグなどの完全なリスト
- モジュールの完全なリスト。
- フラグの完全なリスト。
- プリセットの完全なリスト。
- グローバル設定オプションの完全なリスト。
- モジュール設定オプションの完全なリスト。
ドキュメント
- ユーザーマニュアル
- 開発者マニュアル
貢献
最高のBBOTモジュールのいくつかはコミュニティによって書かれました。BBOTは絶えず改良されており、日々より強力になっています!
私たちは貢献を歓迎します。コードだけでなく、アイデアも歓迎します! 新機能のアイデアがあれば、ディスカッションでお知らせください。実際に手を動かしたい方は、貢献を参照してください。そこには、セットアップ手順とBBOTモジュールの書き方に関する簡単なチュートリアルがあります。また、充実した開発者向けドキュメントもあります。
BBOTに貢献してくれた素晴らしい人々に感謝します! ❤️
特に感謝します:
- BBOTを生み出した @TheTechromancer
- badsecretsやbaddnsを含む、BBOTのWebハッキング機能に多大な貢献をした @liquidsec
- Spiderfootを生み出した Steve Micallef (@smicallef)
- Neo4jとAnsibleの専門知識を提供してくれた @kerrymilan
- 素晴らしいコード収集モジュール群を生み出した @domwhewell-sage
- 容赦ないテストをしてくれた @aconite33 と @amiremami
- bbot Pypiリポジトリの所有権を譲渡してくれた Aleksei Kornev (@alekseiko) <3


