TorBot: o crawler Python para coletar OSINT na dark web

Ferramenta

TorBot: o crawler Python para coletar OSINT na dark web

Rodrigo ColissiRodrigo Colissi
10 de setembro de 20268 min de leitura
OSINT

O que é

O TorBot é uma ferramenta open source de OSINT (Open Source Intelligence, inteligência a partir de fontes públicas) especializada na dark web: escrita em Python, ela funciona como um crawler de serviços .onion — os sites hospedados dentro da rede Tor (rede de anonimato que roteia o tráfego em camadas criptografadas) — coletando título, descrição, links e informações estruturais de cada página, montando a árvore de relacionamento entre sites e salvando tudo para análise. O projeto nasceu no grupo DedSec Inside, é mantido por PS Narayanan e KingAkeem, tem mais de 4,8 mil estrelas no GitHub e é listado como projeto oficial da OWASP (fundação mundial de segurança de software), sob licença GPL.

A proposta do TorBot é dar ao pesquisador uma visão estruturada de um ecossistema que o navegador comum não entrega: enquanto você navega um site .onion por vez, o TorBot percorre páginas em profundidade, descobre links relacionados, verifica quais ainda estão no ar e gera uma representação visual das conexões — o material bruto para investigações de mercados, fóruns, grupos e infraestrutura maliciosa na dark web. Desde 2026, o projeto ganhou também um modo de análise assistida por IA com abordagem "evidence-first": cada conclusão precisa citar a evidência capturada no crawl, e o pacote de evidências é gerado de forma determinística mesmo se o modelo de IA falhar.

Principais características

CaracterísticaO que faz
Crawler .onionPercorre serviços Tor coletando título (ou hostname), descrição curta e endereço de cada site
Crawl de domínios customizadosTambém funciona com sites da web comum, útil para comparar estruturas
Controle de profundidadeFlag --depth define quantos níveis de links o crawler percorre
Árvore de linksSalva a estrutura de relacionamento entre sites em JSON ou formato tree
VisualizaçãoGera representação visual da árvore em três formatos: tree, JSON e table
Verificação de link vivoCheca se cada link encontrado ainda está ativo
Info de site--info mostra informações básicas da página alvo
Análise com IA evidence-firsttorbot analyze transforma o resultado do crawl em bundle de investigação com citações — modelo local via Ollama
SOCKS5 via TorRoteia as requisições pelo proxy do Tor (padrão 127.0.0.1:9050) ou ignora com --disable-socks5
App desktop opcionalInterface gráfica (TorBotApp, Electron) acionável via torbot app
Atualização embutida--update atualiza para a última versão estável; --version mostra a atual

Como funciona

O TorBot opera em duas frentes: o crawler e o analisador. No crawler, cada requisição é roteada pelo proxy SOCKS5 do Tor local — é o Tor que acessa o serviço .onion, e o TorBot apenas conduz o fluxo; sem o Tor rodando na porta 9050, o modo --disable-socks5 faz as requisições diretas (útil para testar contra sites comuns). A partir da URL inicial, o crawler percorre os links em largura até a profundidade configurada, resolve links relativos contra a página atual, ignora hrefs malformados e coleta, para cada página: título (ou hostname, quando não há título), uma descrição curta do conteúdo e o endereço. O resultado pode ser salvo como árvore de links em JSON e visualizado como tabela ou árvore:

python main.py -u https://example.com --depth 2 --save json
python main.py -u https://example.com --disable-socks5 --visualize tree

Na frente de análise, o fluxo é "evidence-first": primeiro o crawl é salvo em um arquivo versionado e, depois, o analisador consome esse resultado — por padrão com um modelo local via Ollama (runtime de modelos de linguagem executado localmente), sem enviar dados para a nuvem:

torbot --url https://example.com --disable-socks5 \
  --save result --result-file crawl-result.json
torbot analyze crawl-result.json --provider ollama --model qwen3 \
  --output investigation/

Cada achado da análise precisa citar a evidência capturada; provedores remotos compatíveis com OpenAI só são aceitos com a flag explícita --allow-remote, e uma falha do provedor nunca impede a gravação do bundle determinístico de evidências — o material cru fica garantido, a interpretação vem depois.

Casos de uso práticos

Mapear um serviço .onion desconhecido

Recebeu um link .onion e quer saber o que é antes de interagir? O TorBot coleta a identidade do site — título, descrição, links internos e para onde ele aponta — sem você precisar abrir um navegador Tor manualmente:

