
bbot v3.0.1
Der rekursive Internet-Scanner für Hacker. 🧡
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.

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.
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!

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.
- Vollständige Liste der Module.
- Vollständige Liste der Flags.
- Vollständige Liste der Presets.
- Vollständige Liste der globalen Konfigurationsoptionen.
- Vollständige Liste der Modul-Konfigurationsoptionen.
Dokumentation
- Benutzerhandbuch
- Grundlagen
- Scanning
- Module
- Migration
- Sonstiges
- Entwicklerhandbuch
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

