Construindo uma ferramenta de reconhecimento OSINT

Construindo uma ferramenta de reconhecimento OSINT do zero

Todo mundo tem um telefone, usando pelo menos um nĂşmero de telefone. Os nĂşmeros de telefone sĂŁo um recurso muito comum para a engenharia social. Ă‰ algo que usamos quase todos os dias para nos comunicar e, Ă s vezes, podemos ter que lidar com telefonemas ou mensagens nĂŁo solicitadas. Talvez tenhamos de coletar informaçþes sobre um nĂşmero de telefone que encontramos sobre uma empresa ou um indivĂ­duo. Informaçþes bĂĄsicas, como tipo de linha e operadora, podem ser muito Ăşteis para um engenheiro social.
Supondo que eu saiba seu nome e seu nĂşmero de telefone, posso enviar uma ameaça de phishing usando o modelo de e-mail da sua operadora. Ou posso ligar para o serviço de suporte da sua operadora para reunir o mĂĄximo de informaçþes possĂ­vel sobre vocĂŞ. Outro exemplo, se o nĂşmero for uma linha de terra, alguns dos dĂ­gitos me dirĂŁo a ĂĄrea de onde vem. Essas informaçþes sĂŁo muito simples de obter sem o uso de uma ferramenta, mas e quanto a ir adiante?
O objetivo Ê reunir o måximo de informaçþes possível sobre o número de telefone fornecido, incluindo os ITSPs ou o proprietårio.
Um provedor de serviços de telefonia pela Internet (ITSP) oferece serviços de telecomunicaçþes digitais baseados em Voz sobre Protocolo de Internet (VoIP) que sĂŁo fornecidos via Internet. Wikipedia

Obtendo tĂŠcnico

Primeiro eu tenho que entender a composição de um nĂşmero de telefone e como lidar com isso. Um nĂşmero de telefone tem diferentes formatos:
  • E.164: + 3396360XXXX
  • Internacional: +33 9 63 60 XX XX
  • Nacional: 09 63 60 XX XX
  • RFC3966: tel: + 33–9–63–60-XX-XX
  • Formato fora do paĂ­s nos EUA: 011 33 9 63 60 XX XX
O formato E.164 para nĂşmeros de telefone implica o seguinte:
  • Um sinal + (mais)
  • CĂłdigo Internacional de Chamada ao PaĂ­s
  • CĂłdigo de ĂĄrea local
  • NĂşmero de telefone local
Por exemplo, aqui está um número com base nos EUA na formatação local padrão: (415) 555–2671
Š Twilio
Aqui estå o mesmo número de telefone na formatação E.164: +14155552671
Š Twilio
No Reino Unido e em muitos outros paĂ­ses internacionalmente, a discagem local pode exigir a adição de um '0' na frente do nĂşmero do assinante. Com formatação E.164, este '0' geralmente deve ser removido.
Outro exemplo, aqui estå um número com base no Reino Unido na formatação local padrão: 020 7183 8750
Š Twilio
Aqui estå o mesmo número de telefone na formatação E.164: +442071838750
O cĂłdigo do paĂ­s ĂŠ principalmente. Sem isso, nĂŁo posso digitalizar o nĂşmero de telefone e determinar o paĂ­s. Assim, a ferramenta suporta apenas formatos E.164 e internacionais.
Mas espere .. e se houvesse uma biblioteca para analisar automaticamente as informaçþes do nĂşmero? Enquanto isso, procurando recursos sobre nĂşmeros de telefone, encontrei este repositĂłrio mĂĄgico do Google, que ĂŠ uma biblioteca Java, C ++ e JavaScript para analisar, formatar e validar nĂşmeros de telefone internacionais. A biblioteca tambĂŠm existe em Go, PHP, Ruby, Rust e Python. Viva! Eu nĂŁo tenho que fazer todo o trabalho sozinha.
Para identificar informaçþes bĂĄsicas, seleciono alguns sites de pesquisa que posso usar gratuitamente, mesmo que eu precise usar um “hack” para usĂĄ-los. Porque alguns sites permitem uma pesquisa inversa gratuitamente usando a pĂĄgina da Web, mas requer uma chave de API assim que vocĂŞ quiser usar a API deles. Por exemplo, posso enganar a chamada do Ajax para fazer uma chamada de API na minha ferramenta. Eu quero que minha ferramenta seja utilizĂĄvel sem qualquer registro de API.
Identifique a operadora de forma simples porque cada operadora possui intervalos de numeração. Por exemplo, se sabemos que o nĂşmero +33679368314 ĂŠ da Orange France (transportadora francesa), ĂŠ fĂĄcil entender que o intervalo de nĂşmeros + 3367936XXXX ĂŠ de propriedade da Orange France. O Google, como muitos outros serviços, tem um banco de dados enorme desses intervalos de nĂşmeros associados Ă s suas operadoras. No entanto, em alguns casos, as pessoas mudam de operadora, mas mantĂŞm seu nĂşmero de telefone para que as informaçþes sobre o intervalo de nĂşmeros se tornem invĂĄlidas.