python main.py -u http://site-exemplo.onion --info

Construir o grafo de relacionamentos de um ecossistema

A aplicação clássica de OSINT: a partir de um fórum ou mercado .onion, percorrer em profundidade e gerar a árvore de links para entender a constelação de sites conectados — quais mercados apontam para quais fóruns, quais serviços de carteira aparecem no mesmo ecossistema. A visualização em tabela ajuda a ler a estrutura de uma vez:

python main.py -u http://fórum.onion --depth 3 --visualize table

Monitorar se sites da dark web continuam no ar

Sites .onion caem e mudam de endereço com frequência. Em um fluxo de monitoramento, o TorBot verifica se os links de uma lista continuam ativos e a saída JSON alimenta um dashboard ou alerta — o material para acompanhar a disponibilidade de infraestrutura maliciosa ao longo do tempo.

Triagem assistida por IA com evidência

Para acervos grandes, o modo de análise gera um bundle de investigação com citações: o pesquisador pede a triagem de um crawl e recebe achados pontuados, cada um apontando a evidência que o sustenta — e tudo rodando localmente via Ollama, sem vazar o material da investigação para provedores remotos.

Coletar evidências para pesquisa acadêmica ou de threat intelligence

O formato versionado do crawl e o bundle determinístico de evidências tornam o TorBot útil para pesquisa: o material coletado fica registrado, reprodutível e citável — requisitos de trabalhos acadêmicos e relatórios de inteligência de ameaças sobre a dark web.

Download e instalação

O TorBot é gratuito e open source (GPL). A instalação clássica clona o repositório e prepara um ambiente virtual Python:

git clone https://github.com/DedSecInside/TorBot.git
cd TorBot
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install -e .

Depois, é só rodar:

python main.py --help
python main.py -u https://example.com --depth 2 --visualize table

Pré-requisitos: Python 3.10+ e pip. O Tor (rede de anonimato que roteia o tráfego em camadas) é opcional — necessário apenas para crawl de sites .onion (mantenha o proxy SOCKS5 habilitado); para testar com sites comuns, use --disable-socks5. Também existe Dockerfile no repositório, e o app desktop (TorBotApp, em Electron) é um projeto separado que o CLI aciona com torbot app.

Conclusão

O TorBot ocupa um espaço raro no OSINT: ele é uma das poucas ferramentas maduras e ativas feitas especificamente para a dark web, com crawler dedicado a serviços .onion, saída estruturada e visual, e agora uma camada de análise com IA que não sacrifica a rastreabilidade — evidência antes de conclusão. Para pesquisadores de ameaças, jornalistas investigativos e analistas que precisam entender ecossistemas .onion sem depender de navegação manual, é a ferramenta de entrada mais sólida disponível em código aberto. O ecossistema Tor é hostil por natureza, e o TorBot não muda isso: ele apenas dá estrutura ao caos — e deixa registrado, em JSON, exatamente o que foi visto e quando.

Perguntas frequentes

Preciso instalar o Tor para usar o TorBot?

Depende do alvo. Para crawlear sites .onion, sim — o TorBot roteia as requisições pelo proxy SOCKS5 do Tor (padrão 127.0.0.1:9050). Para sites da web comum, basta usar a flag --disable-socks5.

O TorBot funciona só com sites .onion?

Não. Ele também crawl domínios comuns da internet, o que é útil para comparar estruturas ou testar o funcionamento antes de apontar para a dark web.

O que é a análise evidence-first com IA?

É o modo em que o crawl é salvo em arquivo versionado e depois analisado por um modelo de linguagem (padrão: Ollama local). Cada achado da análise precisa citar a evidência capturada, e o bundle de evidências é sempre gravado mesmo se a IA falhar.

Como salvo os resultados de um crawl?

Com a flag --save nos formatos tree ou JSON. Exemplo: python main.py -u URL --depth 2 --save json. A visualização tem formatos tree, table e JSON.

O TorBot tem interface gráfica?

Sim, mas opcional: o TorBotApp é um projeto Electron separado; com ele instalado, o CLI abre a interface com o comando torbot app.

Fazer crawl na dark web é legal?

O crawling em si é coleta de informações públicas, mas a dark web concentra atividades ilegais — o que você encontra (e como usa) define a legalidade. Pesquisadores devem agir com autorização e dentro do marco legal do seu país.

Fontes e leituras adicionais

Gostou? Receba novos conteúdos por e-mail.

Entre na comunidade

Discussões técnicas e novidades em primeira mão.