DOE AGORA Qualquer valor

Phonerator – Um gerador avançado de números de telefone válidos

Phonerator – Um gerador avançado de números de telefone válidos

Logótipo do fonógrafo

Phonerator – Um gerador avançado de números de telefone válidos

No ano passado, no Recon Village e Bsides Las Vegas da DEF CON , dei uma palestra explicando uma nova técnica OSINT para obter o número de telefone de um alvo sabendo seu endereço de e-mail.

Sinta-se à vontade para ler o post detalhado explicando as técnicas ou assistir à palestra.

Se você insistir em um TL;DR, demonstro como a falta de padronização no mascaramento de PII durante o processo de redefinição de senha, juntamente com o conhecimento do Plano de Numeração Telefônica do país de destino, pode ser usado para gerar uma lista de números de telefone válidos que são candidatos a ser o número do alvo. Essa lista pode ser usada para tentativas de redefinição de senha do bruteforce para descobrir o número de telefone verdadeiro do alvo.

Confuso? Sério, leia o post ou assista a palestra antes de continuar.

Uma nova ferramenta OSINT

Durante a apresentação, fiz uma demonstração e posteriormente publiquei email2phonenumber , uma ferramenta que automatiza todo o processo descrito acima.

Esta ferramenta faz 3 coisas para você:

  1. Ele raspa sites para coletar dígitos de números de telefone de tentativas de redefinição de senha
  2. Gera uma lista de números de telefone válidos usando dados de código aberto publicados pela organização responsável pelo Plano de Numeração de Telefone dos países
  3. Ele força redefinições de senha usando a lista de números de telefone e correlaciona o e-mail parcial exibido a um determinado para uma correspondência

A ferramenta é útil, mas eu a escrevi principalmente como um PoC devido a algumas ressalvas:

  • Como qualquer ferramenta OSINT , ela tende a quebrar constantemente, pois depende dos elementos da interface do usuário de muitos sites que tendem a mudar com o tempo.
  • A capacidade de processar e pesquisar dados é limitada, pois não depende de um banco de dados.
  • Scraping de sites e tentativas de lançamento de força bruta já podem ser feitos com ferramentas especializadas como o intruder do Burp e o wfuzz (também muito mais eficiente).

Percebi que , em vez de reinventar a roda, deveria focar no aspecto inovador da minha pesquisa, usando o conhecimento do Plano de Numeração Telefônica e dados de código aberto para criar listas de números de telefone válidos, permitindo:

PESQUISA FÁCIL COM BASE EM NÚMEROS DE TELEFONE MASCARADOS

Você pode fornecer apenas os dígitos que conhece e preencher os dígitos desconhecidos restantes com '?'. A ferramenta deve gerar todos os números de telefone válidos com base nessa máscara.

FILTRAGEM AVANÇADA

S suporte para vários filtros. Para números dos EUA, você deve poder restringir sua pesquisa por local (estado e centro de tarifas), operadora e até mesmo a data desde que o número de telefone está ativo.

EXIBIÇÃO DE MAIS INFORMAÇÕES

A ferramenta não apenas lista números de telefone válidos, mas também inclui o estado, centro de taxas, operadora original e se o intervalo está contaminado (mais sobre isso posteriormente).

SUPORTE A VÁRIOS PAÍSES

S suporte para vários países. Se você conhece as organizações oficiais que lidam com números de telefone em seu país, informe-me e eu posso adicionar suporte para isso.

BAIXE EM VÁRIOS FORMATOS

Essa é boa. Me deparei com um artigo interessante falando sobre abuso de “descoberta de contato” . Eu estava ciente desse pequeno truque do OSINT , mas fiquei feliz em ver um estudo empírico acadêmico sobre o assunto. Essencialmente, existem muitos aplicativos e serviços que permitem “compartilhar” seus contatos para facilitar a localização de amigos nessa plataforma específica. Por exemplo, você pode permitir o acesso do Telegram à sua lista de contatos em seu telefone para ver quem tem uma conta do Telegram. Da mesma forma, você pode compartilhar seus contatos com o LinkedIn para encontrar seus colegas mais facilmente. Basicamente, se você tiver o número de telefone de alguém em sua lista de contatos, poderá determinar se essa pessoa possui uma conta em vários serviços e obter alguns metadados.

