bbot - ハッカー向けの OSINT 自動化。

(OSINT automation for hackers.)

Created at: 2022-03-12 10:21:59
Language: Python
License: GPL-3.0

bbot_banner

BEE・ボット

ハッカー向けの OSINT 自動化。

Python バージョン 黒 ライセンス テスト コードコフ

サブドメインのデモ

BBOTは、Python で記述された再帰的なモジュラーOSINTフレームワークです。

gowitness
サブドメインの列挙、ポート スキャン、Web スクリーンショット (モジュールを使用)、脆弱性スキャン (を使用) など、OSINT プロセス全体を 1 つのコマンドで実行でき
nuclei
ます。

BBOT には現在50 以上のモジュールがあり、その数は増え続けています。

インストール

pipx install bbot

前提条件:

  • Python 3.9 以降をインストールする必要があります
  • pipx
    pip
    独自の Python 環境に BBOT をインストールするため、代替として推奨されます。

インストールに関してヘルプが必要な場合は、wikiを参照してください。

BBOT によるスキャン

注: この
httpx
モジュールは、BBOT が Web ページにアクセスするために使用するため、ほとんどのスキャンで推奨されます。詳細については、wikiを参照してください。

# list modules
bbot -l

# subdomain enumeration
bbot --flags subdomain-enum --modules naabu httpx --targets evilcorp.com

# passive modules only
bbot --flags passive --targets evilcorp.com

# web screenshots with gowitness
bbot -m naabu httpx gowitness --name my_scan --output-dir . -t evilcorp.com 1.2.3.4/28 4.3.2.1 targets.txt

# web spider (search for emails, etc.)
bbot -m httpx -c web_spider_distance=2 web_spider_depth=2 -t www.evilcorp.com

BBOT を Python ライブラリとして使用する

from bbot.scanner import Scanner

scan = Scanner("evilcorp.com", "1.2.3.0/24", modules=["naabu"], output_modules=["json"])
scan.start()

出力

BBOT はデフォルトで STDOUT に出力しますが、同時に複数の形式で出力できます ( を使用

--output-module
)。

# tee to a file
bbot -f subdomain-enum -t evilcorp.com | tee evilcorp.txt

# output to JSON
bbot --output-module json -f subdomain-enum -t evilcorp.com | jq

# output to CSV, TXT, and JSON, in current directory
bbot -o . --output-module human csv json -f subdomain-enum -t evilcorp.com

スキャンごとに、BBOT は のようなユニークでやや面白い名前を生成し

fuzzy_gandalf
ます。ワード クラウドや gowitness のスクリーンショットなどを含む、そのスキャンの出力は、 のその名前のフォルダーに保存されます
~/.bbot/scans
。最新の 20 件のスキャンが保持され、古いスキャンは削除されます。で BBOT の出力の場所を変更できます。
--output
また、 でカスタム スキャン名を選択することもできます
--name

スキャン名を再利用すると、元の出力ファイルに追加され、以前のワード クラウドが活用されます。

Neo4j

Neo4j は、BBOT データを表示および操作するための最も楽しい (そして最も美しい) 方法です。

neo4j

  • 1 つの docker コマンドで Neo4j を起動して実行できます。
docker run -p 7687:7687 -p 7474:7474 --env NEO4J_AUTH=neo4j/bbotislife neo4j
  • その後、 bbot を実行します
    --output-modules neo4j
bbot -f subdomain-enum -t evilcorp.com --output-modules human neo4j

使用法

$ bbot --help
usage: bbot [-h] [-t TARGET [TARGET ...]] [-w WHITELIST [WHITELIST ...]] [-b BLACKLIST [BLACKLIST ...]] [-s] [-n SCAN_NAME] [-m MODULE [MODULE ...]] [-l] [-em MODULE [MODULE ...]] [-f FLAG [FLAG ...]]
            [-rf FLAG [FLAG ...]] [-ef FLAG [FLAG ...]] [-om MODULE [MODULE ...]] [-o DIR] [-c [CONFIG ...]] [--allow-deadly] [-v] [-d] [--force] [-y] [--dry-run] [--current-config] [--save-wordcloud FILE]
            [--load-wordcloud FILE] [--no-deps | --force-deps | --retry-deps | --ignore-failed-deps] [-a]

Bighuge BLS OSINT Tool