Usando o Open Source Intelligence e dados abertos

No caminho aprendendo sobre segurança, descobri meses atrĂĄs o Open Source Intelligence (OSINT). OSINT ĂŠ a coleta de informaçþes de fontes de dados abertas e publicamente disponĂ­veis para uso em um contexto de inteligĂŞncia.
Na comunidade de inteligĂŞncia , o termo “aberto” refere-se a fontes abertas e publicamente disponĂ­veis (em oposição a fontes secretas ou clandestinas). NĂŁo estĂĄ relacionado a software de cĂłdigo aberto ou inteligĂŞncia pĂşblica . Wikipedia
O Open Source Intelligence (OSINT) assume trĂŞs formas: Passivo, Semi-passivo e Ativo. Existem vĂĄrias maneiras de lidar com informaçþes em um contexto de inteligĂŞncia. Especialmente quando se trata de pegadas. Eu vou praticar o Passive Information Gathering (ou Passive Reconnaissance), isso significa que nĂŁo vou armazenar dados coletados e principalmente usar fontes de terceiros. Mas vou reunir informaçþes de vĂĄrias fontes e filtrar os resultados para encontrar o proprietĂĄrio ou o ITSP.
Saiba mais sobre as tĂŠcnicas de reconhecimento OSINT e a pegada aqui .

Primeiro de tudo, quero que minha ferramenta OSINT verifique:
  • Reputação do nĂşmero de telefone (relatĂłrios de fraude telefĂ´nica)
  • Pegadas em sites de provedores de nĂşmero temporĂĄrio e VoIP
  • PĂĄginas de mĂ­dia social (facebook, twitter, linkedin, instagram) e resultados de listas telefĂ´nicas
A maioria dos meus recursos ĂŠ dessa estrutura OSINT de software livre e IntelTechniques .
Para encontrar documentos e pĂĄginas da Web relacionados ao nĂşmero de telefone, eu uso solicitaçþes do Google Dork . Eu faço uma lista de todos os provedores de nĂşmeros descartĂĄveis ​​que encontrei. Alguns deles expĂľem seus nĂşmeros e tudo isso ĂŠ indexado pelos mecanismos de busca. Por exemplo, se eu solicitar ao Google uma pĂĄgina da web em um desses sites com o nĂşmero incluĂ­do no conteĂşdo e encontrar um resultado, isso geralmente significa que o nĂşmero faz parte do intervalo de numeração deles. Como meu reconhecimento OSINT ĂŠ bastante bĂĄsico, nunca considerarei um resultado como um sucesso.
Reconhecimento de pegada usando uma solicitação do Google Hacking direcionada ao website "Fraude do telefone"

Listando fontes de fraude de nĂşmeros de telefone

  • scamcallfighters.com
  • sinal-arnaques.com

Listando provedores de nĂşmeros descartĂĄveis

  • receive-sms-online.com
  • receive-sms-now.com
  • hs3x.com
  • twilio.com
  • freesmsverification.com
  • freeonlinephone.org
  • sms-receive.net
  • smsreceivefree.com
  • receive-a-sms.com
  • receivefreesms.com
  • freephonenum.com
  • receive-smss.com
  • receivetxt.com
  • temp-mails.com
  • receive-sms.com
  • receivemsonline.net
  • receivefreesms.com
  • sms-receive.net
  • pinger.com (=> textnow.com)
  • receive-a-sms.com
  • k7.net
  • kall8.com
  • faxaway.com
  • receivemsonline.com
  • receive-sms-online.info
  • sellaite.com
  • getfreesmsnumber.com
  • smsreceiving.com
  • smstibo.com
  • catchsms.com
  • freesmscode.com
  • smsreceiveonline.com
  • smslisten.com
  • sms.sellaite.com
