Como uso o AirDrop em vez do Tinder

Como uso o AirDrop em vez do Tinder

Os dispositivos Apple possuem um excelente recurso Airdrop - ele é feito para enviar dados entre dispositivos. Neste caso, nenhuma configuração ou emparelhamento preliminar de dispositivos é necessária; tudo funciona imediatamente em dois cliques. Um complemento via Wi-Fi é usado para transferir dados e, portanto, os dados são transferidos em velocidades enormes. Ao mesmo tempo, usando alguns truques, você pode não apenas enviar arquivos, mas também descobrir o número de telefone da pessoa que está no mesmo vagão do metrô que você.

Há um ano que utilizo esta função para fazer amizades interessantes no caminho para o trabalho, nos transportes públicos e em estabelecimentos de restauração pública. Em média, consigo fazer várias novas amizades por dia e às vezes saio do metrô na companhia de uma pessoa nova.

Abaixo do corte contarei a vocês sobre todos os caquis.

Como funciona o AirDrop?

Como uso o AirDrop em vez do Tinder

AirDrop é um protocolo para transferência de arquivos em uma rede ponto a ponto. Ele pode funcionar tanto em uma rede local normal quanto no ar entre qualquer dispositivo Apple. Analisaremos o último caso, quando dois dispositivos não estão conectados a uma rede comum, mas simplesmente estão próximos, por exemplo, duas pessoas com telefones estão viajando em um vagão de metrô e não estão conectadas a uma rede Wi-Fi comum.

Como uso o AirDrop em vez do Tinder
A primeira etapa da transmissão via AirDrop é o envio de um pacote BLE

Para iniciar a transferência de dados via AirDrop, o telefone do iniciador envia um pacote de transmissão BLE, que contém informações hash sobre a conta iCloud e o número de telefone do proprietário dos dispositivos do iniciador, com a proposta de estabelecer uma conexão via AWDL (Apple Wireless Direct Link ), algo como Wi-Fi. Fi Direct do mundo Android. A estrutura deste pacote BLE é muito interessante, iremos analisá-la mais detalhadamente.

Do lado do destinatário, o AirDrop pode estar em três estados:

  • Desligado - não será detectado de forma alguma
  • Somente para contatos — aceite arquivos apenas de contatos em seu catálogo de endereços. Neste caso, considera-se contato o número de telefone ou e-mail ao qual a conta iCloud está vinculada. A mesma lógica para vincular contas funciona aqui como no mensageiro iMessages.
  • para todos - o telefone ficará visível para todos

Como uso o AirDrop em vez do Tinder
Configurações de privacidade do AirDrop. O status padrão é definido como “Para contatos”.

Dependendo das suas configurações de privacidade, o telefone continuará a estabelecer uma conexão via AWDL ou simplesmente ignorará o pacote BLE. Se o AirDrop estiver definido como “para todos”, na próxima etapa os dispositivos se conectarão via AWDL, criarão uma rede IPv6 entre eles, dentro da qual o AirDrop funcionará como um protocolo de aplicativo regular usando mDNS sobre o protocolo IP padrão.

Como uso o AirDrop em vez do Tinder

Para experiências, você pode observar como o AWDL funciona em um MacBook. Todas as trocas sob este protocolo ocorrem através da interface awdl0, que pode ser facilmente capturado usando Wireshark ou tcpdump.

Nesta fase conhecemos três entidades:

Pacote Bluetooth LowEnergy (BLE) - este pacote contém dados com base nos quais o telefone decide se o iniciador está ou não em sua lista de contatos.
Link direto sem fio da Apple (AWDL) — um substituto proprietário do Wi-Fi Direct da Apple, ativado se a comunicação via BLE for bem-sucedida.
Airdrop - um protocolo de aplicação que opera dentro de uma rede IP regular usando mDNS, HTTP, etc. Pode funcionar em qualquer rede Ethernet.

Estrutura do pacote BLE

Pode parecer que esse pacote BLE voa apenas uma vez do iniciador para o destinatário e, então, a troca ocorre apenas via AWDL. Na realidade, uma conexão AWDL tem uma vida útil muito curta, apenas alguns minutos ou menos. Portanto, se o destinatário do arquivo quiser responder a você, ele também atuará como iniciador e enviará um pacote BLE.

Como o telefone receptor entende se o número/e-mail do iniciador está em sua lista de contatos ou não? Fiquei muito surpreso quando descobri a resposta: o iniciador envia seu número e e-mail como um hash sha256, mas não inteiramente, mas apenas os primeiros 3 bytes.

Como uso o AirDrop em vez do Tinder
Estrutura de um pacote BLE do iniciador AirDrop. Usando hashes do número de telefone e e-mail, o respondente entende se o iniciador está em sua lista de contatos.

