Do email ao número de telefone #oosint

email2phonenumber logo

Do email ao número de telefone, uma nova abordagem OSINT

Ultimamente, tenho gasto tempo pesquisando pontos fracos e vetores de ataque nas opções de redefinição de senha. No BSides Las Vegas, apresentei uma ferramenta chamada “Ransombile” . Ele automatiza o processo de redefinição de senha por SMS para muitos dos 100 principais sites da Alexa e facilita ataques direcionados ao ter acesso físico a dispositivos móveis bloqueados por um curto período de tempo. Também falei sobre o amplo impacto do comprometimento dos sistemas de correio de voz na DEF CON e na CCC , abusando da redefinição de senha por telefone.
Enquanto trabalhava nesses tópicos, passei muitas horas testando e redefinindo senhas em vários sites diferentes. Em algum momento, comecei a perceber um padrão que não havia notado antes. Quando você deseja redefinir uma senha, insira o e-mail e, em seguida, recebe opções diferentes. Isso geralmente inclui receber um email com um link exclusivo para clicar, receber um SMS com um código secreto de seis dígitos ou até a opção de receber uma chamada e ouvir o código secreto.
Ao revisar a opção de redefinir uma senha por SMS ou telefonema, notei que a interface do usuário geralmente mostra parte do número de telefone. No entanto, é mascarado de maneira a revelar apenas alguns dígitos, o suficiente para o usuário reconhecer qual deles, caso tenha vários telefones. Em outras palavras, se eu souber seu email, posso iniciar o processo de redefinição de senha para suas contas e obter vários dígitos do seu número de telefone.
Como mencionado acima, passei muito tempo redefinindo senhas e percebi que nem todos os sites revelam os mesmos dígitos. Alguns mostrariam os quatro últimos, outros mostrariam o primeiro, os dois últimos e assim por diante. Não existe uma maneira padrão de mascarar informações de identificação pessoal (PII), como números de telefone . A máscara acontece inteiramente a critério dos desenvolvedores e isso me pareceu um problema.
A redefinição de senha mostra 5 dígitos
A redefinição de senha mostra 5 dígitos
2FA mostra 3 dígitos
2FA mostra 3 dígitos
Para demonstrar até que ponto esse é o caso, use o Paypal, por exemplo. Se eu iniciar o processo de redefinição de senha, ele revelará o primeiro dígito e os quatro últimos. Mas, se eu entrar e for desafiado pelo 2FA, ele revelará apenas os três últimos. Isso não faz sentido. Com apenas seu endereço de e-mail, posso obter cinco dos seus dez dígitos do número de telefone. Se eu souber seu e-mail e senha, receberei apenas três. O Paypal oculta mais dígitos de um invasor que já conhece sua senha do que de um que conhece apenas seu endereço de e-mail .

Indo mais fundo

Fiz uma lista de sites populares nos quais as pessoas tendem a se registrar e verifiquei o processo de redefinição de senha. Meu objetivo era identificar quais sites solicitariam apenas um e-mail para iniciar o processo (nenhuma informação adicional é necessária), redefinição de senha baseada em dispositivos móveis e número de dígitos "vazando". Aqui está um pequeno subconjunto:
Vazamentos nos três primeiros e nos últimos dois dígitos:
  • eBay
Vazamentos de primeiro e último quatro dígitos:
  • Paypal
Vazamentos primeiro e último dois dígitos:
  • Yahoo
Os últimos quatro dígitos dos vazamentos:
  • Última passagem
Vazamentos nos últimos dois dígitos:
  • Google
  • Facebook
  • Twitter
  • Hotmail
  • Vapor
Se você olhar a lista acima, podemos concluir que, por exemplo, se você possui uma conta no eBay e no LastPass, um invasor pode conhecer sete em cada dez dígitos do seu número de telefone. Apenas sabendo seu endereço de e-mail . Em outras palavras, um invasor pode usar seu endereço de e-mail para reduzir as possibilidades de adivinhar seu número de telefone de um bilhão de possibilidades para mil.
Essa não é a única combinação possível, mas vamos nos concentrar nesse cenário neste post.

Descobrindo os números restantes