Negrito significa que eles nĂŁo colocam seus nĂşmeros de telefone em seu site (portanto sem pegadas) ou parecem nĂŁo existir mais.
Sim. HĂĄ muitos provedores de nĂşmeros descartĂĄveis. Usando o mecanismo de pesquisa do Google, posso pesquisar pegadas especificando o nome de domĂ­nio e o nĂşmero de telefone usando diferentes formatos.
site: ”domĂ­nio” intext: ”international_num” | "Local_num"
HĂĄ muitas fontes de dados abertas on-line que poderiam ter sido muito Ăşteis para este projeto. Enquanto pesquisava por fontes de dados, encontrei um banco de dados JSON de paĂ­s associado a seus cĂłdigos ISO e de discagem. Em seguida, encontrei um banco de dados de cĂłdigos de ĂĄrea para cada paĂ­s. Infelizmente, isso nĂŁo serĂĄ usado desde que os phonenumbers da biblioteca do Google jĂĄ verificam essas informaçþes, bem como a operadora e o local.
Lista de ITSPs (provedores de nĂşmero de VoIP) - via http://directory.didww.com/top-providers

Recolha de informação sobre indivíduos

No entanto, encontrar informaçþes sobre os indivĂ­duos ĂŠ um pouco mais fĂĄcil do que o esperado. Existem muitas fontes de dados abertas (com API ou recurso de busca reversa) que me permitem pesquisar sobre um nĂşmero de telefone. De acordo com a Intel Techniques, esse ĂŠ o fluxo de trabalho mĂŠdio usando as ferramentas de pesquisa de nĂşmero de telefone:
Š IntelTechniques

Lista de informação de dono que recolhe fontes abertas

  • Facebook
  • Pessoas verdadeiras
  • Pessoas RĂĄpidas
  • Verificação de antecedentes
  • Pipl
  • Spytox
  • Makelia
  • IvyCall
  • PhoneSearch
  • 411
  • USPhone
  • WP Plus
  • Isso ĂŠ
  • Verdadeiro chamador
  • Sync.me
  • WhoCallsMe
  • ZabaSearch
  • DexKnows
  • WeLeakInfo
  • OK chamador
  • SearchBug
  • numinfo.net
Um dia alguĂŠm que eu nĂŁo conhecia me enviou um email. Eu estava curioso, entĂŁo eu digitei o endereço de e-mail dele no Google. Descobri que um perfil em numinfo.net estava associado ao seu endereço de e-mail e, a partir daqui, pude saber o seu nĂşmero de telefone, localização (incluindo paĂ­s, estado e cidade) seu nome e atĂŠ seu endereço fĂ­sico! Eu nĂŁo sabia se as informaçþes estavam corretas ou nĂŁo, mas ainda assim. Para verificar, perguntei-lhe algumas perguntas sobre sua localização e adivinha o que… tudo combinava.

Os problemas

Neste ponto, podemos reunir muitas informaçþes sobre quase todos os nĂşmeros de telefone no mundo e isso ĂŠ incrĂ­vel! Mas estou enfrentando dois grandes problemas ao criar minha ferramenta.
Primeiro, o Google lista negra o IP do cliente e solicita que vocĂŞ conclua um captcha apĂłs algumas solicitaçþes. Quando vocĂŞ pratica solicitaçþes personalizadas complexas, o Google solicita que vocĂŞ conclua o captcha. Depois de algumas investigaçþes, descubro como o Google lida com detecção de captcha e bot.
Quando vocĂŞ pesquisa no Google usando solicitaçþes personalizadas (Google Dorks), fica muito fĂĄcil na lista negra. EntĂŁo o Google mostra uma pĂĄgina onde vocĂŞ tem que completar um captcha para continuar. Assim que o captcha for concluĂ­do, o Google criarĂĄ um cookie chamado " GOOGLE_ABUSE_EXEMPTION”Que ĂŠ usado para colocar seu navegador e endereço IP na lista de permissĂľes por alguns minutos. Essa lista de permissĂľes temporĂĄria ĂŠ suficiente para permitir que vocĂŞ reĂşna muitas informaçþes de vĂĄrias fontes. EntĂŁo eu decidi adicionar uma manipulação de usuĂĄrio simples para ignorar essa detecção de bot. Primeiro, faço uma lista de agentes de usuĂĄrios para tornar a solicitação o mais aleatĂłria possĂ­vel. Eu nĂŁo usarei proxies desde que as listas negras do Google liberam proxies instantaneamente. Usarei exatamente os mesmos cabeçalhos que um usuĂĄrio normal que usa um navegador e, ĂŠ claro, esse cookie "GOOGLE_ABUSE_EXEMPTION". Claro, nĂŁo posso gerar um novo token como o Google gera por hora e endereço IP. EntĂŁo, vou tentar fazer solicitaçþes e esperar atĂŠ receber um erro 503, o que significa que eu fui colocado na lista negra. Em seguida, peço ao usuĂĄrio que siga uma URL para concluir manualmente o captcha e copie o token da lista de desbloqueio para colĂĄ-lo na CLI. A ferramenta agora pode continuar digitalizando!
Segundo, os ITSPs nĂŁo compartilham seus intervalos de nĂşmeros de telefone. No momento, ĂŠ muito difĂ­cil reunir o nĂşmero de telefone de todos os provedores do mundo, ou talvez este seja apenas outro nĂ­vel do OSINT. TambĂŠm os nĂşmeros de telefone mudam com muita frequĂŞncia. Ă‰ muito difĂ­cil encontrar os ITSPs usando apenas pegadas. Mas notei que alguns sites de pesquisa (como o 411.com) conseguiram recuperar o ITSP que possui o nĂşmero.

