Volver a actualizaciones
Nuevo releaseJul 21, 2026

bbot v3.0.1

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 tu Reconocimiento, 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

# versión estable
pipx install bbot

# versión más reciente (rama dev)
pipx install --pip-args '\--pre' bbot

Para más métodos de instalación, incluyendo Docker, consulta Primeros Pasos

¿Actualizando desde 2.x? BBOT 3.0 contiene cambios importantes en la CLI, preajustes, módulos, eventos y 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) lanza múltiples hilos por resolvedor en /etc/resolv.conf. Añadir más resolvedores sin filtrar acelera drásticamente los escaneos. Consulta el resolv.conf de ejemplo y Consejos y Trucos para más detalles.

Ejemplos de Comandos

1) Buscador de Subdominios

Fuentes de API pasivas más un ataque de fuerza bruta recursiva de DNS con mutaciones de subdominios específicas del objetivo.

# encontrar subdominios de evilcorp.com
bbot -t evilcorp.com -p subdomain-enum

# solo fuentes pasivas
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 consistentemente un 20-50% más subdominios que otras herramientas. Cuanto más grande es el dominio, mayor es la diferencia. Para saber cómo es posible, consulta Cómo Funciona.

subdomain-stats-ebay

2) Spider Web

# rastrear evilcorp.com, extrayendo correos y otras cosas útiles
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) Recolector de Correos

# enumeración rápida de correos con APIs gratuitas + scraping
bbot -t evilcorp.com -p email-enum

# combinar con enumeración de subdominios + spider web para máximo rendimiento
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

# ejecutar un escaneo web ligero contra www.evilcorp.com
bbot -t www.evilcorp.com -p web

# ejecutar un escaneo web pesado contra 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 en Todas Partes a la Vez

# todo en todas partes a la vez
bbot -t evilcorp.com -p kitchen-sink

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

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())
MIRA: Este Nefasto 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 Funcionalidades

  • Soporte para Múltiples Objetivos
  • Capturas de Pantalla Web
  • Suite de Módulos Ofensivos Web
  • Mutaciones de Subdominios asistidas por PLN
  • Salida Nativa a Neo4j (y más)
  • Instalación automática de dependencias con Ansible
  • Buscar 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 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 ([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 Objetivos. Para aprender cómo BBOT maneja el alcance, consulta Alcance.

Claves API

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

La forma estándar es introducir tus claves API en ~/.config/bbot/secrets.yml. Ten en cuenta que se permiten múltiples claves 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 Configuración.

Listas Completas de Módulos, Banderas, etc.

Documentación

Contribución

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

Aceptamos contribuciones. ¡No solo código, sino también ideas! Si tienes una idea para una nueva funcionalidad, por favor háznoslo saber en Discusiones. Si quieres ensuciarte las manos, consulta Contribución. Allí encontrarás instrucciones de configuración y un sencillo tutorial sobre cómo escribir un módulo de BBOT. También tenemos 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 de saqueo 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