Retour aux mises Ă  jour
New releaseAug 24, 2026

bbot v3.0.2

Le scanner internet récursif pour les hackers. 🧡

Partager

bbot_banner

Python Version License PyPi Downloads Ruff Tests Codecov Discord

BEE·bot est un scanner polyvalent inspiré par Spiderfoot, conçu pour automatiser vos missions de Recon, de Bug Bounty et votre ASM !

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

Un scan BBOT en temps réel - visualisation avec VivaGraphJS

Installation

# stable version
pipx install bbot

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

Pour plus de méthodes d'installation, notamment Docker, consultez Getting Started

Vous migrez depuis la 2.x ? BBOT 3.0 contient des changements majeurs dans la CLI, les presets, les modules, les événements et l'API Python. Consultez le guide de migration 2.x → 3.0 (source) avant de mettre à niveau.

Conseil de rapidité : le résolveur DNS de BBOT (blastdns) lance plusieurs threads par résolveur dans /etc/resolv.conf. Ajouter davantage de résolveurs non filtrés accélère considérablement les scans. Voir l'exemple de resolv.conf et Tips and Tricks pour plus de détails.

Exemples de commandes

1) Découverte de sous-domaines

Sources API passives ainsi qu'un brute-force DNS récursif avec des mutations de sous-domaines spécifiques à la cible.

# 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 trouve systématiquement 20 à 50 % de sous-domaines en plus que les autres outils. Plus le domaine est gros, plus l'écart est grand. Pour comprendre comment c'est possible, voir How It Works.

subdomain-stats-ebay

2) Spider 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) Collecteur d'e-mails

# 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) Scanner 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) Tout, partout, Ă  la fois

# 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

Comment ça marche

Cliquez sur le graphique ci-dessous pour explorer les rouages internes de BBOT.

image

Modules de sortie

...et plus encore !

BBOT comme bibliothèque Python

Synchrone

from bbot.scanner import Scanner

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

Asynchrone

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())
VOIR : Ce bot Discord peu recommandable

Un bot Discord BBOT qui répond à la commande /scan. Scannez Internet depuis le confort de votre serveur Discord !

bbot-discord

Aperçu des fonctionnalités

  • Prise en charge de cibles multiples
  • Captures d'Ă©cran web
  • Suite de modules web offensifs
  • Mutations de sous-domaines propulsĂ©es par NLP
  • Sortie native vers Neo4j (et plus)
  • Installation automatique des dĂ©pendances avec Ansible
  • Recherche sur toute la surface d'attaque avec des règles YARA personnalisĂ©es
  • API Python + documentation dĂ©veloppeur

Cibles

BBOT accepte un nombre illimité de cibles via -t. Vous pouvez spécifier les cibles directement en ligne de commande ou dans des fichiers (ou les deux !) :

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

Les cibles peuvent ĂŞtre n'importe lesquelles des suivantes :

  • Nom DNS (evilcorp.com)
  • Adresse IP (1.2.3.4)
  • Plage IP (1.2.3.0/24)
  • Port TCP ouvert (192.168.0.1:80)
  • URL (https://www.evilcorp.com)
  • Adresse e-mail ([email protected])
  • Organisation (ORG:evilcorp)
  • Nom d'utilisateur (USER:bobsmith)
  • Système de fichiers (FILESYSTEM:/tmp/asdf)
  • Application mobile (MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)

Pour plus d'informations, voir Targets. Pour apprendre comment BBOT gère le périmètre, voir Scope.

Clés API

À l'instar d'Amass ou de Subfinder, BBOT prend en charge les clés API pour divers services tiers tels que SecurityTrails, etc.

La méthode standard consiste à saisir vos clés API dans ~/.config/bbot/secrets.yml. Notez que plusieurs clés API sont autorisées :

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

Si vous le souhaitez, vous pouvez également les spécifier en ligne de commande :

bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246

Pour plus de détails, voir Configuration.

Listes complètes des modules, flags, etc.

Documentation

Contribution

Certains des meilleurs modules BBOT ont été écrits par la communauté. BBOT est constamment amélioré ; chaque jour, il devient plus puissant !

Nous accueillons volontiers les contributions. Pas seulement le code, mais aussi les idées ! Si vous avez une idée de nouvelle fonctionnalité, faites-nous-en part dans Discussions. Si vous voulez vous retrousser les manches, voir Contribution. Vous y trouverez les instructions d'installation et un tutoriel simple sur la façon d'écrire un module BBOT. Nous disposons également d'une vaste Documentation développeur.

Merci à ces personnes formidables pour leur contribution à BBOT ! ❤️

Remerciements particuliers Ă  :

  • @TheTechromancer pour avoir créé BBOT
  • @liquidsec pour son travail considĂ©rable sur les fonctionnalitĂ©s de hacking web de BBOT, notamment badsecrets et baddns
  • Steve Micallef (@smicallef) pour avoir créé Spiderfoot
  • @kerrymilan pour son expertise Neo4j et Ansible
  • @domwhewell-sage pour sa famille de modules de pillage de code redoutables
  • @aconite33 et @amiremami pour leurs tests impitoyables
  • Aleksei Kornev (@alekseiko) pour nous avoir accordĂ© la propriĂ©tĂ© du dĂ©pĂ´t PyPI bbot <3

Catégories