Voltar às atualizações
New releaseJul 21, 2026

bbot v3.0.1

O scanner recursivo da internet para hackers. 🧡

Compartilhar

bbot_banner

Python Version License PyPi Downloads Ruff Tests Codecov Discord

BEE·bot é um scanner multiuso inspirado no Spiderfoot, criado para automatizar seu Recon, Bug Bounties e ASM!

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

Uma varredura do BBOT em tempo real - visualização com VivaGraphJS

Instalação

# versão estável
pipx install bbot

# versão mais recente (branch dev)
pipx install --pip-args '\--pre' bbot

Para mais métodos de instalação, incluindo Docker, veja Primeiros Passos

Atualizando da versão 2.x? O BBOT 3.0 contém mudanças significativas na CLI, presets, módulos, eventos e API Python. Veja o Guia de Migração 2.x → 3.0 (fonte) antes de atualizar.

Dica de velocidade: O resolvedor DNS do BBOT (blastdns) cria múltiplas threads por resolvedor em /etc/resolv.conf. Adicionar mais resolvedores não filtrados acelera drasticamente as varreduras. Veja o exemplo de resolv.conf e Dicas e Truques para detalhes.

Exemplos de Comandos

1) Localizador de Subdomínios

Fontes de API passivas mais uma força bruta recursiva de DNS com mutações de subdomínio específicas do alvo.

# encontrar subdomínios de evilcorp.com
bbot -t evilcorp.com -p subdomain-enum

# apenas fontes passivas
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: ""

O BBOT consistentemente encontra 20-50% mais subdomínios do que outras ferramentas. Quanto maior o domínio, maior a diferença. Para saber como isso é possível, veja Como Funciona.

subdomain-stats-ebay

2) Spider Web

# rastrear evilcorp.com, extraindo e-mails e outros itens
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) Coletor de E-mails

# enumeração rápida de e-mails com APIs gratuitas + scraping
bbot -t evilcorp.com -p email-enum

# combine com enumeração de subdomínios + spider web para máximo 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

# executar uma varredura web leve em www.evilcorp.com
bbot -t www.evilcorp.com -p web

# executar uma varredura web pesada em 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) Tudo em Todo Lugar ao Mesmo Tempo

# tudo em todo lugar ao mesmo tempo
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

Como Funciona

Clique no gráfico abaixo para explorar o funcionamento interno do BBOT.

image

Módulos de Saída

...e mais!

BBOT como Biblioteca 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)

Assí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())
VEJA: Este Bot Maléfico do Discord

Um BBOT Discord Bot que responde ao comando /scan. Faça varreduras na internet do conforto do seu servidor Discord!

bbot-discord

Visão Geral dos Recursos

  • Suporte a Múltiplos Alvos
  • Capturas de Tela Web
  • Conjunto de Módulos Web Ofensivos
  • Mutações de Subdomínio com NLP
  • Saída Nativa para Neo4j (e mais)
  • Instalação automática de dependências com Ansible
  • Pesquisar toda a superfície de ataque com regras YARA personalizadas
  • API Python + Documentação para Desenvolvedores

Alvos

O BBOT aceita um número ilimitado de alvos via -t. Você pode especificar alvos diretamente na linha de comando ou em arquivos (ou ambos!):

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

Os alvos podem ser qualquer um dos seguintes:

  • Nome DNS (evilcorp.com)
  • Endereço IP (1.2.3.4)
  • Faixa de IP (1.2.3.0/24)
  • Porta TCP Aberta (192.168.0.1:80)
  • URL (https://www.evilcorp.com)
  • Endereço de E-mail ([email protected])
  • Organização (ORG:evilcorp)
  • Nome de Usuário (USER:bobsmith)
  • Sistema de Arquivos (FILESYSTEM:/tmp/asdf)
  • Aplicativo Móvel (MOBILE_APP:https://play.google.com/store/apps/details?id=com.evilcorp.app)

Para mais informações, veja Alvos. Para saber como o BBOT lida com escopo, veja Escopo.

Chaves de API

Similar ao Amass ou Subfinder, o BBOT suporta chaves de API para vários serviços de terceiros, como SecurityTrails, etc.

A maneira padrão de fazer isso é inserir suas chaves de API em ~/.config/bbot/secrets.yml. Observe que várias chaves de API são permitidas:

modules:
  shodan_dns:
    api_key: 4f41243847da693a4f356c0486114bc6
  c99:
    # múltiplas chaves de API
    api_key:
      - 21a270d5f59c9b05813a72bb41707266
      - ea8f243d9885cf8ce9876a580224fd3c
      - 5bc6ed268ab6488270e496d3183a1a27
  virustotal:
    api_key: dd5f0eee2e4a99b71a939bded450b246
  securitytrails:
    api_key: d9a05c3fd9a514497713c54b4455d0b0

Se preferir, você também pode especificá-las na linha de comando:

bbot -c modules.virustotal.api_key=dd5f0eee2e4a99b71a939bded450b246

Para detalhes, veja Configuração.

Listas Completas de Módulos, Flags, etc.

Documentação

Contribuição

Alguns dos melhores módulos do BBOT foram escritos pela comunidade. O BBOT está sendo constantemente melhorado; a cada dia fica mais poderoso!

Nós aceitamos contribuições. Não apenas código, mas ideias também! Se você tem uma ideia para uma nova funcionalidade, por favor nos informe em Discussões. Se quiser colocar a mão na massa, veja Contribuição. Lá você encontrará instruções de configuração e um tutorial simples sobre como escrever um módulo BBOT. Também temos uma extensa Documentação para Desenvolvedores.

Agradecimentos a essas pessoas incríveis por contribuírem com o BBOT! ❤️

Agradecimentos especiais para:

  • @TheTechromancer por criar o BBOT
  • @liquidsec por seu extenso trabalho nos recursos de hacking web do BBOT, incluindo badsecrets e baddns
  • Steve Micallef (@smicallef) por criar o Spiderfoot
  • @kerrymilan por sua expertise em Neo4j e Ansible
  • @domwhewell-sage por sua família de módulos badass de coleta de código
  • @aconite33 e @amiremami por seus testes implacáveis
  • Aleksei Kornev (@alekseiko) por nos conceder a propriedade do repositório bbot no Pypi <3

Categorias