Temos sete em cada dez dígitos, o que significa que faltam apenas três. Neste ponto, é importante focar em quaisnúmeros sabemos.
Um número de telefone nos EUA é composto por 3 campos: código de área (ou NPA), central (código da Central) e número de assinante  (parabéns a @jjarmoc, que me contou sobre a central e me fez perceber que havia mais do que eu pensava ) Há também o código do país, mas agora estamos nos concentrando nos números dos EUA.
Campos de número de telefone nos EUA
Campos de número de telefone nos EUA
O eBay + LastPass nos deu o código de área e o número do assinante. É importante destacar que não estamos perdendo apenas 3 dígitos, mas sim os 3 dígitos correspondentes à troca . Esta é uma distinção importante, pois nos ajudará a diminuir ainda mais as possibilidades.

NANPA

Eu dediquei várias horas pesquisando e aprendendo sobre trocas. Meu principal objetivo era entender se eu poderia reduzir com segurança os milhares de números de telefone possíveis detectando números de câmbio não atribuídos a um código de área específico.
Digite o Administrador do Plano de Numeração da América do Norte (NANPA) . O plano de numeração da rede telefônica pública comutada para o Canadá, os EUA e seus territórios e alguns países do Caribe. Este site é uma mina de ouro! Eu aprendi muito sobre como os sistemas telefônicos funcionam apenas com essa fonte. Mais importante, encontrei exatamente o que estava procurando.
A NANPA mantém uma lista atualizada de códigos de área e as trocas correspondentes acessíveis ao público . É atualizado com freqüência e você pode consultar os dados ou baixar um arquivo analisável com todas as informações.
Trocas em São Francisco
Trocas em São Francisco
Quão útil é isso? Bem, vamos usar o código de área 415 de São Francisco. Se faltar apenas os três dígitos correspondentes à troca, tenho mil números possíveis para o meu objetivo. Ao usar o conjunto de dados NANPA, reduzi-o para 784 números possíveis, pois há 216 números de trocas não atribuídos ao código de área 415. Isso é uma redução de mais de 20%, nada mal!
Mas como é bom? Eu brinquei com diferentes códigos de área e, por exemplo, o código de área do Alasca 907 tem apenas 625 trocas atribuídas. São 375 números de telefone que não precisamos mais considerar apenas usando as informações valiosas que a NANPA nos fornece. Ou o código de área 253 de Tacoma com apenas 458 trocas. Nos livramos de mais da metade dos números de telefone possíveis.
E se o alvo tiver apenas uma conta Paypal? Conhecemos cinco em cada dez dígitos. Mas, novamente, quais ? Temos o primeiro dígito do código de área e os quatro últimos dígitos aleatórios. Vamos imaginar que você saiba que o alvo é da Califórnia. Graças à NANPA, conhecemos todos os códigos de área correspondentes à Califórnia. Existem apenas dois códigos de área na Califórnia que começam com 2, 213 e 209. Outros dois que começam com 3, dois que começam com 4 etc. Ao conhecer o primeiro dígito do código de área, você ainda pode deduzir os três primeiros dígitos do número de telefone bastante fácil.

Administração Nacional de Associações

Mas e se o destino tiver apenas uma conta no eBay? Ou Paypal + Google? Temos o código de área e os dois últimos dígitos do número de assinante. Novamente, vamos nos concentrar em quais números sabemos. Eu discuti acima como podemos usar os registros públicos da NANPA para diminuir os possíveis números com base no código de área e na troca. Existem registros públicos que podem nos ajudar a descartar números de telefone inválidos com base no número de assinante? Sim! Graças à administração nacional de pooling .
Pronto? O pool de números é uma maneira de atribuir blocos menores de números (em milhares) a áreas de crescimento. Historicamente, um número de telefone é uma maneira de fazer uma ligação para uma pessoa em um local físico. Tome 415-272-XXXX. Os três primeiros dígitos o limitam a uma área mais ampla como São Francisco, a troca 272 é específica para Sausalito e os quatro dígitos ausentes especificam a pessoa real (assinante) nessa área limitada. Como as operadoras possuem o código de área específico + a troca, isso significa que existem 10.000 números de telefone atribuídos aos residentes de Sausalito que têm um plano com a AT&T (a operadora possui 415-272).
Em 2017, Sausalito possui 7110 habitantes. Isso significa que, dos 10 mil números disponíveis, apenas 7 mil serão usados ​​e se todos forem clientes da AT&T. Com essa maneira de atribuir números, muitos vão desperdiçar e não serão usados.
A irrupção de modems a cabo e serviços de VOIP, que tornaram mais fácil se tornar uma operadora, piorou o problema. A FCC decidiu que os números deveriam ser atribuídos em blocos menores nas áreas de crescimento . Especificamente em blocos de mil números, em vez de dez mil. Portanto, os blocos de números seriam atribuídos como XXX-XXX-X às operadoras, incluindo o primeiro dígito do número de assinante.
A administração nacional de pooling é responsável por gerenciá-lo e possui registros públicos dos blocos atribuídos , incluindo o dígito do assinante . Podemos usar esses dados para descartar ainda mais números inválidos. Por exemplo, considerando o número 415-272-XXXX do Sausalito que falta os últimos 4 dígitos, podemos usar os registros públicos para descartar números de telefone como 415-272- [0-8] XXX e focar apenas nos números com os quais o assinante começa. 9. Em outras palavras, reduzimos os possíveis números de telefone válidos de 10 mil para mil .
9º bloco é o único atribuído
9º bloco é o único atribuído

