Come utilizzo AirDrop invece di Tinder

Come utilizzo AirDrop invece di Tinder

I dispositivi Apple hanno un'eccellente funzionalità Airdrop: è fatta per inviare dati tra dispositivi. In questo caso non è necessaria alcuna configurazione o associazione preliminare dei dispositivi; tutto funziona immediatamente in due clic. Per trasferire i dati viene utilizzato un componente aggiuntivo tramite Wi-Fi e pertanto i dati vengono trasferiti a velocità enormi. Allo stesso tempo, utilizzando alcuni trucchi, puoi non solo inviare file, ma anche scoprire il numero di telefono della persona che si trova nella stessa carrozza della metropolitana con te.

Da un anno utilizzo questa funzione per fare conoscenze interessanti mentre vado al lavoro, sui trasporti pubblici e nelle strutture di ristorazione pubblica. In media riesco a fare diverse nuove conoscenze al giorno e a volte esco dalla metropolitana in compagnia di una nuova persona.

Sotto il taglio ti parlerò di tutti i cachi.

Come funziona AirDrop?

Come utilizzo AirDrop invece di Tinder

AirDrop è un protocollo per il trasferimento di file all'interno di una rete peer-to-peer. Può funzionare sia su una normale rete locale che via etere tra qualsiasi dispositivo Apple. Analizzeremo l'ultimo caso, quando due dispositivi non sono collegati a una rete comune, ma sono semplicemente vicini, ad esempio, due persone con telefoni viaggiano in un vagone della metropolitana e non sono connesse a un Wi-Fi comune.

Come utilizzo AirDrop invece di Tinder
La prima fase della trasmissione tramite AirDrop sta inviando un pacchetto BLE

Per avviare il trasferimento dati tramite AirDrop, il telefono dell'iniziatore invia un pacchetto di trasmissione BLE, che contiene informazioni hash sull'account iCloud e il numero di telefono del proprietario dei dispositivi dell'iniziatore, con una proposta per stabilire una connessione tramite AWDL (Apple Wireless Direct Link ), qualcosa come Wi-Fi.Fi Direct dal mondo Android. La struttura di questo pacchetto BLE è molto interessante, la analizzeremo meglio.

Dal lato del destinatario, AirDrop può trovarsi in tre stati:

  • Spento - non verrà rilevato affatto
  • Solo per contatti - accetta file solo dai contatti della tua rubrica. In questo caso, il contatto è considerato il numero di telefono o l'e-mail a cui è collegato l'account icloud. La stessa logica per collegare gli account funziona qui come con il messenger iMessages.
  • per tutti - il telefono sarà visibile a tutti

Come utilizzo AirDrop invece di Tinder
Impostazioni sulla privacy di AirDrop. Lo stato predefinito è impostato su "Per contatti".

A seconda delle impostazioni sulla privacy, il telefono continuerà a stabilire una connessione tramite AWDL o semplicemente ignorerà il pacchetto BLE. Se AirDrop è impostato su "per tutti", nel passaggio successivo i dispositivi si collegheranno tra loro tramite AWDL, creeranno tra loro una rete IPv6, all'interno della quale AirDrop funzionerà come un normale protocollo applicativo utilizzando mDNS sul protocollo IP standard.

Come utilizzo AirDrop invece di Tinder

Per gli esperimenti, puoi guardare come funziona AWDL su un MacBook. Tutti gli scambi nell'ambito di questo protocollo avvengono tramite l'interfaccia awdl0, che può essere facilmente catturato utilizzando Wireshark o tcpdump.

In questa fase conosciamo tre entità:

Pacchetto Bluetooth LowEnergy (BLE). - questo pacchetto contiene dati in base ai quali il telefono decide se l'iniziatore è presente o meno nella sua lista dei contatti.
Collegamento diretto wireless Apple (AWDL) — un sostituto proprietario del Wi-Fi Direct di Apple, attivato se la comunicazione tramite BLE ha avuto successo.
Airdrop - un protocollo applicativo che opera all'interno di una normale rete IP utilizzando mDNS, HTTP, ecc. Può funzionare all'interno di qualsiasi rete Ethernet.

