..

Como hackers encontram perfis pela internet com Sherlock: uma introdução prática a OSINT

Aviso importante: este material tem finalidade educacional. Use o Sherlock apenas em ambientes autorizados, em contas próprias ou em atividades cobertas por permissão clara e documentada. O fato de uma informação estar pública não transforma qualquer coleta em algo automaticamente aceitável.

Ferramentas de OSINT ajudam a organizar aquilo que já está espalhado pela internet. Entre elas, o Sherlock virou uma das mais conhecidas quando o assunto é rastrear a presença de um mesmo username em vários serviços diferentes. A proposta é simples: em vez de abrir site por site e pesquisar manualmente, você entrega um nome de usuário ao programa e deixa que ele teste, em escala, onde aquele identificador aparece.

Mas aqui já vale corrigir uma promessa exagerada que costuma aparecer em títulos sobre o tema: o Sherlock não “encontra qualquer pessoa”. Ele não faz mágica, não quebra contas, não acessa informação privada e não resolve identidade sozinho. O que ele faz é procurar rastros públicos de um username em centenas de plataformas. Isso já é bastante útil, mas só quando você entende o alcance real da ferramenta.

Neste tutorial, vou mostrar o que é o Sherlock, como ele funciona por baixo dos panos, como instalar, quais comandos fazem diferença no uso prático e, principalmente, como interpretar os resultados sem cair em conclusões erradas.

O que é o Sherlock

O Sherlock é uma ferramenta de OSINT voltada para enumeração de usernames. Em outras palavras, ele verifica se um nome de usuário existe — ou aparenta existir — em uma longa lista de sites e serviços. O projeto mantém uma base ampla de alvos e, hoje, anuncia suporte a mais de 400 redes e plataformas.

Na prática, isso é útil para tarefas como:

O ponto principal é este: Sherlock trabalha com usernames, não com identidade civil. Se a pessoa usa nomes diferentes em cada site, a ferramenta perde força. Se ela reutiliza o mesmo handle em vários lugares, o ganho de tempo é enorme.

Como o sistema funciona por baixo dos panos

Muita gente usa o Sherlock sem entender o mecanismo. Isso é um erro, porque a qualidade da sua análise depende diretamente disso.

O Sherlock parte de um princípio simples: muitos sites possuem uma URL previsível e única para cada perfil. Algo como:

https://siteexemplo.com/usuario

Se o site foi projetado desse jeito, o Sherlock pode montar a URL com o username desejado e testar a resposta. Dependendo de como a plataforma se comporta, ele decide se aquele usuário parece existir ou não.

Por trás disso, o projeto mantém definições de sites em um arquivo de dados com regras como:

Nem todos os sites respondem da mesma forma, e é aqui que o assunto fica interessante. O Sherlock pode identificar contas de alguns jeitos diferentes:

1. Verificação por código HTTP

Esse é o cenário ideal. O programa testa a URL do perfil e o site devolve algo claro, como 200 OK para conta existente e 404 Not Found para conta inexistente.

Quando um alvo funciona assim, a detecção costuma ser mais confiável.

2. Verificação por mensagem de erro

Alguns sites não devolvem um código HTTP útil. Em vez disso, eles mostram uma página genérica com alguma mensagem do tipo “usuário não encontrado”. Nesses casos, o Sherlock procura esse texto e usa a mensagem como sinal.

Esse método já é mais frágil. Se o site mudar o texto, mudar o layout ou colocar proteção extra, a checagem pode começar a falhar.

3. Uso de endpoints alternativos

Em certos casos, o projeto recorre a uma URL de verificação diferente da URL pública do perfil, quando isso torna a validação mais confiável. Isso ajuda a reduzir erro, mas não elimina o problema de plataformas que vivem mudando.

É por isso que falso positivo e falso negativo fazem parte do jogo. O Sherlock acelera a coleta inicial, mas a validação humana continua obrigatória.

Instalação

A instalação é simples, mas a melhor escolha depende do seu ambiente. O projeto mantém vários caminhos oficiais ou comunitários.

Opção mais prática: pipx

Hoje, a própria documentação do Sherlock recomenda pipx em muitos cenários, porque ele tende a isolar melhor o ambiente e evita parte da bagunça comum de dependências globais do Python.

pipx install sherlock-project

