Rastrear nomes de usuário em várias plataformas é uma das tarefas mais comuns em OSINT. Parece simples, mas as plataformas vivem mudando seu comportamento, removendo códigos de erro, bloqueando requisições automatizadas e escondendo respostas de rede úteis. Por causa disso, muitas ferramentas conhecidas acabam quebrando ou retornando falsos positivos.
Foi exatamente por isso que construí o Snoop - uma ferramenta leve e focada de enumeração de usuários que usa uma abordagem não convencional: aproveitar serviços de terceiros para restaurar a capacidade de detectar a existência de um usuário através das respostas HTTP.
Este post explica o raciocínio que utilizei por trás da ferramenta, e por que esse método funcionou melhor para mim.
A ideia principal por trás do Snoop
Em vez de enviar requisições ao site oficial da rede social, o Snoop usa frontends de terceiros, como o Nitter para o Twitter/X.
if platform == "instagram":
url = f"https://imginn.com/{username}/"
display_url = f"https://instagram.com/{username}"
elif platform == "twitter":
url = f"https://nitter.privacydev.net/{username}"
display_url = f"https://x.com/{username}"
Pensei em fazer a ferramenta dessa forma depois de perceber que algumas ferramentas clássicas não estavam funcionando corretamente, então pensei: E se eu utilizasse plataformas de terceiros para fazer as requisições HTTP ao invés dos sites clássicos.
Por quê?
Muitas plataformas removeram essa lógica, mas os frontends alternativos ainda a mantêm. Essa é uma forma rápida que encontrei para utilizar no Snoop, utilizando a gambiarra brasileira.
Se o usuário não existe → retorna 404
Se o usuário existe → retorna 200
Isso torna o OSINT muito mais fácil e preciso.
Como o Snoop funciona
A ferramenta é muito simples:
- Ela monta uma lista de sites.
- Para cada um, substitui o nome de usuário na URL.
- Envia uma requisição HTTP normal.
- Verifica o código de status (principalmente 200 ou 404).
Como o Snoop usa espelhos da internet, ele evita os problemas que outras ferramentas enfrentam hoje.
Conforme o tempo passou, fui adaptando a ferramenta e adicionando formas diferentes.
O exemplo abaixo mostra uma das formas que encontramos de realizar requests.
- https://publish.x.com/oembed?url=https://x.com/elonmusk -> 200
- https://publish.x.com/oembed?url=https://x.com/usuarioquenaoexiste123xyz -> 404
No geral, sempre adiciono APIs e formas diferentes. Por causa disso, sempre preciso ficar renovando o código. Mas, se você tiver mais ideias de como melhorar a ferramenta ou adicionar mais serviços, o código-fonte se encontra abaixo:
Código-fonte https://github.com/AnkhCorp/Snoop