Struttura del pacchetto BLE

Può sembrare che questo pacchetto BLE voli solo una volta dall'iniziatore al destinatario e quindi lo scambio avvenga solo tramite AWDL. In realtà, una connessione AWDL ha una durata molto breve, solo pochi minuti o meno. Quindi, se il destinatario del file desidera risponderti, fungerà anche da iniziatore e invierà un pacchetto BLE.

Come fa il telefono del destinatario a capire se il numero/e-mail del promotore è presente o meno nel suo elenco di contatti? Sono rimasto molto sorpreso quando ho scoperto la risposta: l'iniziatore invia il suo numero e la sua email come hash sha256, ma non del tutto, ma solo dei primi 3 byte.

Come utilizzo AirDrop invece di Tinder
Struttura di un pacchetto BLE dall'iniziatore AirDrop. Utilizzando gli hash del numero di telefono e dell'e-mail, il risponditore capisce se l'iniziatore è nel suo elenco di contatti.

Ad esempio, se il tuo account Apple (noto anche come iCloud, alias iMessages) è collegato al numero +79251234567, l'hash da esso verrà calcolato in questo modo:

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

Di conseguenza, il valore nel pacchetto BLE volerà via 07de58 per un numero di telefono. Questo sembra non bastare, ma spesso questi tre byte bastano per scoprire il vero numero di telefono.

È anche importante ricordare che l'impostazione della privacy di AirDrop non influisce sui dati nel pacchetto BLE. L'hash del numero di telefono sarà contenuto al suo interno, anche se è impostata l'impostazione "Per tutti". Inoltre, quando viene aperta la finestra Condividi e quando viene inserita la password per la rete Wi-Fi, viene inviato un pacchetto BLE con l'hash del numero di telefono.

Per un'analisi dettagliata della struttura dei pacchetti BLE e dei possibili attacchi agli stessi, leggi lo studio Mela sanguinante e russo traduzione in Habré.

Lo studio Apple Bleee ha pubblicato script Python già pronti per automatizzare l'analisi dei dati nei pacchetti BLE. Consiglio vivamente di controllare la ricerca e di provare i programmi, ci sono molte cose interessanti là fuori.

AWDL (collegamento diretto wireless Apple)

AWDL è un componente aggiuntivo proprietario di Apple per il normale Wi-Fi che implementa qualcosa come Wi-Fi Direct. Non so del tutto come funzioni, esiste un modo speciale per annunciare e coordinare i canali e funziona solo su driver Apple proprietari. Cioè, solo i MacBook/iPhone possono connettersi tramite AWDL.

I tristi possessori di telefoni Android sognano ancora solo una funzione Wi-Fi Direct che funzioni correttamente.

Come utilizzo AirDrop invece di Tinder

Ma non molto tempo fa i ragazzi di seemoo-lab ha scritto un'implementazione completamente open source di AWDL e l'ha chiamata Apri Collegamento wireless (GUFO). Per eseguire OWL, l'adattatore Wi-Fi deve supportare la modalità monitor e l'iniezione di pacchetti, quindi non funziona su ogni hardware. Il sito presenta esempi di configurazione su Raspberry pi. Funziona molto peggio dell'AWDL originale, ad esempio, il tempo di configurazione della connessione è prolungato di ~10 secondi invece di un paio di secondi per l'originale, ma funziona.

Come utilizzo AirDrop invece di Tinder

Inoltre, questi ragazzi hanno scritto da zero un'implementazione del protocollo AirDrop in Python, chiamata ApriDrop. Può essere utilizzato sia insieme a OWL per avviare AirDrop su Linux sia con l'AWDL originale su macOS.

Come arrotolare tramite AirDrop

Come utilizzo AirDrop invece di Tinder
Situazione tipica con l'arrotolamento tramite AirDrop

Basta con la teoria noiosa, è ora di iniziare a praticare. Quindi sei armato con tutta l'attrezzatura necessaria e sei pronto per andare avanti e rotolare le palle usando l'alta tecnologia.