Como estou escrevendo uma ferramenta que fornecerá uma lista de números de telefone válidos com base em seus critérios de pesquisa, por que não adicionar suporte para exportar a lista como .vcf? Este formato de arquivo é padrão para contatos e permite importar a lista de números válidos como contatos para seu dispositivo de teste Você pode então sincronizá -lo com qualquer aplicativo que você acha que seu alvo pode estar usando para encontrar o número certo!

Mencionei durante minha palestra que estava trabalhando na ferramenta e, embora tenha demorado mais do que o esperado, finalmente chegou !

Foneador

O Phonerator é um mecanismo de busca online que permite fornecer alguns dígitos e gerar uma lista de possíveisnúmeros de telefone válidos . Também permite restringir ainda mais a busca fornecendo operadoras, data de atendimento, localização física, câmbio, etc.

Por fim, você pode baixar um arquivo de texto de dicionário com todos os números possíveis para serem usados ​​com outras ferramentas.

Visualização do Phonerator
Fonerador – https://www.martinvigo.com/tools/phonerator

Arquitetura

Phonerator tem 3 componentes:

  • Spider : Um script que periodicamente baixa e analisa informações de organizações oficiais responsáveis ​​pelo Plano de Numeração Telefônica de diferentes países que tornam esses dados públicos.
  • Backend : Um banco de dados alimentado pelo script que contém os milhões de registros organizados e otimizados para pesquisa
  • Frontend : Um site simples que permite aos usuários fazer pesquisas avançadas, exibir todas as informações do número de telefone e permitir o download de listas de números de telefone válidas

Casos de uso

Para ilustrar como o Phonerator pode ser benéfico para os profissionais da OSINT , investigadores particulares, pesquisadores, red teamers e potencialmente para você, listo vários casos de uso hipotéticos. Leve-os com um grão de sal.

PERSEGUIDOR

Você é vítima de um stalker que fica criando contas de e-mail para lhe enviar ameaças de morte. Eles usam contas de fantoches de meia em diferentes provedores de e-mail para garantir que você não esteja excluindo automaticamente os e-mails.

Você recebe um e-mail de uma conta do Yahoo:

Você sabe que a página de redefinição de senha do Yahoo vaza o primeiro dígito e os dois últimos, então você usa o endereço de e-mail para iniciar uma redefinição de senha. Tendo o primeiro dígito, você usa Phonerator para obter uma lista de possíveis estados de onde a pessoa pode ser. Você descarta todos os números que possuem código de área + câmbio correspondem a operadoras que não são grandes operadoras de celular (AT&T, Verizon, T-Mobile e Sprint). A lista de números de telefone é reduzida significativamente, então você baixa a lista e a usa com o complemento de páginas brancas do Twilio para fazer uma pesquisa reversa e obter as informações dos proprietários desses números.

Você olha a lista e, entre os muitos registros, reconhece uma pessoa…

EXERCÍCIO DA EQUIPE VERMELHA

Você tem o endereço de e-mail do seu alvo e precisa acessar sua caixa de entrada para lançar uma campanha confiável de spearphishing contra outros funcionários da empresa que você está testando. Você procura o e-mail dele no Dehashed e encontra credenciais para outros sites que ele usou no passado. Como ~ 80% dos usuários da Internet, ele está usando a mesma senha em todos os lugares. Você faz login no provedor de e-mail do alvo, mas é desafiado para 2FA. Hora de phishing o alvo do código 2FA, mas para fazer isso, você precisa do número de telefone…

Usando serviços como namechk , você encontra sua conta no Paypal e LinkedIn. A página de redefinição de senha do Paypal vaza 5 dígitos, o primeiro e o último 4. Você procura o endereço de e-mail em um dos muitos corretores de dados, mas sem sorte, você só encontra o endereço onde ele mora. Você usa os filtros do Phonerator para indicar o Estado.

O LinkedIn diz que o alvo é um funcionário da empresa há 7 anos. Você supõe que o número de trabalho dele provavelmente nunca mudou, então você usa o Phonerator para descartar todos os números em que a combinação de código de área + câmbio foi atribuída a uma operadora nos últimos 6 anos ou menos. A última etapa é baixar a lista de números de telefone válidos restantes do Phonerator no formato .vcf para aproveitar os serviços que permitem encontrar pessoas pelo número de telefone. Você percorre a lista de fotos de perfil e nomes procurando uma correspondência.

