Zurück zu den Updates
New releaseJul 21, 2026

bbot v3.0.1

Der rekursive Internet-Scanner für Hacker. 🧡

Teilen

bbot_banner

Python Version License PyPi Downloads Ruff Tests Codecov Discord

BEE·bot ist ein Mehrzweck-Scanner, inspiriert von Spiderfoot, entwickelt, um Ihre Recon-, Bug-Bounty- und ASM-Aufgaben zu automatisieren!

https://github.com/blacklanternsecurity/bbot/assets/20261699/e539e89b-92ea-46fa-b893-9cde94eebf81

Ein BBOT-Scan in Echtzeit – Visualisierung mit VivaGraphJS

Installation

# stabile Version
pipx install bbot

# aktuelle Entwicklung (dev-Branch)
pipx install --pip-args '\--pre' bbot

Für weitere Installationsmethoden, einschließlich Docker, siehe Erste Schritte

Upgrade von 2.x? BBOT 3.0 enthält grundlegende Änderungen an der CLI, Presets, Modulen, Events und der Python-API. Siehe den 2.x → 3.0 Migrationsleitfaden (Quelle) vor dem Upgrade.

Geschwindigkeitstipp: Der DNS-Resolver von BBOT (blastdns) startet mehrere Threads pro Resolver in /etc/resolv.conf. Das Hinzufügen weiterer ungefilterter Resolver beschleunigt Scans erheblich. Siehe die Beispiel-resolv.conf und Tipps und Tricks für Details.

Beispielbefehle

1) Subdomain-Finder

Passive API-Quellen plus eine rekursive DNS-Brute-Force mit zielspezifischen Subdomain-Mutationen.

# Subdomains von evilcorp.com finden
bbot -t evilcorp.com -p subdomain-enum

# nur passive Quellen
bbot -t evilcorp.com -p subdomain-enum -rf passive
subdomain-enum.yml
description: Subdomains über APIs und Brute-Force ermitteln

flags:
  # jedes Modul mit dem Flag subdomain-enum aktivieren
  - subdomain-enum

output_modules:
  # eindeutige Subdomains in TXT-Datei ausgeben
  - subdomains

config:
  dns:
    threads: 25
    brute_threads: 1000
  # hier API-Schlüssel eintragen
  # modules:
  #   github:
  #     api_key: ""
  #   chaos:
  #     api_key: ""
  #   securitytrails:
  #     api_key: ""

BBOT findet durchweg 20–50 % mehr Subdomains als andere Tools. Je größer die Domain, desto größer der Unterschied. Um zu erfahren, wie das möglich ist, siehe Funktionsweise.

subdomain-stats-ebay

2) Web-Spider

# evilcorp.com crawlen, E-Mails und andere gute Dinge extrahieren
bbot -t evilcorp.com -p spider
spider.yml
description: Rekursive Web-Spider

modules:
  - http

blacklist:
  # Verhindert, dass der Spider Sitzungen durch Abmelden ungültig macht
  - "RE:/.*(sign|log)[_-]?out"

config:
  web:
    # wie viele Links nacheinander verfolgt werden
    spider_distance: 2
    # keine Links folgen, deren Verzeichnistiefe größer als 4 ist
    spider_depth: 4
    # maximale Anzahl von Links pro Seite, die verfolgt werden
    spider_links_per_page: 25

3) E-Mail-Sammler

# schnelle E-Mail-Ermittlung mit kostenlosen APIs + Scraping
bbot -t evilcorp.com -p email-enum

# Kombination mit Subdomain-Ermittlung und Web-Spider für maximale Ausbeute
bbot -t evilcorp.com -p email-enum subdomain-enum spider
email-enum.yml
description: E-Mail-Adressen über APIs, Webcrawling usw. ermitteln

flags:
  - email-enum

output_modules:
  - emails

4) Web-Scanner

# einen leichten Web-Scan gegen www.evilcorp.com durchführen
bbot -t www.evilcorp.com -p web

# einen schweren Web-Scan gegen www.evilcorp.com durchführen
bbot -t www.evilcorp.com -p web-heavy
web.yml
description: Schneller Web-Scan

include:
  - iis-shortnames

flags:
  - web

web-heavy.yml
description: Aggressiver Web-Scan

include:
  # das web-Preset einbinden
  - web

flags:
  - web-heavy

5) Alles auf einmal

# alles auf einmal
bbot -t evilcorp.com -p kitchen-sink

# ungefähr gleichbedeutend mit:
bbot -t evilcorp.com -p subdomain-enum cloud-enum code-enum email-enum spider web paramminer webbrute web-screenshots
kitchen-sink.yml
description: Alles auf einmal

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