Per prima cosa devi ricordare i punti principali:

  • AirDrop funzionerà solo se il telefono è sbloccato – è meglio se il bersaglio guarda costantemente il telefono. Molto spesso ciò accade in luoghi dove è noioso, ad esempio nella metropolitana.
  • Serve tempo — di solito, una conversione positiva avviene sulla 3-5 immagine inviata, quindi sono necessari almeno 5 minuti di silenzio in un unico posto. Considero una conversione positiva il momento in cui hai accettato tramite AirDrop di continuare a comunicare nel Messenger. Questo è difficile da implementare al volo, perché non è immediatamente chiaro chi ha accettato il tuo carico utile e molto probabilmente ti riscalderai prima di poter concordare qualcosa.
  • La creatività personalizzata funziona meglio — Chiamo payload il contenuto multimediale che invii tramite AirDrop. Solo un'immagine con un meme molto probabilmente non porterà da nessuna parte; il contenuto dovrebbe essere pertinente alla situazione e avere un chiaro invito all'azione.

Il metodo classico: basta un telefono

Adatto a tutti coloro che possiedono un iPhone, non richiede particolari competenze se non quelle sociali. Passiamo AirDrop alla modalità Tutti e scendiamo in metropolitana. In una giornata normale (prima dell’autoisolamento) in un vagone della metropolitana di Mosca, ho osservato qualcosa del genere:

Come utilizzo AirDrop invece di Tinder
Elenco degli obiettivi

Come puoi vedere, quasi tutti i telefoni trasmettono il nome del proprietario, grazie al quale possiamo facilmente determinare il suo sesso e preparare il payload appropriato.

Carico utile

Come ho scritto sopra, un payload unico funziona meglio. Idealmente, l'immagine dovrebbe rivolgersi al proprietario per nome. In precedenza, dovevo scolpire la creatività utilizzando un editor grafico nell'applicazione Notes e una sorta di stub mobile di Photoshop. Di conseguenza, nel momento in cui è stata disegnata l'immagine richiesta, era già necessario scendere dall'auto.

La mia amica Anya koteeq, proprio su mia richiesta, ha scritto un bot di Telegram che genera al volo le immagini necessarie con una didascalia: @AirTrollBot. La ringrazio moltissimo per il fatto che ora posso far rotolare le palline in modo molto più tecnologico di prima.

È sufficiente inviare al bot una riga di testo e lui la genererà sotto forma di un'immagine che corrisponde esattamente alle proporzioni dell'anteprima nella finestra AirDrop. È possibile selezionare un personaggio nell'immagine premendo i pulsanti. Facoltativamente puoi anche abilitare l'aggiunta del tuo login Telegram all'immagine nell'angolo.

Come utilizzo AirDrop invece di Tinder
Generatore di carico utile

La cosa peggiore è che l’immagine è stata mostrata immediatamente sullo schermo della vittima senza alcuna azione. Non c'era nemmeno bisogno di cliccare su "accetta". Potresti vedere la reazione istantanea sul viso caricando il carico utile. Sfortunatamente, a partire da iOS 13, le immagini di contatti sconosciuti non vengono più visualizzate sullo schermo. Ecco come appariva prima:

Come utilizzo AirDrop invece di Tinder
Payload distribuito su iOS ≤12

Ora invece dell'anteprima viene mostrato solo il nome del dispositivo del mittente. Pertanto, l’unico modo per contattare una vittima con iOS ≥13 per nome è impostarlo nelle impostazioni del dispositivo, ad esempio chiamare al telefono “Yulia, ciao”. Suggerimento: puoi utilizzare emoji nel nome del dispositivo. Naturalmente, questo metodo non è così brillante come con un'immagine, ma aumenta notevolmente la possibilità di fare clic sul pulsante "accetta".