options:
  -h, --help            show this help message and exit
  -n SCAN_NAME, --name SCAN_NAME
                        Name of scan (default: random)
  -m MODULE [MODULE ...], --modules MODULE [MODULE ...]
                        Modules to enable. Choices: affiliates,asn,aspnet_viewstate,azure_tenant,binaryedge,blind_ssrf,bypass403,c99,censys,certspotter,cookie_brute,crobat,crt,dnscommonsrv,dnsdumpster,dnszonetransfer,emailformat,ffuf,ffuf_shortnames,generic_ssrf,getparam_brute,github,gowitness,hackertarget,header_brute,host_header,httpx,hunt,hunterio,iis_shortnames,ipneighbor,leakix,massdns,naabu,ntlm,nuclei,passivetotal,pgp,securitytrails,shodan_dns,skymem,smuggler,sslcert,sublist3r,telerik,threatminer,urlscan,viewdns,wappalyzer,wayback,zoomeye
  -l, --list-modules    List available modules.
  -em MODULE [MODULE ...], --exclude-modules MODULE [MODULE ...]
                        Exclude these modules.
  -f FLAG [FLAG ...], --flags FLAG [FLAG ...]
                        Enable modules by flag. Choices: active,aggressive,brute-force,deadly,passive,portscan,report,safe,slow,subdomain-enum,web
  -rf FLAG [FLAG ...], --require-flags FLAG [FLAG ...]
                        Disable modules that don't have these flags (e.g. --require-flags passive)
  -ef FLAG [FLAG ...], --exclude-flags FLAG [FLAG ...]
                        Disable modules with these flags. (e.g. --exclude-flags brute-force)
  -om MODULE [MODULE ...], --output-modules MODULE [MODULE ...]
                        Output module(s). Choices: csv,http,human,json,neo4j,websocket
  -o DIR, --output-dir DIR
  -c [CONFIG ...], --config [CONFIG ...]
                        custom config file, or configuration options in key=value format: 'modules.shodan.api_key=1234'
  --allow-deadly        Enable running modules tagged as "deadly"
  -v, --verbose         Be more verbose
  -d, --debug           Enable debugging
  --force               Run scan even if module setups fail
  -y, --yes             Skip scan confirmation prompt
  --dry-run             Abort before executing scan
  --current-config      Show current config in YAML format

Target:
  -t TARGET [TARGET ...], --targets TARGET [TARGET ...]
                        Targets to seed the scan
  -w WHITELIST [WHITELIST ...], --whitelist WHITELIST [WHITELIST ...]
                        What's considered in-scope (by default it's the same as --targets)
  -b BLACKLIST [BLACKLIST ...], --blacklist BLACKLIST [BLACKLIST ...]
                        Don't touch these things
  -s, --strict-scope    Don't consider subdomains of target/whitelist to be in-scope

Word cloud:
  Save/load wordlist of common words gathered during a scan

  --save-wordcloud FILE
                        Output wordcloud to custom file when the scan completes
  --load-wordcloud FILE
                        Load wordcloud from a custom file

Module dependencies:
  Control how modules install their dependencies

  --no-deps             Don't install module dependencies
  --force-deps          Force install all module dependencies
  --retry-deps          Try again to install failed module dependencies
  --ignore-failed-deps  Run modules even if they have failed dependencies

Agent:
  Report back to a central server

  -a, --agent-mode      Start in agent mode

BBOT 設定

BBOT は、次の順序でこれらの場所から構成をロードします。

  • ~/.config/bbot/defaults.yml
  • ~/.config/bbot/bbot.yml
    <-- これをメイン構成として使用します
  • ~/.config/bbot/secrets.yml
    <-- API キーなどの機密情報にはこれを使用します
  • コマンドライン (経由
    --config
    )

コマンドライン引数は、他のすべての引数よりも優先されます。

--config myconf.yml
、または次のような個々の引数を使用して、 BBOT にカスタム構成ファイルを指定できます
--config http_proxy=http://127.0.0.1:8080 modules.shodan_dns.api_key=1234
。コマンドライン引数を含む完全かつ現在の BBOT 構成を表示するには、 を使用します
bbot --current-config

構成オプションの説明については、

defaults.yml
またはwikiを参照してください。

モジュール