Funktionsweise

Klicken Sie auf das folgende Diagramm, um die inneren Abläufe von BBOT zu erkunden.

image

Ausgabemodule

...und weitere!

BBOT als Python-Bibliothek

Synchron

from bbot.scanner import Scanner

if __name__ == "__main__":
    scan = Scanner("evilcorp.com", presets=["subdomain-enum"])
    for event in scan.start():
        print(event)

Asynchron

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())
SIEHE: Dieser hinterhältige Discord-Bot

Ein BBOT Discord-Bot, der auf den /scan-Befehl reagiert. Durchsuchen Sie das Internet bequem von Ihrem Discord-Server aus!

bbot-discord

Feature-Übersicht

  • Unterstützung für mehrere Ziele
  • Web-Screenshots
  • Suite von offensiven Webmodulen
  • NLP-basierte Subdomain-Mutationen
  • Nativer Export nach Neo4j (und mehr)
  • Automatische Abhängigkeitsinstallation mit Ansible
  • Durchsuchen der gesamten Angriffsfläche mit benutzerdefinierten YARA-Regeln
  • Python-API + Entwicklerdokumentation

Ziele

BBOT akzeptiert eine unbegrenzte Anzahl von Zielen über -t. Sie können Ziele entweder direkt in der Befehlszeile oder in Dateien (oder beides!) angeben:

bbot -t evilcorp.com evilcorp.org 1.2.3.0/24 -p subdomain-enum

Ziele können einer der folgenden Typen sein:

  • DNS-Name (evilcorp.com)
  • IP-Adresse (1.2.3.4)
  • IP-Bereich (1.2.3.0/24)
  • Offener TCP-Port (192.168.0.1:80)
  • URL (https://www.evilcorp.com)
  • E-Mail-Adresse ([email protected])
  • Organisation (ORG:evilcorp)
  • Benutzername (USER:bobsmith)
  • Dateisystem (FILESYSTEM:/tmp/asdf)
  • Mobile App (MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)

Weitere Informationen finden Sie unter Targets. Um zu erfahren, wie BBOT den Scope handhabt, siehe Scope.

API-Schlüssel

Ähnlich wie Amass oder Subfinder unterstützt BBOT API-Schlüssel für verschiedene Drittanbieterdienste wie SecurityTrails usw.

Der Standardweg besteht darin, Ihre API-Schlüssel in ~/.config/bbot/secrets.yml einzutragen. Beachten Sie, dass mehrere API-Schlüssel erlaubt sind:

modules:
  shodan_dns:
    api_key: 4f41243847da693a4f356c0486114bc6
  c99:
    # mehrere API-Schlüssel
    api_key:
      - 21a270d5f59c9b05813a72bb41707266
      - ea8f243d9885cf8ce9876a580224fd3c
      - 5bc6ed268ab6488270e496d3183a1a27
  virustotal:
    api_key: dd5f0eee2e4a99b71a939bded450b246
  securitytrails:
    api_key: d9a05c3fd9a514497713c54b4455d0b0

Wenn Sie möchten, können Sie sie auch in der Befehlszeile angeben:

bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246

Details finden Sie unter Configuration.

Vollständige Listen von Modulen, Flags usw.

Dokumentation

Mitwirken

Einige der besten BBOT-Module wurden von der Community geschrieben. BBOT wird ständig verbessert; jeden Tag wird es leistungsfähiger!

Wir freuen uns über Beiträge. Nicht nur Code, sondern auch Ideen! Wenn Sie eine Idee für eine neue Funktion haben, teilen Sie uns dies bitte in Discussions mit. Wenn Sie selbst Hand anlegen möchten, siehe Contribution. Dort finden Sie Setup-Anweisungen und ein einfaches Tutorial zum Schreiben eines BBOT-Moduls. Wir haben auch umfangreiche Entwicklerdokumentation.

Danke an diese großartigen Menschen für ihre Beiträge zu BBOT! ❤️

Besonderer Dank gilt:

  • @TheTechromancer für die Erstellung von BBOT
  • @liquidsec für seine umfangreichen Arbeiten an BBOTs Web-Hacking-Funktionen, einschließlich badsecrets und baddns
  • Steve Micallef (@smicallef) für die Erstellung von Spiderfoot
  • @kerrymilan für seine Neo4j- und Ansible-Expertise
  • @domwhewell-sage für seine Familie von bärenstarken Code-Plünderungsmodulen
  • @aconite33 und @amiremami für ihre gnadenlosen Tests
  • Aleksei Kornev (@alekseiko) für die Übertragung des Besitzes des bbot-Pypi-Repositories an uns <3

Kategorien