Volver a actualizaciones
Nuevo releaseAug 24, 2026

bbot v3.0.2

El escáner recursivo de internet para hackers. 🧡

Compartir

bbot_banner

Python Version License PyPi Downloads Ruff Tests Codecov Discord

BEE·bot es un escáner multipropósito inspirado en Spiderfoot, diseñado para automatizar tus tareas de Recon, Bug Bounties y ASM!

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

Un escaneo de BBOT en tiempo real - visualización con VivaGraphJS

Instalación

# stable version
pipx install bbot

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

Para más métodos de instalación, incluido Docker, consulta Getting Started

¿Actualizando desde 2.x? BBOT 3.0 incluye cambios importantes en la CLI, los presets, los módulos, los eventos y la API de Python. Consulta la Guía de migración 2.x → 3.0 (fuente) antes de actualizar.

Consejo de velocidad: el resolvedor DNS de BBOT (blastdns) crea múltiples hilos por cada resolvedor en /etc/resolv.conf. Añadir más resolvedores sin filtrar acelera drásticamente los escaneos. Consulta el ejemplo de resolv.conf y Tips and Tricks para más detalles.

Ejemplos de comandos

1) Buscador de subdominios

Fuentes de API pasivas más un brute-force DNS recursivo con mutaciones de subdominios específicas para el objetivo.

# 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 encuentra sistemáticamente entre un 20 y un 50 % más de subdominios que otras herramientas. Cuanto más grande es el dominio, mayor es la diferencia. Para saber cómo es posible, consulta How It Works.

subdomain-stats-ebay

2) Rastreador 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) Recopilador de correos electrónicos

# 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) Escáner 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) Todo a la vez en todas partes

# 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

Cómo funciona

Haz clic en el gráfico de abajo para explorar el funcionamiento interno de BBOT.

image

Módulos de salida

...¡y más!

BBOT como biblioteca de Python

Síncrono

from bbot.scanner import Scanner

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

Asíncrono

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())
VER: Este malvado bot de Discord

Un bot de Discord para BBOT que responde al comando /scan. ¡Escanea internet desde la comodidad de tu servidor de Discord!

bbot-discord

Resumen de características

  • Soporte para múltiples objetivos
  • Capturas de pantalla web
  • Suite de módulos web ofensivos
  • Mutaciones de subdominios impulsadas por NLP
  • Salida nativa a Neo4j (y más)
  • Instalación automática de dependencias con Ansible
  • Busca en toda la superficie de ataque con reglas YARA personalizadas
  • API de Python + documentación para desarrolladores

Objetivos

BBOT acepta un número ilimitado de objetivos mediante -t. Puedes especificar los objetivos directamente en la línea de comandos o en archivos (¡o ambos!):

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

Los objetivos pueden ser cualquiera de los siguientes:

  • Nombre DNS (evilcorp.com)
  • Dirección IP (1.2.3.4)
  • Rango IP (1.2.3.0/24)
  • Puerto TCP abierto (192.168.0.1:80)
  • URL (https://www.evilcorp.com)
  • Dirección de correo electrónico ([email protected])
  • Organización (ORG:evilcorp)
  • Nombre de usuario (USER:bobsmith)
  • Sistema de archivos (FILESYSTEM:/tmp/asdf)
  • Aplicación móvil (MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)

Para más información, consulta Targets. Para saber cómo maneja BBOT el alcance, consulta Scope.

Claves de API

Al igual que Amass o Subfinder, BBOT admite claves de API para varios servicios de terceros como SecurityTrails, etc.

La forma estándar de hacerlo es introducir tus claves de API en ~/.config/bbot/secrets.yml. Ten en cuenta que se permiten varias claves de API:

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

Si lo prefieres, también puedes especificarlas en la línea de comandos:

bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246

Para más detalles, consulta Configuration.

Listas completas de módulos, flags, etc.

Documentación

Contribución

Algunos de los mejores módulos de BBOT fueron escritos por la comunidad. BBOT mejora constantemente; ¡cada día se vuelve más potente!

Agradecemos las contribuciones. ¡No solo código, también ideas! Si tienes una idea para una nueva funcionalidad, háznoslo saber en Discussions. Si quieres ensuciarte las manos, consulta Contribution. Allí encontrarás instrucciones de configuración y un sencillo tutorial sobre cómo escribir un módulo de BBOT. También disponemos de una extensa Documentación para desarrolladores.

¡Gracias a estas increíbles personas por contribuir a BBOT! ❤️

Agradecimientos especiales a:

  • @TheTechromancer por crear BBOT
  • @liquidsec por su extenso trabajo en las funciones de hacking web de BBOT, incluyendo badsecrets y baddns
  • Steve Micallef (@smicallef) por crear Spiderfoot
  • @kerrymilan por su experiencia en Neo4j y Ansible
  • @domwhewell-sage por su familia de módulos geniales de extracción de código
  • @aconite33 y @amiremami por sus pruebas implacables
  • Aleksei Kornev (@alekseiko) por concedernos la propiedad del repositorio de bbot en Pypi <3

Categorías