Por exemplo, se a sua conta Apple (também conhecida como iCloud, também conhecida como iMessages) estiver vinculada ao número +79251234567, o hash dela será calculado assim:

echo -n "+79251234567" | shasum -a 256
07de58621e5d274f5844b6663a918a94cfd0502222ec2adee0ae1aed148def36

E como resultado, o valor no pacote BLE irá desaparecer 07de58 para um número de telefone. Isso parece não ser suficiente, mas muitas vezes esses três bytes são suficientes para descobrir o número de telefone real.

Também é importante lembrar que a configuração de privacidade do AirDrop não afeta os dados do pacote BLE. O hash do número de telefone estará contido nele, mesmo que a configuração “Para todos” esteja definida. Além disso, um pacote BLE com um hash do número de telefone é enviado quando a janela Compartilhar é aberta e quando a senha da rede Wi-Fi é inserida.

Para uma análise detalhada da estrutura dos pacotes BLE e possíveis ataques a eles, leia o estudo Apple Bleee e russo tradução para Habré.

O estudo Apple Bleee publicou scripts python prontos para automatizar a análise de dados em pacotes BLE. Eu recomendo fortemente conferir as pesquisas e experimentar os programas, tem muita coisa interessante por aí.

AWDL (link direto sem fio da Apple)

AWDL é um complemento proprietário da Apple para Wi-Fi normal que implementa algo como Wi-Fi Direct. Não sei bem como funciona, existe uma forma especial de anunciar e coordenar canais e só funciona em drivers proprietários da Apple. Ou seja, apenas MacBooks/iPhones podem se conectar via AWDL.

Os tristes proprietários de telefones Android ainda sonham com uma função Wi-Fi Direct funcionando corretamente.

Como uso o AirDrop em vez do Tinder

Mas não faz muito tempo, os caras de pareceoo-lab escreveu uma implementação de código aberto de AWDL e a chamou Abrir link sem fio (CORUJA). Para executar o OWL, o adaptador Wi-Fi deve suportar o modo monitor e injeção de pacotes, portanto, não funciona em todos os hardwares. O site traz exemplos de configuração no Raspberry pi. Isso funciona significativamente pior do que o AWDL original, por exemplo, o tempo de configuração da conexão é estendido em aproximadamente 10 segundos em vez de alguns segundos para o original, mas funciona.

Como uso o AirDrop em vez do Tinder

Além disso, esses caras escreveram do zero uma implementação do protocolo AirDrop em Python, chamada OpenDropName. Ele pode ser usado em conjunto com o OWL para iniciar o AirDrop no Linux e com o AWDL original no macOS.

Como fazer roll-up via AirDrop

Como uso o AirDrop em vez do Tinder
Situação típica de roll-up via AirDrop

Chega de teoria chata, é hora de começar a praticar. Então você está armado com todo o equipamento necessário e pronto para avançar e rolar bolas com alta tecnologia.

Primeiro você precisa lembrar os pontos principais:

  • AirDrop só funcionará se o telefone estiver desbloqueado – é melhor que o alvo esteja constantemente olhando para o telefone. Na maioria das vezes isso acontece em lugares chatos, por exemplo, no metrô.
  • Precisa de tempo - normalmente, uma conversão positiva ocorre na 3-5ª imagem enviada, então você precisa de pelo menos 5 minutos de silêncio em um só lugar. Considero uma conversão positiva o momento em que você concordou via AirDrop em continuar se comunicando no messenger. Isso é difícil de implementar imediatamente, porque não fica imediatamente claro quem aceitou sua carga útil e, muito provavelmente, você se aquecerá antes de chegar a um acordo sobre algo.
  • Criativos personalizados funcionam melhor — Eu chamo payload de conteúdo de mídia que você envia via AirDrop. Apenas uma imagem com um meme provavelmente não levará a lugar nenhum; o conteúdo deve ser relevante para a situação e ter um apelo à ação claro.

O método clássico - apenas um telefone

Adequado para todos que possuem um iPhone, não requer nenhuma habilidade especial além das sociais. Mudamos o AirDrop para o modo Todos e descemos para o metrô. Em um dia normal (antes do auto-isolamento) em um vagão do metrô de Moscou, observei algo assim:

Como uso o AirDrop em vez do Tinder
Lista de alvos

Como você pode ver, quase todos os telefones transmitem o nome do proprietário, pelo qual podemos facilmente determinar seu sexo e preparar a carga apropriada.

Carga útil

Como escrevi acima, uma carga única funciona melhor. O ideal é que a foto se dirija ao proprietário pelo nome. Anteriormente, eu tinha que esculpir a criatividade usando um editor gráfico no aplicativo de notas e algum tipo de esboço móvel do Photoshop. Com isso, no momento em que a imagem desejada foi desenhada, já era necessário sair do carro.