Un'ulteriore descrizione delle azioni va oltre lo scopo di un articolo tecnico e dipende solo dalla tua immaginazione, improvvisazione e umorismo. Posso solo dire che coloro che si uniscono a questo gioco e iniziano a risponderti con foto o inviando note sono solitamente persone molto allegre, aperte e interessanti. Coloro che, dopo aver guardato la foto, semplicemente non rispondono, o peggio, semplicemente rifiutano il messaggio, di solito sono noiosi snob e puritani. Anche il fattore paura gioca spesso un ruolo: le persone fragili e timide hanno paura di interagire con uno sconosciuto anonimo così arrogante.

Macchina pick-pick automatica

Se sei troppo pigro per generare e inviare manualmente i payload e desideri automatizzare il processo, puoi creare una macchina di selezione vocale automatica, che in background invierà immagini tramite AirDrop a chiunque si trovi nel raggio d'azione. Utilizzeremo Raspberry Pi Zero come piattaforma hardware, ma andrà bene qualsiasi computer con Linux, l'importante è che la scheda Wi-Fi supporti la modalità monitor e l'iniezione di pacchetti.

Come utilizzo AirDrop invece di Tinder
Trasmettitore dell'altoparlante tramite Airdrop basato su Raspberry Pi Zero con protezione batteria UPS Lite

Esistono programmi Flooder AirDrop per iPhone con jailbreak, funzionano in modo più stabile rispetto alle versioni aperte su Raspberry Pi

La configurazione di OWL su Raspberry Pi è descritta in dettaglio in sito del progetto, ma preferisco utilizzare la build Kali Linux per Raspberry Pi Zero perché ha già installato le patch Nexmon per abilitare la modalità monitor Wi-Fi su rpi0.

È importante ricordare che Airdrop (o meglio AWDL) viene attivato per i pazienti solo dopo aver ricevuto un pacchetto BLE. Pertanto, dobbiamo inviarlo a intervalli di diversi secondi. Questo può essere fatto utilizzando l'utilità py-utility-bluetooth. Utilizzando la funzione start_le_advertising(), invio la stringa di dati dagli esempi di apple bleee: 000000000000000001123412341234123400.

Una volta che hai un demone OWL funzionante, puoi lanciare il mio fork opendrop. C'è uno script nel repository flooder.py, che invia a tutti una foto kak_dela.jpeg.

Secondo le mie osservazioni, il Raspberry Pi Zero W è instabile in modalità monitor. Dopo circa 20 minuti di funzionamento attivo del Flooder, il sottosistema Wi-Fi si blocca. Il problema è descritto dall'autore pwnagotchi, ed è presumibilmente causato dal surriscaldamento. È necessario prevedere un watchdog o utilizzare hardware più stabile

Modalità Maniacello - Conosco il tuo numero

Se vuoi mostrarti come un maniaco inadeguato e scoraggiare per sempre il desiderio di continuare a comunicare con te, puoi provare a scoprire il numero di telefono della persona che si trova nelle vicinanze.

Come abbiamo appreso in precedenza, i pacchetti BLE inviati dall'iniziatore contengono i primi tre byte del numero di telefono sha256. Questo hash può essere catturato quando la vittima clicca sul pulsante “condividi” e avvia la scansione dei dispositivi airdrop o tocca la password Wi-Fi per una nuova rete nel campo di input (in questo modo Apple cerca amici nel raggio d'azione a cui è possibile richiedere la password di rete).

Dovrai in qualche modo attivare il messaggio hash della vittima e catturarlo. Sto utilizzando le utilità dal repository Mela sanguinante. Poiché gli indirizzi MAC Bluetooth dei dispositivi sono casuali e cambiano costantemente, dovrai trovare un altro modo per determinare il dispositivo desiderato in questo elenco. Il compito è semplificato dal fatto che iOS trasmette lo stato attuale del telefono come: schermo spento, schermo acceso, schermata di blocco, sbloccato, ecc. Pertanto, semplicemente osservando le azioni della vittima, è possibile confrontare lo stato attuale del dispositivo con quello presente nella tabella. Il modo più semplice è cogliere il momento in cui l'utente tira fuori il telefono dalla tasca, accende lo schermo e sblocca il telefono con il dito o il viso. Tutto questo sarà visibile nello sniffer.