Ainda assim ... muitos números possíveis restantes

Você tem o endereço de e-mail do seu destino, que é de Tacoma e tem uma conta no eBay e no LastPass. Você inicia o processo de redefinição de senha e obtém sete dos dez dígitos do número de telefone dele. Agora, você pode usar a NANPA para se livrar do 542 e reduzir a lista para 458 números possíveis atribuídos a esse endereço de email. Em seguida, você usa a Administração Nacional de Pooling para verificar se o número do bloco que você possui está atribuído às diferentes trocas possíveis, reduzindo os possíveis números de telefone válidos para 445.
E agora? Ainda é uma quantidade razoável de números de telefone. Eu diria que a redução de um bilhão de números de telefone possíveis para 445 apenas sabendo que um e-mail é bastante significativo. O restante pode até ser testado manualmente. Mas o objetivo é reduzir ao máximo as possibilidades antes de tentar qualquer verificação manual. Vamos voltar à prancheta!
Existem várias maneiras de pegar os números de telefone restantes e verificar se eles estão de alguma forma vinculados ao endereço de e-mail. Usando mecanismos de busca com sinalizadores de busca bem definidos para tentar encontrar pistas, caso o alvo deixe seu número de telefone em um fórum, site, etc. Procure o e-mail por número de telefone em serviços on-line como pipl , BeenVerified ou Spokeo, que possuem grandes bancos de dados com pessoas informação pessoal. Você pode até usar serviços on-line do sistema telefônico que permitem a busca reversa do proprietário de um telefone pelo número. Basicamente, uma lista telefônica ao contrário. Fiquei realmente chocado com a quantidade de informações pessoais que consegui obter de serviços como o WhitePages por meio do complemento Twiliofornecendo apenas um número de telefone e pagando dez centavos.
Essas opções são boas, mas não 100% confiáveis. Você pode não encontrar nada nos mecanismos de pesquisa, os farms de dados on-line não têm o número de telefone do seu alvo e o WhitePages tende a estar um pouco desatualizado, muitas vezes simplesmente não possui as informações necessárias. Então, comecei a pensar em novas maneiras de obter com segurança o número de telefone atribuído a um endereço de e-mail.

Reutilizando o mesmo vetor de ataque, ao contrário

Não demorou muito para chegar ao doce momento "Eureka". Eu refleti sobre os passos que tomei para chegar tão longe. Eu estava abusando da função de redefinição de senha dos serviços online para coletar alguns dígitos de número de telefone atribuídos a um email ...
Hummm .. Redefino a senha colocando um email ... e recebo alguns dígitos de volta. Posso ... redefinir a senha digitando um número de telefone e recuperar alguns caracteres de e-mail?
Redefinição de senha da Amazon usando o número de telefone
Redefinição de senha da Amazon usando o número de telefone
Eureka! Acontece que existem serviços populares, como Amazon e Twitter, que permitem redefinir a senha digitando um número de telefone e recebendo um email para concluir o processo. Mais importante, ele exibirá alguns caracteres do endereço de e-mail para o qual enviará o link . No caso da Amazon, você recebe a primeira e a última letra do nome de usuário e do domínio completo. Você também obtém o comprimento do nome de usuário, pois o número de * corresponde ao número de caracteres mascarados.
O Twitter mostra os dois primeiros caracteres do nome de usuário e o primeiro do domínio. Você também saberá o comprimento contando os asteriscos.
O vetor de ataque é assim:
1. Use o endereço de e-mail do alvo para iniciar o processo de redefinição de senha em vários sites para obter vários dígitos do número de telefone
2. Reduza a lista de números de telefone possíveis descartando códigos de área, trocas e números de assinantes inexistentes usando a NANPA e os dados disponíveis ao público da Administração Nacional de Pooling
3. Inicie o processo de redefinição de senha repetindo a lista de números de telefone restantes e correlacione os caracteres de email vazados com o endereço de email do destino
Seguindo estas etapas, você poderá obter o número de telefone completo com dez dígitos associado ao endereço de e-mail, sem precisar fazer uma única chamada! Apenas abusando das opções de redefinição de senha e aplicando força bruta de forma eficiente, usando informações disponíveis ao público.