ENCONTRAR OPERADORAS INTERESSANTES

Existem mais de 3.000 operadoras registradas nos Estados Unidos, mas o público em geral geralmente só conhece as 4 grandes: AT&T, Verizon, T-Mobile e Sprint. Então... sobre o que são todos os outros? Você pode usar o Phonerator para obter a lista completa de operadoras atualmente registradas em diferentes países e escolher aquelas que parecem interessantes para uma investigação mais aprofundada. Por exemplo:

  • Sattelink Paging, Inc. : Operadora de empresa especializada em comunicações via Satélite
  • Smart City Solutions II, LLC : “Provedor líder da América de serviços de tecnologia de ponta para centros de convenções, arenas e estádios de esportes e entretenimento ao vivo, feiras e eventos”.

Eu estou querendo saber o que algum bom oldskool wardialing para a lista de números de telefone válidos dessas operadoras poderia encontrar…

Demonstração

Limitações

Phonerator não é perfeito, porque os dados não são perfeitos. Você pode estar procurando por um alvo que você sabe que é um cliente AT&T, então você usa o filtro de operadora do Phonerator para descartar todos os números que não são da AT&T. Há 2 problemas aqui.

PORTABILIDADE

Os clientes podem mudar de operadora mantendo seus números. Isso também é conhecido como “portar” seu número. Os dados da NANPA levam em consideração apenas quais operadoras possuem código de área específico + faixas de câmbio atribuídas originalmente . Se um cliente transfere um número para uma operadora diferente nesse intervalo, a NANPA não o rastreia. A exceção é se a operadora “doar” de volta toda a faixa para ser reatribuída pela NANPA a uma operadora diferente. Neste caso, estamos falando de “ contaminação ”.

Por slides públicos em seu site :

Contaminação significa que pelo menos um número de telefone dentro de um bloco de milhares não está disponível para atribuição a usuários finais ou clientes. Blocos contaminados até 10%, inclusive, são elegíveis para doação. Um número de telefone “não está disponível para atribuição” se for classificado como administrativo, antigo, atribuído, intermediário ou reservado conforme definido nas regras da FCC (FCC 00-104, §52.7 (h)).

Todos os números contaminados nos blocos que estão sendo doados devem ser portados pelo provedor de serviços no NPAC antes do bloco ser doado

A NPAC é a administração dos EUA encarregada de gerenciar a portabilidade dos números de telefone. Eu recomendo a leitura da documentação deles, um ótimo recurso para pesquisas adicionais sobre o sistema telefônico dos EUA.

página do glossário Neustar define contaminação como:

A “contaminação” refere-se ao fato de alguns números de telefone já estarem funcionando quando um bloco está disponível para atribuição. Como resultado, nem todos os números de telefone do bloco estão disponíveis para uso do novo proprietário do bloco. (Como esses clientes existentes desconectam seu serviço ao longo do tempo, os números de telefone agora vagos são devolvidos ao proprietário do bloco para uso.).

Dito isto, há boas notícias. Administração Nacional de Agrupamentos dos EUA o acompanha “um pouco”. Podemos ver se um determinado bloco está “contaminado” e até por quantos números.

Números contaminados
Números contaminados para o intervalo 408-201

Digamos que temos os 3 primeiros dígitos do alvo e os 4 últimos. Em outras palavras, temos o código de área e o número do bloco. Antes de usar o Phonerator para filtrar números que não são atribuídos à AT&T, verifique se há combinações de código de área + câmbio + número de bloco que estão contaminados. Nesse caso, não os filtre, pois pode ser atribuído a uma operadora diferente, mas pode conter números “contaminados” pertencentes à AT&T, incluindo o número do seu alvo.

Existem muitos recursos (e gratuitos) para consultar a operadora real de um número de telefone .

*Dica profissional : muitas operadoras são vulneráveis ​​à enumeração de usuários . Você pode usar o endereço de e-mail do seu alvo para descobrir qual operadora ele está usando;)

AQUISIÇÕES, REVENDEDORES E FORA DO NEGÓCIO

