Torna agli aggiornamenti
New releaseJul 21, 2026

bbot v3.0.1

Lo scanner internet ricorsivo per hacker. 🧡

Condividi

bbot_banner

Python Version License PyPi Downloads Ruff Tests Codecov Discord

BEE·bot è uno scanner multiuso ispirato a Spiderfoot, progettato per automatizzare la tua Recon, i tuoi Bug Bounty e il tuo ASM!

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

Una scansione BBOT in tempo reale - visualizzazione con VivaGraphJS

Installazione

# versione stabile
pipx install bbot

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

Per ulteriori metodi di installazione, incluso Docker, consulta Per Iniziare

Aggiornamento dalla 2.x? BBOT 3.0 contiene modifiche che rompono la compatibilità con CLI, preset, moduli, eventi e API Python. Consulta la Guida alla migrazione 2.x → 3.0 (sorgente) prima di aggiornare.

Consiglio sulla velocità: Il resolver DNS di BBOT (blastdns) avvia più thread per ogni resolver in /etc/resolv.conf. Aggiungere più resolver non filtrati accelera notevolmente le scansioni. Vedi il resolv.conf di esempio e Suggerimenti e trucchi per i dettagli.

Comandi di Esempio

1) Ricerca di Sottodomini

Fonti API passive più un brute-force DNS ricorsivo con mutazioni di sottodomini specifiche per il target.

# trova i sottodomini di evilcorp.com
bbot -t evilcorp.com -p subdomain-enum

# solo fonti passive
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 trova costantemente il 20-50% di sottodomini in più rispetto ad altri strumenti. Più grande è il dominio, maggiore è la differenza. Per scoprire come è possibile, consulta Come funziona.

subdomain-stats-ebay

2) Spider Web

# scansiona evilcorp.com estraendo email e altre chicche
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) Raccolta Email

# ricerca rapida di email con API gratuite + scraping
bbot -t evilcorp.com -p email-enum

# abbinala alla ricerca di sottodomini + spider web per massimo rendimento
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

# esegue una scansione web leggera su www.evilcorp.com
bbot -t www.evilcorp.com -p web

# esegue una scansione web pesante su 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) Tutto Ovunque Tutto in Una Volta

# tutto ovunque tutto in una volta
bbot -t evilcorp.com -p kitchen-sink

# approssimativamente equivalente a:
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

Come Funziona

Clicca sul grafico qui sotto per esplorare il funzionamento interno di BBOT.

image

Moduli di Output

...e altri!

BBOT come Libreria Python

Sincrono

from bbot.scanner import Scanner

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

Asincrono

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())
VEDI: Questo Nefasto Bot Discord

Un Bot Discord per BBOT che risponde al comando /scan. Scansiona internet dalla comodità del tuo server Discord!

bbot-discord

Panoramica delle Funzionalità

  • Supporto per Target Multipli
  • Screenshot Web
  • Suite di Moduli Web Offensivi
  • Mutazioni di Sottodomini basate su NLP
  • Output Nativo verso Neo4j (e altro)
  • Installazione automatica delle dipendenze con Ansible
  • Ricerca dell'intera superficie d'attacco con regole YARA personalizzate
  • API Python + Documentazione per Sviluppatori

Target

BBOT accetta un numero illimitato di target tramite -t. Puoi specificare i target direttamente dalla riga di comando o in file (o entrambi!):

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

I target possono essere uno qualsiasi dei seguenti:

  • Nome DNS (evilcorp.com)
  • Indirizzo IP (1.2.3.4)
  • Intervallo IP (1.2.3.0/24)
  • Porta TCP aperta (192.168.0.1:80)
  • URL (https://www.evilcorp.com)
  • Indirizzo Email ([email protected])
  • Organizzazione (ORG:evilcorp)
  • Nome utente (USER:bobsmith)
  • Filesystem (FILESYSTEM:/tmp/asdf)
  • App Mobile (MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)

Per maggiori informazioni, consulta Target. Per sapere come BBOT gestisce l'ambito (scope), vedi Ambito.

Chiavi API

Analogamente ad Amass o Subfinder, BBOT supporta chiavi API per vari servizi di terze parti come SecurityTrails, ecc.

Il metodo standard è inserire le tue chiavi API in ~/.config/bbot/secrets.yml. Nota che sono consentite più chiavi API:

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

Se preferisci, puoi anche specificarle dalla riga di comando:

bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246

Per i dettagli, consulta Configurazione.

Elenchi Completi di Moduli, Flag, ecc.

Documentazione

Contribuzione

Alcuni dei migliori moduli di BBOT sono stati scritti dalla community. BBOT viene costantemente migliorato; ogni giorno diventa più potente!

Accogliamo con favore i contributi. Non solo codice, ma anche idee! Se hai un'idea per una nuova funzionalità, faccelo sapere in Discussioni. Se vuoi mettere le mani in pasta, consulta Contribuzione. Lì troverai istruzioni per l'installazione e un semplice tutorial su come scrivere un modulo BBOT. Abbiamo anche un'ampia Documentazione per Sviluppatori.

Grazie a queste fantastiche persone per aver contribuito a BBOT! ❤️

Un ringraziamento speciale a:

  • @TheTechromancer per aver creato BBOT
  • @liquidsec per il suo ampio lavoro sulle funzionalità di hacking web di BBOT, inclusi badsecrets e baddns
  • Steve Micallef (@smicallef) per aver creato Spiderfoot
  • @kerrymilan per la sua esperienza su Neo4j e Ansible
  • @domwhewell-sage per la sua famiglia di moduli di saccheggio del codice
  • @aconite33 e @amiremami per i loro test spietati
  • Aleksei Kornev (@alekseiko) per averci concesso la proprietà del repository Pypi di bbot <3

Categorie