Automação

O vetor de ataque acima pode ser feito manualmente. Você pode usar serviços como o namechk para identificar para onde ir os dígitos da colheita . Veja você mesmo os dados da NANPA para descartar números inválidos. Você pode até usar a força bruta dos números de telefone restantes para encontrar o e-mail correspondente usando recursos de proxy da Web, como o intruso de Burp . Mas você não precisa, escrevi uma ferramenta que fará tudo isso por você.
O email2phonenumber é uma ferramenta que permite fornecer um número de telefone parcial e obter uma lista de todos os números de telefone válidos possíveis, eliminando o código de área inexistente e os números de troca. A ferramenta também permite que você forneça números de telefone da força bruta usando o recurso de redefinição de senha da Amazon e do Twitter e correlacione os e-mails mascarados com o que você forneceu procurando uma correspondência . Ele tentará voar sob o radar captcha replicando o comportamento do usuário e randomizando alguns parâmetros nas solicitações. Ele também suporta o uso de servidores proxy. O que estamos fazendo é iniciar a redefinição de senha para diferentes números de telefone. Isso significa que os serviços não podem detectá-lo com base em um número de telefone específico no qual você está martelando.
Existem vários outros serviços que permitem a redefinição de senha usando números de telefone que podem ser usados ​​para a mesma finalidade. A ferramenta suporta Amazon e Twitter para bruteforcing. A idéia é obter suporte da comunidade por meio de solicitações pull para dar suporte a outras.
Você pode encontrar a ferramenta no meu repositório do github .

Demo

telefonador

email2phonenumber é uma ótima ferramenta, mas muito do que faz pode ser feito com ferramentas como Burp ou wfuzz. O verdadeiro poder depende da coleta, análise e uso dos dados públicos disponíveis relacionados ao plano de numeração de telefones de um país.
Portanto, estou trabalhando em um novo serviço online que permite gerar listas de possíveis números de telefone. Ele terá suporte para vários países, fornecerá muito mais informações e detalhes, além de registros históricos e, mais importante, filtros avançados.
Digamos que você saiba que o destino possui a AT&T, você pode filtrar por operadora e reduzir ainda mais a lista de números possíveis. Você pode ter informações de que a pessoa é da Califórnia, o telefonema levará em conta apenas esses códigos de área. Talvez você saiba que o alvo possui o número de telefone há mais de dois anos, então vamos descartar trocas e bloquear números que foram atribuídos recentemente.
Ainda estou trabalhando na ferramenta e coletando todos os dados. Fique atento às atualizações e datas de lançamento na minha conta do twitter

Outros países

Até agora, concentrei-me nos números de telefone dos EUA, mas há outras questões que quero destacar ao considerar metas de outros países. Eu sou da Espanha e os números de telefones celulares espanhóis também têm propriedades interessantes. Para iniciantes, todos os números de celular começam com o dígito 6 (e recentemente 7). Além disso, os números de telefone têm apenas 9 dígitos. Por que isso é importante? Bem, eu sei que um dígito desde o início e serviços como eBay ou LastPass não ajustam sua máscara para vazar menos dígitos para números de telefone mais curtos . Portanto, se meu destino é da Espanha, apenas no LastPass eu conheço 5 dos 9 dígitos. Isso é mais da metade dos dígitos.
Observei o problema de usar a mesma máscara para todos os clientes em outros sites também. Meu próximo passo foi procurar países que tinham números muito curtos. Tome Islândia, Estônia ou San Salvador com números de telefone de 7 dígitos. Todos os clientes do eBay desses países têm 5 dos 7 dígitos expostos a qualquer pessoa que saiba seu endereço de email. Combine-o com as contas LastPass e você terá o número de telefone completo do alvo. Apenas sabendo o endereço de e-mail deles…
Ao entender as propriedades de um sistema de número de telefone do país e aproveitar os sites que não ajustam sua máscara para vazar menos dígitos em números mais curtos, é possível coletar todos os dígitos do número de telefone.

E daí?