Muitas operadoras no banco de dados do NANPA datam dos anos 80 e não estão mais no mercado. As grandes como AT&T e Verizon “adquiriram” muitos dos intervalos de números de telefone atribuídos a essas antigas operadoras, mas a NANPA não fornece informações sobre isso. Esses intervalos ainda são “atribuídos” às antigas operadoras. O mesmo pode acontecer com grandes revendedores como LEVEL 3 Communications. O mesmo vale para grandes operadoras que compram outras, como a AT&T, que adquire a Cingular .

Isso significa que você precisa estar atento a isso ao usar o filtro transportador. Você pode estar filtrando os intervalos atualmente atribuídos a uma operadora principal filtrando as operadoras antigas . Está no meu TODO adicionar um filtro “combinado” para as principais operadoras. Você então poderá escolher “AT&T” e incluirá automaticamente Cingular e outros que pertencem à AT&T hoje em dia. Isso requer um amplo conhecimento das operadoras e sua história, que eu não tenho, portanto, sinta-se à vontade para entrar em contato se precisar.

Outras curiosidades interessantes

Como eu passei pelo esforço de reunir, estruturar e armazenar todas as informações em um banco de dados, pensei em escrever algumas consultas para fornecer mais informações sobre o sistema de numeração de telefone americano.

A partir desta escrita:

  • Existem 3.771 operadoras registradas nos territórios da NANPA.
  • A central de tarifas com a maioria dos números de telefone atribuídos é “ NWYRCYZN01 ”, que corresponde à Verizon na área de Manhattan e lida com os códigos de área 212 , 646 e 917 .
  • O código de área mais comum é 347 e o menos comum é 684 que corresponde às ilhas de Tutuila, Aunu'u, Ofu, Olosega, Ta'ū, Swains Island e Rose Atoll na Samoa Americana.
  • A troca mais comum para números de telefone válidos é 200 , a menor é 700.
  • O número de bloco mais comum para números agrupados é ' 0 ', ' 5' é o menos comum
  • Não há troca que termine em ' 11 '. Ou seja, não existe um número de telefone cujo 5º e 6º dígito seja ' 11 ' (nem há troca entre 000 e 199).

*Dica profissional : É comum os sites exigirem um número de telefone quando você se cadastra, mesmo que muitas vezes não haja motivo para isso. Forneça um número de telefone inválido para não vazar o seu ou correr o risco de outra pessoa receber informações sobre sua conta. Simplesmente lembre-se de definir a troca para um número abaixo de 200. ( 415-025-1823 ).

CTF

Criei um pequeno desafio OSINT que requer o uso do Phonerator para que você possa ter um gostinho do seu potencial :).

Onde no mundo está Carmen Sandiego?

Carmen escapou novamente e preciso de sua ajuda para localizá-la. Graças aos meus amigos da NSA , tive acesso à rede SS7 e posso encontrá-la se obtivermos seu número de telefone. Eles conseguiram obter um vazamento de um serviço de comunicação seguro que ela estava usando que continha seu endereço de e-mail e uma versão com hash de seu número de telefone + cidade de onde ela se conectou. Infelizmente, foi hash com 5 milhões de rodadas de PBKDF2. Estimamos que a força bruta em um período de tempo razoável só é viável com a cidade correta e menos de 500 números.

E-mail: carm3n5andi3go@martinvigo.com
Número de telefone com hash: a599f5e85a15799c5fa0a11887dbfc9ebd4de92e0ebbac6768dec60377454ab1
Algoritmo usado para hash de números de telefone:

#!/usr/bin/python3

importar hashlib
importar binascii

##
# Recebe o número do telefone sem o código do país nem espaços. Exemplo: 5551234567
# Leva cidade minúscula sem espaços. Exemplo: São Francisco
##
def get_phone_hash(telefone, cidade):
	stringInput = telefone + cidade;
	binhash = hashlib.pbkdf2_hmac('sha256', stringInput.encode("utf-8"), b'', 5000000);
	return binash.hex();

CUIDADO : A NSA me avisou que OPSEC é extremamente importante. Não tente redefinir nenhuma senha . Isso não o ajudará a encontrar nenhuma informação útil e ela saberá que a estamos rastreando.

Encontre o número de telefone dela!

A bandeira é o telefone de Carmen Sandiego. Envie-me um DM no Twitter com o número e eu lhe darei crédito de rua ;)

Comentários

Ebook

Postagens mais visitadas