
bbot v3.0.2
O scanner recursivo da internet para hackers. 🧡
BEE·bot é um scanner multiuso inspirado no Spiderfoot, criado para automatizar seus 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
# stable version
pipx install bbot
# bleeding edge (dev branch)
pipx install --pip-args '\--pre' bbot
Para mais métodos de instalação, incluindo Docker, consulte Primeiros Passos
Atualizando a partir da 2.x? O BBOT 3.0 contém mudanças significativas (breaking changes) na CLI, nos presets, nos módulos, nos eventos e na API Python. Consulte o Guia de Migração 2.x → 3.0 (fonte) antes de atualizar.
Dica de velocidade: o resolvedor DNS do BBOT (blastdns) inicia múltiplas threads por resolvedor em
/etc/resolv.conf. Adicionar mais resolvedores sem filtro acelera drasticamente as varreduras. Consulte o resolv.conf de exemplo e as Dicas e Truques para obter detalhes.
Exemplos de Comandos
1) Localizador de Subdomínios
Fontes passivas de API mais um brute-force recursivo de DNS com mutações de subdomínios específicas do alvo.
# 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: ""
O BBOT encontra consistentemente de 20 a 50% mais subdomínios do que outras ferramentas. Quanto maior o domínio, maior a diferença. Para saber como isso é possível, consulte Como Funciona.

2) Spider 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) Coletor de E-mails
# 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) Scanner 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) Tudo em Todo Lugar ao Mesmo Tempo
# 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
Como Funciona
Clique no gráfico abaixo para explorar o funcionamento interno do BBOT.
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 Maligno do Discord
Um Bot do Discord do BBOT que responde ao comando /scan. Faça varreduras na internet do conforto do seu servidor no Discord!

Visão Geral dos Recursos
- Suporte a Múltiplos Alvos
- Capturas de Tela Web
- Suíte de Módulos Web Ofensivos
- Mutações de Subdomínios com NLP
- Saída Nativa para Neo4j (e mais)
- Instalação automática de dependências com Ansible
- Pesquise 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 IPs (
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, consulte Alvos. Para saber como o BBOT lida com o escopo, consulte Escopo.
Chaves de API
Semelhante ao Amass ou Subfinder, o BBOT oferece suporte a chaves de API para vários serviços de terceiros, como SecurityTrails, etc.
A forma padrão de fazer isso é inserir suas chaves de API em ~/.config/bbot/secrets.yml. Observe que múltiplas chaves de API são permitidas:
modules:
shodan_dns:
api_key: 4f41243847da693a4f356c0486114bc6
c99:
# multiple API keys
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, consulte Configuração.
Listas Completas de Módulos, Flags, etc.
- Lista completa de Módulos.
- Lista completa de Flags.
- Lista completa de Presets.
- Lista completa de Opções Globais de Configuração.
- Lista completa de Opções de Configuração de Módulos.
Documentação
- Manual do Usuário
- Fundamentos
- Varredura
- Módulos
- Migração
- Diversos
- Manual do Desenvolvedor
Contribuição
Alguns dos melhores módulos do BBOT foram escritos pela comunidade. O BBOT está em constante aprimoramento; a cada dia fica mais poderoso!
Aceitamos contribuições. Não apenas código, mas também ideias! Se você tem uma ideia para um novo recurso, por favor nos avise em Discussões. Se quiser colocar a mão na massa, consulte Contribuição. Lá você encontrará instruções de configuração e um tutorial simples sobre como escrever um módulo do BBOT. Também temos uma extensa Documentação para Desenvolvedores.
Agradecemos a estas pessoas incríveis por contribuírem com o BBOT! ❤️
Agradecimentos especiais a:
- @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 experiência com Neo4j e Ansible
- @domwhewell-sage por sua família de módulos de saque de código simplesmente incríveis
- @aconite33 e @amiremami por seus testes implacáveis
- Aleksei Kornev (@alekseiko) por nos conceder a propriedade do repositório bbot no Pypi <3