Minha amiga Anya koteeq, especificamente a meu pedido, escreveu um bot do Telegram que gera as imagens necessárias com uma legenda instantaneamente: @AirTrollBot. Agradeço muito a ela pelo fato de agora poder rolar bolas com muito mais tecnologia do que antes.

Basta enviar ao bot uma linha de texto, e ele irá gerá-la na forma de uma imagem que corresponde exatamente à proporção da visualização na janela do AirDrop. Você pode selecionar um personagem na imagem pressionando botões. Você também pode ativar opcionalmente a adição do seu login do Telegram à imagem no canto.

Como uso o AirDrop em vez do Tinder
Gerador de carga útil

O pior é que a imagem apareceu imediatamente na tela da vítima, sem qualquer ação. Você nem precisou clicar em "aceitar". Você pode ver a reação instantânea no rosto ao carregar a carga. Infelizmente, a partir do iOS 13, as fotos de contatos desconhecidos não são mais mostradas na tela. Aqui está como era antes:

Como uso o AirDrop em vez do Tinder
Carga útil entregue em iOS ≤12

Agora, em vez de uma prévia, apenas o nome do dispositivo do remetente é mostrado. Portanto, a única maneira de entrar em contato com uma vítima com iOS ≥13 pelo nome é configurá-lo nas configurações do seu dispositivo, por exemplo, ligar para o telefone “Yulia, olá”. Dica: você pode usar emoji no nome do dispositivo. É claro que esse método não é tão claro quanto uma imagem, mas aumenta muito a chance de clicar no botão “aceitar”.

Uma descrição mais aprofundada das ações foge ao escopo de um artigo técnico e depende apenas da sua imaginação, improvisação e humor. Só posso dizer que quem entra neste jogo e começa a te responder com fotos ou mandando recados costuma ser gente muito alegre, aberta e interessante. Aqueles que, depois de olhar a foto, simplesmente não respondem, ou pior, simplesmente rejeitam a mensagem, geralmente são esnobes e puritanos chatos. O fator medo também costuma desempenhar um papel: pessoas frágeis e tímidas têm medo de interagir com um estranho anônimo tão arrogante.

Máquina de coleta automática

Se você tem preguiça de gerar e enviar cargas manualmente e deseja automatizar o processo, pode criar uma máquina automática de seleção de voz, que em segundo plano enviará fotos via AirDrop para todos ao seu alcance. Usaremos raspberry pi zero como plataforma de hardware, mas qualquer computador com Linux serve, o principal é que a placa Wi-Fi suporte modo monitor e injeção de pacotes.

Como uso o AirDrop em vez do Tinder
Remetente de alto-falante via Airdrop baseado em raspberry pi zero w + escudo de bateria UPS Lite

Existem programas AirDrop Flooder para iPhones Jailbreak, eles funcionam de forma mais estável do que versões abertas no Raspberry Pi

A configuração do OWL no Raspberry Pi é descrita em detalhes em site do projeto, mas prefiro usar a versão Kali Linux para Raspberry Pi Zero porque ele já possui patches nexmon instalados para ativar o modo de monitor Wi-Fi no rpi0.

É importante lembrar que o Airdrop (ou melhor, AWDL) é ativado para pacientes somente após o recebimento de um pacote BLE. Portanto, devemos enviá-lo em intervalos de vários segundos. Isso pode ser feito usando o utilitário py-bluetooth-utils. Usando a função start_le_advertising(), envio a string de dados dos exemplos apple bleee: 000000000000000001123412341234123400.

Depois de ter um daemon OWL funcionando, você pode iniciar meu fork opendrop. Existe um script no repositório flooder.py, que envia a todos uma foto kak_dela.jpeg.

De acordo com minhas observações, o Raspberry Pi Zero W é instável no modo monitor. Após cerca de 20 minutos de operação ativa do Flooder, o subsistema Wi-Fi trava. O problema é descrito pelo autor pwnagotchi, e é provavelmente causado por superaquecimento. É necessário fornecer um watchdog ou usar hardware mais estável

Modo Maniacello - eu sei seu número

Se você quer se mostrar um maníaco inadequado e desencorajar para sempre o desejo de continuar se comunicando com você, tente descobrir o número de telefone da pessoa que está por perto.

Como aprendemos anteriormente, os pacotes BLE enviados pelo iniciador contêm os três primeiros bytes do número de telefone sha256. Esse hash pode ser capturado quando a vítima clica no botão “compartilhar” e começa a escanear dispositivos de lançamento aéreo ou digita a senha Wi-Fi de uma nova rede no campo de entrada (desta forma, a Apple procura amigos dentro do alcance de quem você pode solicitar a senha da rede).

