Zurück zu den Updates
New releaseAug 24, 2026

bbot v3.0.2

Der rekursive Internet-Scanner für Hacker. 🧡

Teilen

bbot_banner

Python Version License PyPi Downloads Ruff Tests Codecov Discord

BEE·bot ist ein vielseitiger Scanner, inspiriert von Spiderfoot, der entwickelt wurde, um deine Recon, Bug-Bounties und ASM zu automatisieren!

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

Ein BBOT-Scan in Echtzeit – Visualisierung mit VivaGraphJS

Installation

# stable version
pipx install bbot

# bleeding edge (dev branch)
pipx install --pip-args '\--pre' bbot

Weitere Installationsmethoden, einschließlich Docker, findest du unter Erste Schritte

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

Tempo-Tipp: BBOTs DNS-Resolver (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 rekursiver DNS-Bruteforce mit zielspezifischen Subdomain-Mutationen.

# 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 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 So funktioniert es.

subdomain-stats-ebay

2) Web-Spider

# 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) E-Mail-Gatherer

# 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-Scanner

# 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) Alles überall auf einmal

# 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

So funktioniert es

Klicke auf das Diagramm unten, 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 ruchlose Discord-Bot

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

bbot-discord

Funktionsübersicht

  • Unterstützung für mehrere Ziele
  • Web-Screenshots
  • Suite offensiver Web-Module
  • NLP-gestützte Subdomain-Mutationen
  • Native Ausgabe an Neo4j (und mehr)
  • Automatische Installation von Abhängigkeiten mit Ansible
  • Durchsuche die gesamte Angriffsfläche mit benutzerdefinierten YARA-Regeln
  • Python-API + Entwicklerdokumentation

Ziele

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

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

Ziele können Folgendes 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 findest du unter Ziele. Wie BBOT mit dem Scope umgeht, erfährst du unter Scope.

API-Schlüssel

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

Der übliche Weg ist, deine API-Schlüssel in ~/.config/bbot/secrets.yml einzutragen. Beachte, dass mehrere API-Schlüssel erlaubt sind:

modules:
  shodan_dns:
    api_key: 4f41243847da693a4f356c0486114bc6
  c99:
    # multiple API keys
    api_key:
      - 21a270d5f59c9b05813a72bb41707266
      - ea8f243d9885cf8ce9876a580224fd3c
      - 5bc6ed268ab6488270e496d3183a1a27
  virustotal:
    api_key: dd5f0eee2e4a99b71a939bded450b246
  securitytrails:
    api_key: d9a05c3fd9a514497713c54b4455d0b0

Wenn du möchtest, kannst du sie auch in der Befehlszeile angeben:

bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246

Details findest du unter Konfiguration.

Vollständige Listen der Module, Flags usw.

Dokumentation

Mitwirkung

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 du eine Idee für eine neue Funktion hast, lass es uns in den Diskussionen wissen. Wenn du selbst aktiv werden möchtest, wirf einen Blick auf Mitwirkung. Dort findest du Einrichtungsanleitungen und ein einfaches Tutorial, wie man ein BBOT-Modul schreibt. Wir haben außerdem eine umfangreiche Entwicklerdokumentation.

Danke an diese großartigen Menschen für ihren Beitrag zu BBOT! ❤️

Besonderer Dank geht an:

  • @TheTechromancer für die Erstellung von BBOT
  • @liquidsec für seine umfangreiche Arbeit 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 derber Code-Looting-Module
  • @aconite33 und @amiremami für ihre rigorosen Tests
  • Aleksei Kornev (@alekseiko) dafür, dass er uns das Eigentum am bbot-PyPI-Repository übertragen hat <3

Kategorien