Eu mostrei como ir de um endereço de email para um número de telefone. E daí? Isso é realmente tão ruim? Bem, podemos responder a essa pergunta de diferentes ângulos, como privacidade e segurança, mas vamos listar vários vetores de ataque que se originam do conhecimento do número de telefone de um alvo:
  • Troca de SIM . Esse é um problema que ganhou muita notoriedade recentemente e é mais comum do que você imagina . Os invasores podem portar seu número de telefone para um SIM sob seu controle por diferentes meios, como engenharia social, extorsão ou até funcionários de operadoras não autorizados. Isso permitiria que os invasores redefinissem senhas em seu nome ou ignorassem as proteções 2FA.
  • Ataques SS7 . SS7 é um protocolo usado pelas operadoras para interagir entre elas. É muito antigo e os pesquisadores demonstraram em várias conferências de segurança como eles podem rastrear a localização de indivíduos ou até espionar as comunicações.
  • Segmentando seu correio de voz. Confira minha palestra DEF CON para entender o impacto de um invasor comprometer seu correio de voz. Sério, os sistemas de correio de voz são uma ameaça .
  • Rastreamento de localização. Joseph Cox fez uma ótima cobertura dessa questão .
  • Falsificação de identificador de chamadas . Muitos serviços on-line permitem falsificar identificações de chamadas. Esta é uma ótima ferramenta para engenharia social.

Conclusões

A falta de uma maneira padronizada de mascarar PII leva a diferentes abordagens adotadas pelos serviços online. Essas informações vazam parcialmente sobre seu endereço de e-mail e número de telefone em locais como a área de redefinição de senha. Pode ser abusado e automatizado para coletar informações com a intenção de reconstruir os dados direcionados.
É possível, especialmente em ataques direcionados, obter todos os dígitos de um número de telefone associado a um endereço de email. Uma vez que o invasor possua o número de telefone, ele poderá usá-lo para outros ataques com sério impacto que podem levar a comprometimento total da conta, rastreamento de localização e espionagem.
Isso é especialmente verdadeiro em países com números de telefone mais curtos, pois muitos serviços não ajustam sua máscara ao tamanho do telefone.
Mascarar não é bom o suficiente, mesmo que mostre apenas alguns dígitos do número de telefone. Os habitantes de Santa Helena merecem a mesma barra de segurança que o resto de nós, com seus números de telefone de cinco dígitos . Para e-mails, mascarar apenas o nome de usuário não é suficiente, o domínio pode fornecer informações sobre onde essa pessoa pode trabalhar. Até o TLD pode doar se essa pessoa é um estudante ou de qual país pode ser.
Minha proposta é permitir que os usuários definam rótulos . Por exemplo, o usuário pode rotular um endereço de email como "email pessoal" ou o número de telefone como "telefone comercial". Dessa forma, quando o processo de redefinição de senha exibir uma dica, ele mostrará o rótulo em vez de detalhes das PII .
Os usuários não devem fornecer seu número de telefone, a menos que seja estritamente necessário. Muitos serviços on-line solicitam, mas não há necessidade comercial real. Eles só querem mais informações sobre você. Se for um requisito, considere usar um número virtual como o Google Voice ou mesmo um SIM dedicado que você use apenas para esse fim e nunca forneça o número.
Não se trata apenas de OPSEC, mas de manter seus dados seguros.

Divulgação responsável

Entrei em contato com os serviços on-line que mostravam mais de 2 dígitos, especialmente se eles faziam parte do código de área ou da troca. O LastPass atualizou a máscara para mostrar apenas os dois últimos dígitos correspondentes ao número do assinante. O eBay está mostrando agora o primeiro e o último dois dígitos, não muito bons, mas melhores do que eram antes. O Yahoo ainda está considerando riscos e mitigações até o momento.
O Paypal, que exibe cinco dígitos, incluindo o código de área, para qualquer pessoa que saiba o endereço de e-mail (mas apenas três se o invasor souber a senha do alvo), decidiu que está funcionando como planejado e não tomará nenhuma ação.

Recursos

Apresentei esta pesquisa no BSides Las Vegas e no Recon Village @ DEF CON
EXPLODINDO O TELEFONE: A HISTÓRIA NÃO CONTADA DOS ADOLESCENTES E BANDIDOS QUE INVADIRAM MA BELL POR PHIL LAPSLEY
Livro fantástico em todo telefone phreaking.
O SHOW DE PRIVACIDADE, SEGURANÇA E OSINT - EPISÓDIO 111
Este episódio em particular fala sobre as questões de fornecer seu número de telefone para serviços online.