モジュール API キーが必要 説明 フラグ プロデュースイベント
aspnet_viewstate Web ページのビューステートを解析し、blacklist3r と照合します アクティブ、安全、ウェブ 脆弱性
バイパス403 一般的なバイパスについては、403 ページを確認してください アクティブ、アグレッシブ、ウェブ 見つける
cookie_brute 一般的な HTTP Cookie パラメーターを確認する アクティブ、アグレッシブ、ブルート フォース、低速、ウェブ 見つける
dnszonetransfer DNS ゾーン転送を試みる アクティブ、安全、サブドメイン列挙 DNS_NAME
フフフ Go で書かれた高速な Web ファザー アクティブ、アグレッシブ、ブルート フォース、致命的、ウェブ URL
ffuf_shortnames ffuf を IIS 短縮名と組み合わせて使用​​する アクティブ、アグレッシブ、ブルート フォース、Web URL
generic_ssrf 一般的な SSRF を確認する アクティブ、アグレッシブ、ウェブ 脆弱性
getparam_brute 一般的な HTTP GET パラメータを確認する アクティブ、アグレッシブ、ブルート フォース、低速、ウェブ 見つける
証人 ウェブページのスクリーンショットを撮る アクティブ、安全、ウェブ スクリーンショット
header_brute 一般的な HTTP ヘッダー パラメータを確認する アクティブ、アグレッシブ、ブルート フォース、低速、ウェブ 見つける
ホスト_ヘッダー 一般的な HTTP ホスト ヘッダー スプーフィング手法を試す アクティブ、アグレッシブ、ウェブ 見つける
httpx Web ページにアクセスします。他の多くのモジュールは httpx に依存しています アクティブ、安全、ウェブ HTTP_RESPONSE,URL
ハント 一般的に悪用可能な HTTP パラメータに注意する アクティブ、安全、ウェブ 見つける
iis_shortnames IIS 短縮名の脆弱性を確認する アクティブ、安全 URL_HINT
ナーブ naabu でポートスキャンを実行する アクティブ、アグレッシブ、ポートスキャン OPEN_TCP_PORT
ntlm NTLM 認証をサポートする HTTP エンドポイントを監視する アクティブ、安全、ウェブ DNS_NAME、検索中
高速でカスタマイズ可能な脆弱性スキャナー アクティブ、アグレッシブ、致命的、ウェブ 脆弱性
密輸業者 HTTP スマグリングのチェック アクティブ、アグレッシブ、ブルート フォース、低速、ウェブ 見つける
SSL証明書 開いているポートにアクセスして SSL 証明書を取得する アクティブ、電子メール列挙、安全、サブドメイン列挙 DNS_NAME、EMAIL_ADDRESS
テレリク Telerik の重大な脆弱性をスキャン アクティブ、アグレッシブ、ウェブ 発見、脆弱性
仮想ホスト 仮想ホストのファズ アクティブ、アグレッシブ、ブルートフォース、致命的、遅い、ウェブ DNS_NAME、VHOST
ワッパライザー Web レスポンスからテクノロジーを抽出する アクティブ、安全、ウェブ テクノロジー
アフィリエイト スキャンの最後にアフィリエイト ドメインを要約する パッシブ、レポート、セーフ
asn ASN の bgpview.io を照会します パッシブ、レポート、安全、サブドメイン列挙 ASN
azure_tenant テナントの姉妹ドメインについて Azure にクエリを実行する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
バイナリエッジ バツ BinaryEdge API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME,EMAIL_ADDRESS,IP_ADDRESS,OPEN_PORT,PROTOCOL
c99 バツ サブドメインの C99 API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
センシス バツ Censys API を照会する 電子メール列挙、パッシブ、安全、サブドメイン列挙 DNS_NAME,EMAIL_ADDRESS,IP_ADDRESS,OPEN_PORT,PROTOCOL
証明書スポッター サブドメインについて Certspotter の API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
クロバット Project Crobat にサブドメインを問い合わせる パッシブ、セーフ、サブドメイン列挙 DNS_NAME
クロム サブドメインの crt.sh (証明書の透過性) をクエリします。 パッシブ、セーフ、サブドメイン列挙 DNS_NAME
dnscommonsrv 一般的な SRV レコードを確認する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
dnsdumpster サブドメインの dnsdumpster を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
メール形式 email-format.com にメール アドレスを問い合わせる 電子メール列挙型、パッシブ、セーフ 電子メールアドレス
ギットハブ バツ 関連するリポジトリについて Github の API を照会する パッシブ、セーフ、サブドメイン列挙 URL_UNVERIFIED
ハッカーターゲット サブドメインの hackertarget.com API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
ハンテリオ バツ Hunter.io にクエリを送信してメールを取得する 電子メール列挙、パッシブ、安全、サブドメイン列挙 DNS_NAME、EMAIL_ADDRESS、URL_UNVERIFIED
ipneighbor 周囲のサブネット内の IP の横を見る アグレッシブ、パッシブ、サブドメイン列挙型 IPアドレス
リーキックス サブドメインについては、leakix.net にクエリを実行します。 パッシブ、セーフ、サブドメイン列挙 DNS_NAME
Massdns massdns を使用した力ずくのサブドメイン (非常に効果的) アグレッシブ、ブルート フォース、パッシブ、スロー、サブドメイン列挙型 DNS_NAME
パッシブトータル バツ サブドメインの PassiveTotal API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
pgp 一般的な PGP サーバーにメール アドレスを問い合わせる 電子メール列挙型、パッシブ、セーフ 電子メールアドレス
セキュリティトレイル バツ サブドメインの SecurityTrails API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
shodan_dns バツ サブドメインのShodanをクエリ パッシブ、セーフ、サブドメイン列挙 DNS_NAME
スカイメム skymem.info にメールアドレスを問い合わせる 電子メール列挙型、パッシブ、セーフ 電子メールアドレス
sublist3r サブドメインについて sublist3r の API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
脅威マイナー サブドメインの脅威マイナーの API を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
URLスキャン サブドメインの urlscan.io を照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME、URL_UNVERIFIED
ビューDNS 関連ドメインのviewdns.infoの逆whoisを照会する パッシブ、セーフ、サブドメイン列挙 DNS_NAME
帰り道 サブドメインについては、archive.org の API をクエリします。 パッシブ、セーフ、サブドメイン列挙 DNS_NAME、URL_UNVERIFIED
ズームアイ バツ ZoomEye の API にサブドメインを問い合わせる パッシブ、セーフ、サブドメイン列挙 DNS_NAME