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
- Configuração padrão global (
~/.config/bbot/bbot.yml) - Presets (
-p) - 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])