Come utilizzo AirDrop invece di Tinder
icona Х significa che è stato catturato un pacchetto con hash telefonici.

Il loro parser a volte si rompe, ma molto spesso funziona. Non racconterò completamente l'essenza della vulnerabilità, poiché è stata analizzata in dettaglio dagli autori di Apple Blee, descriverò solo la mia esperienza. Dirò solo che utilizzo un adattatore Bluetooth USB su un chip CSR 8510, poiché per me funziona in modo molto più stabile rispetto all'adattatore Bluetooth integrato in un MacBook e inserito in una macchina virtuale.

Quindi abbiamo preso l’hash dal telefono della vittima e abbiamo ricevuto gli ambiti tre byte dall’hash del numero di telefono.

Come utilizzo AirDrop invece di Tinder
Pacchetto BLE intercettato con hash del numero di telefono utilizzando l'utilità read_ble_state.py

Sappiamo che in Russia tutti i numeri di cellulare iniziano con il codice +79 e, molto probabilmente, il telefono della nostra vittima ha lo stesso codice. Risulta che abbiamo un intervallo di numeri da +79000000000 a +79999999999, circa un miliardo di numeri.

Per restringere il campo, prendiamo solo i codici effettivamente registrati con qualsiasi operatore e scartiamo il resto. Di conseguenza, l’intervallo diventa la metà, circa mezzo miliardo di numeri.

Successivamente, generiamo sha256 da tutti i numeri e salviamo solo i primi 3 byte di ciascun hash. Inseriamo questo elenco nel database Sqlite e creiamo un indice per velocizzare la ricerca.

Ecco come appaiono i dati nel database:

Come utilizzo AirDrop invece di Tinder
Tutti i numeri di telefono russi e i primi tre byte dell'hash

Successivamente, avendo l'hash della vittima, possiamo cercare tutte le corrispondenze nel database. Di solito ci sono 15-30 corrispondenze per hash.

Come utilizzo AirDrop invece di Tinder
Tutti i numeri che corrispondono all'hash della vittima

Ovviamente non tutti questi numeri vengono effettivamente utilizzati. Possiamo eliminare quelli non necessari utilizzando una richiesta HLR o un SMS invisibile. Su 30 numeri, 5 sono stati trovati online.

Come utilizzo AirDrop invece di Tinder
Il risultato della richiesta HLR. I numeri di rete sono evidenziati in verde.

Potrei continuare a vagliare i numeri, ad esempio, aggiungerli tutti a Telegram/Whatsapp e guardare gli avatar, consultare database come Getcontact e così via. Ma si è rivelato più semplice chiamare tutti e cinque i numeri uno per uno e osservare quando squilla il telefono della vittima.

Come utilizzo AirDrop invece di Tinder
Obiettivo localizzato

tutto

  • Il Flooder sul Raspberry Pi è molto instabile, devi provare altre schede singole.
  • Un Flooder nativo per iOS sarebbe molto meglio, ma non sono riuscito a trovarne uno che funzioni su iOS 12-13 anche con jailbreak.
  • Lo script Flooder.py è molto stupido. Probabilmente potrebbe generare un'immagine personalizzata prendendo il nome dal nome del dispositivo del destinatario e ritagliando la parola iPhone.
  • Il metodo per determinare un numero di telefono può essere ottimizzato controllando solo il fatto che il numero sia collegato a iMessage. Questo molto probabilmente ti darà un tasso di successo vicino al 100%.

conclusione

Questo è l'intrattenimento perfetto per la metropolitana. C'è un effetto wow, i curiosi sono interessati a questo. C'era molta improvvisazione, c'erano casi molto divertenti. Si scopre che molte persone sono pronte a stare al gioco e persino a cancellare i loro piani per scendere alla stazione della metropolitana e andare a prendere un caffè. Nel corso dell'anno ho incontrato molte persone e continuo a comunicare con alcune di loro.

A volte disattivo l'accesso a Telegram e mi diverto così.

Come utilizzo AirDrop invece di Tinder

Come utilizzo AirDrop invece di Tinder

Fonte: habr.com

Aggiungi un commento