Skip to main content

BBOT| OSINT | Solyd One

  • BBOT| OSINT | Solyd One

BBOT — O que é e como usar

BBOT é um framework recursivo e modular para automação de OSINT (Open-Source Intelligence), escrito em Python e mantido por Black Lantern Security. Ele permite realizar diversas etapas de reconhecimento e varredura de forma automática com um único comando, como enumeração de subdomínios, varredura de portas, capturas de tela de páginas, análise de vulnerabilidades e muito mais. ([GitHub][1])


Instalação

Python / pipx

Para instalar a versão estável do BBOT via Python:

# Instalar a versão estável
pipx install bbot

# Instalar versão de desenvolvimento (bleeding edge)
pipx install --pip-args '\--pre' bbot

# Mostrar ajuda
bbot --help

Observação: BBOT funciona melhor em ambiente Linux; para Windows/macOS recomenda-se uso via Docker. ([blacklanternsecurity.com][2])

Docker

Você pode usar a imagem oficial:

# Versão estável do BBOT
docker run -it blacklanternsecurity/bbot:stable --help

Existem variações como stable e stable-full (com dependências extras já instaladas). ([blacklanternsecurity.com][2])


Como o BBOT funciona

BBOT opera com uma filosofia recursiva e event-driven, onde módulos consomem e produzem eventos continuamente, permitindo que a ferramenta descubra informações de forma expansiva ao longo de toda a execução. Cada módulo faz uma tarefa (por exemplo, varredura de porta, enumeração de DNS, etc.) e emite eventos que podem alimentar outros módulos, gerando novas descobertas. ([blacklanternsecurity.github.io][3])


Comandos básicos

Escanear alvo

Para realizar um scan passando um único alvo:

bbot -t exemplo.com

Modos de varredura comuns

# Enumeração completa de subdomínios
bbot -t exemplo.com -p subdomain-enum

# Subdomínios com varredura de portas e screenshots
bbot -t exemplo.com -p subdomain-enum -m portscan gowitness -o .

# Enumeração básica + web
bbot -t exemplo.com -p subdomain-enum web-basic

# Uso de profundidade de rastreamento web
bbot -t www.exemplo.com -p spider -c web.spider_depth=2

Explicação: -t define o alvo, -p o preset (configuração de módulos), e -m módulos adicionais para executar. ([blacklanternsecurity.com][2])


Configuração

BBOT usa um arquivo de configuração YAML (~/.config/bbot/bbot.yml) que contém opções globais (e.g., proxy HTTP, número de threads, agentes de usuário) e configurações específicas de módulos. Valores podem ser sobrepostos por presets ou diretamente via linha de comando. ([blacklanternsecurity.github.io][4])

Ordem de prioridade dos configs

  1. Configuração padrão global (~/.config/bbot/bbot.yml)
  2. Presets (-p)
  3. Linha de comando (-c)

Exemplo de ajuste proxy:

bbot -t exemplo.com -c http_proxy=http://127.0.0.1:8080

ou no YAML:

http_proxy: http://127.0.0.1:8080

([blacklanternsecurity.github.io][4])


Módulos

BBOT possui dezenas de módulos que realizam tarefas específicas, como:

  • subdomain-enum: enumeração de subdomínios
  • portscan: varredura de portas TCP
  • wappalyzer: identificação de tecnologias Web
  • sslcert: leitura de certificados SSL/TLS
  • nuclei: varredura de vulnerabilidades personalizável

Você pode listar todos os módulos disponíveis com o comando:

bbot -l

A lista inclui módulos para múltiplos contextos (DNS, web, cloud, etc.). ([blacklanternsecurity.github.io][5])


Uso avançado (Python API)

BBOT também oferece uma API em Python para executar escaneamentos e processar eventos programaticamente:

from bbot.scanner import Scanner

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

Também é possível executar de maneira assíncrona: ([blacklanternsecurity.github.io][6])

from bbot.scanner import Scanner
import asyncio

async def main():
scan = Scanner("exemplo.com", presets=["subdomain-enum"])
async for event in scan.async_start():
print(event.json())

asyncio.run(main())

Configurando API Keys

Não é obrigatório ter chaves de API para rodar BBOT, porém alguns módulos dependem delas (por exemplo, módulos que consultam serviços externos como Shodan ou VirusTotal). Você pode:

  • Inserir chaves diretamente no YAML de configuração
  • Inserir nas configurações de um preset (.yml)
  • Passar via linha de comando com -c

Exemplo em YAML:

modules:
shodan_dns:
api_key: SUA_CHAVE

([blacklanternsecurity.com][2])


Exemplos de Presets

Presets são coleções de configurações de módulos agrupadas para tipos comuns de scans (por exemplo, enumeração de subdomínios ou análise web completa). Eles ajudam a executar scans complexos sem precisar configurar cada módulo manualmente. Para ver presets disponíveis, consulte a documentação ou crie os seus próprios arquivos .yml seguindo o padrão. ([blacklanternsecurity.github.io][4])


Troubleshooting

BBOT possui uma seção de troubleshooting na documentação oficial, com dicas e soluções para problemas comuns de instalação, execução e configuração. ([blacklanternsecurity.com][2])