Depois disso:

sherlock --version

Instalação com pip

Se você preferir o método clássico:

pip install --user sherlock-project

Também funciona bem para quem quer algo rápido, especialmente em ambiente local simples.

Outras formas de instalar

Dependendo do sistema, você também pode usar:

brew install sherlock
sudo apt install sherlock
sudo dnf install sherlock-project

Ou rodar via Docker:

docker pull sherlock/sherlock
docker run --rm -t sherlock/sherlock user123

Se você pretende estudar o código, alterar comportamento ou contribuir com o projeto, aí sim faz sentido clonar o repositório e trabalhar a partir da fonte.

Observação importante sobre pacotes

Nem todo pacote distribuído por terceiros acompanha o ritmo do projeto principal. A documentação oficial inclusive alerta que alguns pacotes de terceiros podem apresentar problemas em determinadas distribuições. Então, se algo quebrar sem motivo aparente, não assuma imediatamente que “o Sherlock não funciona”; primeiro confira como você instalou e qual versão está rodando.

Primeiro uso

O caso mais básico é consultar um único username:

sherlock nahamsac

Se quiser consultar vários de uma vez:

sherlock user1 user2 user3

Por padrão, o Sherlock salva os achados em um arquivo de texto com o nome do usuário pesquisado. Então, ao consultar nahamsac, é comum você terminar com algo como nahamsac.txt no diretório de execução.

Se a instalação foi feita em um contexto diferente do executável exposto diretamente no sistema, você pode acabar rodando algo como:

python3 -m sherlock nahamsac

No fim das contas, o que importa é a ferramenta estar acessível no seu ambiente e o resultado ser consistente.

Demonstração prática

No meu teste, usei dois nomes públicos e conhecidos para mostrar o fluxo básico: Nahamsac e NetworkChuck.

O primeiro comando foi o mais direto possível:

sherlock nahamsac

A execução padrão tende a ser mais demorada, porque o Sherlock percorre uma lista extensa de sites e espera respostas da rede. Para acelerar uma demonstração, dá para reduzir o tempo de espera por requisição com --timeout:

sherlock --timeout 1 nahamsac

Isso deixa o processo mais rápido, mas também piora a confiabilidade. Um timeout tão baixo é aceitável em vídeo ou teste rápido, só que é péssimo para uma coleta séria. Se a plataforma estiver lenta, você pode perder resultado real e concluir, errado, que o username não existe ali.

Depois, a mesma lógica pode ser repetida com outro alvo:

sherlock networkchuck

A saída costuma mostrar uma sequência grande de verificações. Em alguns casos, você verá correspondências que parecem boas. Em outros, vai bater o olho e desconfiar na hora. E essa desconfiança é saudável. O certo é abrir o link e validar manualmente.

Se um site de xadrez, fórum obscuro ou rede pouco conhecida aparecer como “match”, não trate isso como verdade automática. Confira se:

Comandos e opções que realmente valem conhecer

A maioria dos tutoriais para no básico. Isso empobrece o uso da ferramenta. Estas opções merecem atenção:

--timeout

Define quanto tempo o Sherlock espera por resposta de cada site.

sherlock --timeout 5 user123

Quanto menor o valor, mais rápido fica o scan e maior o risco de erro por timeout.

--site

Limita a busca a sites específicos. Isso é ótimo para testes dirigidos.

sherlock --site GitHub --site GitLab user123

Quando você já sabe onde faz sentido procurar, isso reduz ruído e economiza tempo.

--output e --folderoutput

Permitem organizar melhor a saída.

sherlock -o resultado.txt user123
sherlock -fo resultados user1 user2 user3

Se você estiver lidando com múltiplos usernames, usar pasta de saída evita bagunça.

--csv e --xlsx

Geram exportações estruturadas.

sherlock --csv user123
sherlock --xlsx user123

Isso facilita revisão posterior, comparação e documentação.

--print-found e --print-all

Controlam o que aparece no terminal.

sherlock --print-found user123

Se você quer foco nos achados, essa opção ajuda bastante. Já --print-all despeja também os sites onde nada foi encontrado.

--proxy

Permite enviar requisições por proxy.

sherlock --proxy socks5://127.0.0.1:1080 user123