Você precisará acionar de alguma forma a mensagem hash da vítima e capturá-la. Estou usando utilitários do repositório Apple Bleee. Como os endereços MAC Bluetooth dos dispositivos são aleatórios e mudam constantemente, você terá que encontrar outra maneira de determinar o dispositivo desejado nesta lista. A tarefa é simplificada pelo fato de o iOS transmitir o estado atual do telefone como: tela desligada, tela ligada, tela de bloqueio, desbloqueado, etc. Portanto, simplesmente observando as ações da vítima, você pode comparar o estado atual do dispositivo com o dispositivo da tabela. A maneira mais fácil é captar o momento em que o usuário tira o celular do bolso, liga a tela e desbloqueia o celular com o dedo ou com o rosto. Tudo isso ficará visível no sniffer.

Como uso o AirDrop em vez do Tinder
ícone Х significa que um pacote com hashes telefônicos foi capturado.

O analisador deles às vezes quebra, mas na maioria das vezes funciona. Não vou recontar completamente a essência da vulnerabilidade, já que ela foi analisada detalhadamente pelos autores do Apple Blee, apenas descreverei minha experiência. Direi apenas que uso um adaptador Bluetooth USB em um chip CSR 8510, pois funciona muito mais estável para mim do que o adaptador Bluetooth embutido em um MacBook e inserido em uma máquina virtual.

Então pegamos o hash do telefone da vítima e recebemos os cobiçados três bytes do hash do número de telefone.

Como uso o AirDrop em vez do Tinder
Pacote BLE interceptado com hash de número de telefone usando o utilitário read_ble_state.py

Sabemos que na Rússia todos os números de telemóvel começam com o código +79 e, muito provavelmente, o telefone da nossa vítima tem o mesmo código. Acontece que temos uma faixa de números de +79000000000 a +79999999999, cerca de um bilhão de números.

Para estreitar o intervalo, pegamos apenas os códigos que estão realmente registrados em alguma operadora e descartamos o restante. Como resultado, o intervalo torna-se metade desse tamanho, cerca de meio bilhão de números.

A seguir, geramos sha256 a partir de todos os números e salvamos apenas os primeiros 3 bytes de cada hash. Inserimos essa lista no banco de dados SQLite e construímos um índice para agilizar a busca.

Esta é a aparência dos dados no banco de dados:

Como uso o AirDrop em vez do Tinder
Todos os números de telefone russos e os três primeiros bytes do hash

A seguir, tendo o hash da vítima, podemos pesquisar todas as correspondências no banco de dados. Normalmente existem 15-30 correspondências por hash.

Como uso o AirDrop em vez do Tinder
Todos os números que correspondem ao hash da vítima

Obviamente, nem todos esses números são realmente usados. Podemos eliminar os desnecessários usando uma solicitação HLR ou um SMS invisível. Dos 30 números, 5 foram encontrados online.

Como uso o AirDrop em vez do Tinder
O resultado da solicitação HLR. Os números da rede estão destacados em verde.

Eu poderia continuar vasculhando os números, por exemplo, adicionar todos eles ao Telegram/Whatsapp e olhar os avatares, verificar bancos de dados como Getcontact e assim por diante. Mas acabou sendo mais fácil ligar para todos os cinco números, um por um, e observar quando o telefone da vítima toca.

Como uso o AirDrop em vez do Tinder
Alvo localizado

Tudo

  • O Flooder no Raspberry Pi é muito instável, você precisa tentar outras placas individuais.
  • Um inundador nativo para iOS seria muito melhor, mas não consegui encontrar um que funcionasse no iOS 12-13 mesmo com jailbreak.
  • O script Flooder.py é muito estúpido. Provavelmente poderia gerar uma imagem personalizada pegando o nome do dispositivo do destinatário e cortando a palavra iPhone.
  • O método de determinação de um número de telefone pode ser otimizado verificando apenas o fato de o número estar vinculado ao iMessage. Isso provavelmente lhe dará uma taxa de acerto próxima de 100%.

Conclusão

Este é o entretenimento perfeito para o metrô. Há um efeito uau, curiosos se interessam por isso. Houve muita improvisação, houve casos muito engraçados. Acontece que muitas pessoas estão dispostas a entrar no jogo e até cancelar seus planos para descer na estação de metrô e subir para tomar um café. Ao longo do ano, conheci muitas pessoas e continuo a comunicar com algumas delas.

Às vezes desligo o login do Telegram e me divirto assim.

Como uso o AirDrop em vez do Tinder

Como uso o AirDrop em vez do Tinder

Fonte: habr.com

Adicionar um comentário