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 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.
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:
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.
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.
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.
A instalação é simples, mas a melhor escolha depende do seu ambiente. O projeto mantém vários caminhos oficiais ou comunitários.
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
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.
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.
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.
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.
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:
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.
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.
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.
Vale colocar os pés no chão:
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.
Esse é o erro clássico. Pessoas diferentes usam o mesmo nome em plataformas diferentes o tempo todo.
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.
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.
Se a ideia é usar o Sherlock direito, faça assim:
--site quando tiver um escopo mais claro.--timeout baixo demais em busca séria.Em resumo: use o Sherlock como triagem, não como sentença.
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.
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.