Isso pode fazer sentido em laboratório, em ambientes controlados ou quando você quer observar outro comportamento de rede. Não use isso como muleta para irresponsabilidade.

--tor e --unique-tor

Forçam requisições sobre Tor.

sherlock --tor user123
sherlock --unique-tor user123

Essas opções aumentam o tempo de execução e exigem que o Tor esteja instalado e acessível no sistema. Servem para cenários específicos, não porque “fica mais hacker”.

--browse

Abre os resultados encontrados no navegador padrão.

sherlock --browse user123

É prático para revisão rápida, mas pode virar uma bagunça se a busca retornar muita coisa.

--local

Força o uso do data.json local.

sherlock --local user123

Isso interessa mais para quem está mexendo no projeto, testando comportamento local ou trabalhando em cima da base de sites.

--nsfw

Inclui sites marcados como NSFW na lista padrão.

sherlock --nsfw user123

Se você não precisa desse tipo de superfície, deixe isso desligado.

Um detalhe útil que quase ninguém comenta

A documentação de uso do projeto ainda mostra um exemplo de ajuda com a versão 0.14.3, enquanto o pacote no PyPI lista a versão 0.16.0 como a mais recente publicada no registro. Moral da história: não confie em tutorial velho nem em print de terceiros. Rode isto na sua máquina:

sherlock --version

A sua instalação real vale mais do que qualquer screenshot perdida pela internet.

Como interpretar os resultados sem se sabotar

Esse é o ponto em que muita gente erra feio.

Encontrar o mesmo username em vários lugares não prova, sozinho, que todas aquelas contas pertencem à mesma pessoa. No máximo, isso gera uma hipótese razoável.

O que você precisa cruzar depois inclui:

Em OSINT, ferramenta nenhuma substitui contexto. Sherlock entrega pistas. Quem transforma pista em conclusão é você. Se você fizer isso mal, a falha não é da ferramenta — é da análise.

Limitações reais do Sherlock

Vale colocar os pés no chão:

Nem todo site é compatível

O Sherlock depende de sites com comportamento previsível. Plataformas que exigem login, usam proteção agressiva, mudam rotas com frequência ou respondem de forma inconsistente podem quebrar a detecção.

Username igual não é identidade confirmada

Esse é o erro clássico. Pessoas diferentes usam o mesmo nome em plataformas diferentes o tempo todo.

Site lento gera ruído

Se a plataforma estiver instável, você pode ter falso negativo. Se o mecanismo de detecção daquele alvo estiver mal calibrado, pode aparecer falso positivo.

A lista de sites muda

Projetos assim vivem adicionando, removendo ou ajustando alvos. Logo, o resultado de hoje pode não ser idêntico ao resultado de alguns meses atrás.

Boas práticas de uso

Se a ideia é usar o Sherlock direito, faça assim:

  1. Comece com o username exato.
  2. Teste variações plausíveis.
  3. Use --site quando tiver um escopo mais claro.
  4. Não force --timeout baixo demais em busca séria.
  5. Salve a saída em arquivo.
  6. Revise manualmente os links encontrados.
  7. Cruze os achados com outras fontes de OSINT.
  8. Documente o que foi confirmado e o que ficou só como hipótese.

Em resumo: use o Sherlock como triagem, não como sentença.

Cuidados éticos e operacionais

Aqui não cabe romantização.

Sherlock é útil, mas o mau uso continua sendo mau uso. Mesmo trabalhando apenas com dados públicos, você ainda pode esbarrar em abuso de escopo, violação contratual, quebra de política interna, coleta irresponsável e conclusões injustas sobre terceiros.

Se você estiver em um pentest, red team, due diligence técnica ou qualquer atividade profissional minimamente séria, deixe três coisas amarradas:

Se não existe autorização, o problema não é “só uma busca pública”. O problema é você não ter base para fazer aquilo.

Conclusão

O Sherlock continua sendo uma ferramenta excelente para levantamento rápido de presença pública baseada em username. Ele economiza tempo, amplia cobertura e ajuda muito na fase inicial de uma investigação de OSINT. Mas ele não substitui validação, não resolve identidade sozinho e não elimina a necessidade de contexto.

Use bem, confirme tudo e desconfie de resultados “bons demais”. Em OSINT, pressa e certeza excessiva costumam produzir análise ruim.