Tornando a ferramenta “inteligente” o suficiente

No momento, minha ferramenta apenas verifica tudo usando todas as fontes. Mas como sabemos o paĂ­s e o tipo de linha no inĂ­cio da verificação, nĂŁo devemos usar fontes que forneçam resultados para outro paĂ­s. Por exemplo, se eu coletar informaçþes sobre um nĂşmero francĂŞs (+33), ĂŠ inĂştil procurar resultados em um banco de dados de nĂşmeros de telefone de fraudes dos EUA, nĂŁo ĂŠ? AlĂŠm disso, meu reconhecimento do OSINT nĂŁo deve retornar resultados inĂşteis, como catĂĄlogos telefĂ´nicos AnĂ´nimos, que tenham vĂĄrias pegadas de nĂşmeros de telefone e escolha sabiamente qual deles eu retornarei ao usuĂĄrio final. EntĂŁo, a Ăşltima coisa a fazer serĂĄ fazer um rĂĄpido refatorador para limitar a quantidade de chamadas de API e usar apenas fontes Ăşteis.
Finalmente, tenho que deixar o usuĂĄrio final ter mais controle sobre os resultados. Ă€s vezes, o nĂşmero de telefone tem pegadas, mas ĂŠ usado com uma formatação diferente. Isso ĂŠ um problema porque, por exemplo, se procurarmos por â€œ+15417543010” , nĂŁo encontraremos pĂĄginas da Web que o escrevam dessa forma: â€œ(541) 754–3010” . Portanto, a ferramenta usarĂĄ uma formatação personalizada (opcional) fornecida pelo usuĂĄrio para encontrar resultados mais precisos.

Vamos codificar!

Eu escolho ir com o Python. Usando algumas bibliotecas, como phonenumberspara analisar informaçþes de nĂşmeros de telefone, solicitaçþes para fazer chamadas de API, argparse para analisar parâmetros cli e outras bibliotecas relacionadas Ă  formatação. O cĂłdigo estĂĄ disponĂ­vel neste repositĂłrio GitHub.

ConclusĂŁo

O OSINT ĂŠ uma maneira muito eficaz de coletar informaçþes e investigar. Especialmente usando fontes abertas, como os motores de busca, que tem uma enorme quantidade de fontes indexadas. Lembre-se, eu falei sobre a parte mais bĂĄsica do OSINT, que ĂŠ a pegada (ou reconhecimento passivo). Mas nĂłs poderĂ­amos fazer muito mais usando isso. AlĂŠm disso, que o objetivo do OSINT se nĂŁo automatizar tudo, mas automatizar a coleta de informaçþes. Esta ferramenta pode nĂŁo ser capaz de recuperar o seu nome ou endereço, digitalizando o seu nĂşmero (felizmente!), De qualquer forma, este nĂŁo ĂŠ o propĂłsito. O objetivo ĂŠ fornecer uma maneira fĂĄcil de investigar e analisar informaçþes de qualquer nĂşmero de telefone.
NĂłs sĂł usamos recursos livres, se vocĂŞ quiser ir mais longe no OSINT, tenha em mente que hĂĄ muitos recursos premium que provavelmente jĂĄ fizeram o trabalho para vocĂŞ. Eles geralmente tĂŞm uma coleta de informaçþes muito valiosa, mas vocĂŞ terĂĄ que pagar por isso.



http://www.pentest-standard.org/index.php/Intelligence_Gathering

ComentĂĄrios

Ebook

Postagens mais visitadas