Kako koristim AirDrop umjesto Tindera

Kako koristim AirDrop umjesto Tindera

Appleovi uređaji imaju izvrsnu značajku Airdrop – dizajnirana je za slanje podataka između uređaja. U ovom slučaju nije potrebno podešavanje ili prethodno uparivanje uređaja; sve radi odmah u dva klika. Za prijenos podataka koristi se dodatak preko Wi-Fi mreže, pa se podaci prenose enormnim brzinama. U isto vrijeme, koristeći neke trikove, ne samo da možete slati datoteke, već i saznati telefonski broj osobe koja je u istom vagonu podzemne željeznice s vama.

Posljednjih godinu dana ovu funkciju koristim za sklapanje zanimljivih poznanstava na putu do posla, u javnom prijevozu iu ugostiteljskim objektima. U prosjeku dnevno uspijem sklopiti nekoliko novih poznanstava, a ponekad izađem iz metroa u društvu nove osobe.

Pod rezom ću vam reći o svim hurmašicama.

Kako radi AirDrop?

Kako koristim AirDrop umjesto Tindera

AirDrop je protokol za prijenos datoteka unutar peer-to-peer mreže. Može raditi i preko obične lokalne mreže i bežično između bilo kojeg Apple uređaja. Analizirat ćemo posljednji slučaj, kada dva uređaja nisu spojena na zajedničku mrežu, već su jednostavno u blizini, na primjer, dvije osobe s telefonima putuju u vagonu podzemne željeznice i nisu spojene na zajednički Wi-Fi.

Kako koristim AirDrop umjesto Tindera
Prva faza prijenosa putem AirDropa je slanje BLE paketa

Za pokretanje prijenosa podataka putem AirDropa, telefon inicijatora šalje BLE emitirani paket, koji sadrži raspršene informacije o iCloud računu i telefonskom broju vlasnika uređaja inicijatora, s prijedlogom za uspostavljanje veze putem AWDL (Apple Wireless Direct Link ) protokol, nešto kao Wi-Fi. Fi Direct iz svijeta Androida. Struktura ovog BLE paketa je vrlo zanimljiva, analizirat ćemo je dalje.

Na strani primatelja, AirDrop može biti u tri stanja:

  • Isključen - uopće neće biti otkriven
  • Samo za kontakte — prihvatite datoteke samo od kontakata u svom imeniku. U tom slučaju kontaktom se smatra telefonski broj ili e-mail s kojim je povezan icloud račun. Ovdje radi ista logika za povezivanje računa kao i kod iMessages messengera.
  • Za sve - telefon će biti vidljiv svima

Kako koristim AirDrop umjesto Tindera
AirDrop postavke privatnosti. Zadani status je postavljen na “Za kontakte”.

Ovisno o vašim postavkama privatnosti, telefon će ili nastaviti uspostavljati vezu putem AWDL-a ili će jednostavno ignorirati BLE paket. Ako je AirDrop postavljen na “za sve”, tada će se u sljedećem koraku uređaji međusobno povezati preko AWDL-a, stvoriti IPv6 mrežu između njih, unutar koje će AirDrop raditi kao uobičajeni aplikacijski protokol koristeći mDNS preko standardnog IP protokola.

Kako koristim AirDrop umjesto Tindera

Za eksperimente, možete pogledati kako AWDL radi na MacBooku. Sva razmjena prema ovom protokolu odvija se preko sučelja awdl0, koji se lako može uhvatiti pomoću Wiresharka ili tcpdumpa.

U ovoj fazi poznajemo tri entiteta:

Bluetooth LowEnergy (BLE) paket - ovaj paket sadrži podatke na temelju kojih telefon odlučuje je li inicijator na njegovoj listi kontakata ili ne.
Apple izravna bežična veza (AWDL) — vlasnička zamjena za Wi-Fi Direct iz Applea, aktivirana ako je komunikacija putem BLE bila uspješna.
zračni desant - aplikacijski protokol koji radi unutar obične IP mreže koristeći mDNS, HTTP itd. Može raditi unutar bilo koje Ethernet mreže.

Struktura BLE paketa

Može se činiti da ovaj BLE paket leti samo jednom od inicijatora do primatelja, a zatim se razmjena odvija samo putem AWDL-a. U stvarnosti, AWDL veza ima vrlo kratak životni vijek, samo nekoliko minuta ili manje. Dakle, ako vam primatelj datoteke želi odgovoriti, on će također djelovati kao inicijator i poslati BLE paket.

Kako telefon na prijemnoj strani razumije je li broj/e-pošta inicijatora na njegovom popisu kontakata ili ne? Bio sam jako iznenađen kada sam saznao odgovor: inicijator šalje svoj broj i email kao sha256 hash, ali ne u cijelosti, već samo prva 3 bajta.

Kako koristim AirDrop umjesto Tindera
Struktura BLE paketa iz AirDrop inicijatora. Koristeći hashove iz telefonskog broja i e-pošte, odgovarač razumije je li inicijator na njegovom popisu kontakata.

Na primjer, ako je vaš Apple račun (aka iCloud, aka iMessages) povezan s brojem +79251234567, hash s njega će se izračunati ovako:

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

Kao rezultat toga, vrijednost u BLE paketu će odletjeti 07de58 za telefonski broj. Čini se da to nije dovoljno, ali često su ta tri bajta dovoljna da saznate pravi telefonski broj.

Također je važno zapamtiti da AirDrop postavka privatnosti ne utječe na podatke u BLE paketu. Raspršena vrijednost telefonskog broja bit će sadržana u njemu, čak i ako je postavljena postavka "Za sve". Također, BLE paket s hashom telefonskog broja šalje se kada se otvori prozor Share i kada se unese lozinka za Wi-Fi mrežu.

Za detaljnu analizu strukture BLE paketa i mogućih napada na njega pročitajte studiju Jabuka Bleee i ruski prijevod na Habré.

Studija Apple Bleee objavila je gotove python skripte za automatizaciju analize podataka u BLE paketima. Toplo preporučujem da provjerite istraživanje i isprobate programe, ima puno zanimljivih stvari.

AWDL (Apple Wireless Direct Link)

AWDL je vlasnički Appleov dodatak uobičajenom Wi-Fiju koji implementira nešto poput Wi-Fi Directa. Ne znam u potpunosti kako to radi, postoji poseban način najave i koordinacije kanala, a radi samo na vlasničkim Appleovim drajverima. Odnosno, samo MacBook/iPhone uređaji mogu se povezati putem AWDL-a.

Tužni vlasnici Android telefona još uvijek samo sanjaju o ispravnom radu Wi-Fi Direct funkcije.

Kako koristim AirDrop umjesto Tindera

Ali ne tako davno dečki iz seemoo-lab napisao potpuno otvorenu implementaciju AWDL-a i nazvao je Otvorite bežičnu vezu (SOVA). Za pokretanje OWL-a, Wi-Fi adapter mora podržavati način rada monitora i ubacivanje paketa, tako da ne radi na svakom hardveru. Stranica ima primjere konfiguracije na Raspberry pi. Ovo radi znatno lošije od originalnog AWDL-a, na primjer, vrijeme postavljanja veze je produljeno za ~10 sekundi umjesto nekoliko sekundi za original, ali radi.

Kako koristim AirDrop umjesto Tindera

Također, ovi dečki su od nule napisali implementaciju AirDrop protokola u Pythonu, tzv OpenDrop. Može se koristiti i zajedno s OWL-om za pokretanje AirDrop-a na Linuxu i s izvornim AWDL-om na macOS-u.

Kako roll up putem AirDropa

Kako koristim AirDrop umjesto Tindera
Tipična situacija s rolanjem putem AirDropa

Dosta dosadne teorije, vrijeme je za praksu. Dakle, naoružani ste svom potrebnom opremom i spremni ste krenuti naprijed i skupljati lopte pomoću visoke tehnologije.

Prvo se morate sjetiti glavnih točaka:

  • AirDrop će raditi samo ako je telefon otključan – najbolje je da meta stalno gleda u telefon. Najčešće se to događa na mjestima gdje je dosadno, na primjer u podzemnoj željeznici.
  • Treba vremena — obično se pozitivna konverzija događa na 3-5 poslanoj slici, tako da vam je potrebno najmanje 5 minuta tišine na jednom mjestu. Pozitivnom konverzijom smatram trenutak kada ste putem AirDropa pristali na nastavak komunikacije u messengeru. To je teško izvesti u hodu, jer nije odmah jasno tko je prihvatio vaš teret, a najvjerojatnije ćete se zagrijati prije nego se nešto dogovorite.
  • Personalizirana kreativa radi bolje — Korisnim opterećenjem nazivam medijski sadržaj koji šaljete putem AirDropa. Samo slika s memeom najvjerojatnije neće voditi nikamo; sadržaj bi trebao biti relevantan za situaciju i imati jasan poziv na akciju.

Klasična metoda - samo telefon

Prikladno za sve koji imaju iPhone, ne zahtijeva nikakve posebne vještine osim društvenih. Prebacujemo AirDrop na Everyone mode i spuštamo se u podzemnu. Jednog normalnog dana (prije samoizolacije) u vagonu moskovskog metroa primijetio sam nešto poput ovoga:

Kako koristim AirDrop umjesto Tindera
Popis ciljeva

Kao što vidite, gotovo svi telefoni emitiraju ime vlasnika, po kojem možemo lako odrediti njegov spol i pripremiti odgovarajući teret.

nosivost

Kao što sam gore napisao, jedinstveni korisni teret radi bolje. U idealnom slučaju, slika bi trebala oslovljavati vlasnika imenom. Ranije sam morao oblikovati kreativnost koristeći grafički uređivač u aplikaciji za bilješke i neku vrstu mobilnog Photoshopa. Kao rezultat toga, do trenutka kada je potrebna slika nacrtana, već je bilo potrebno izaći iz automobila.

Moja prijateljica Anya koteeq, upravo na moj zahtjev, napisao je Telegram bot koji u hodu generira potrebne slike s natpisom: @AirTrollBot. Puno joj zahvaljujem što sada mogu kotrljati lopte puno tehnološkiji nego prije.

Dovoljno je botu poslati redak teksta, a on će ga generirati u obliku slike koja točno odgovara omjeru stranica za pregled u AirDrop prozoru. Možete odabrati znak na slici pritiskom na gumbe. Također možete po želji omogućiti dodavanje svoje prijave na Telegram na sliku u kutu.

Kako koristim AirDrop umjesto Tindera
Generator korisnog tereta

Najgore je što se slika odmah prikazala na ekranu žrtve bez ikakve radnje. Niste morali ni kliknuti "prihvati". Mogli ste vidjeti trenutnu reakciju na licu nakon utovara tereta. Nažalost, od iOS-a 13, slike nepoznatih kontakata više se ne prikazuju na zaslonu. Evo kako je to izgledalo prije:

Kako koristim AirDrop umjesto Tindera
Korisni teret isporučen na iOS-u ≤12

Sada se umjesto pregleda prikazuje samo naziv uređaja pošiljatelja. Stoga je jedini način da kontaktirate žrtvu s iOS-om ≥13 po imenu da ga postavite u postavkama svog uređaja, na primjer, nazovite telefon "Yulia, zdravo." Savjet: možete koristiti emoji u nazivu uređaja. Naravno, ova metoda nije tako svijetla kao sa slikom, ali uvelike povećava mogućnost klika na gumb "prihvati".

Daljnji opis radnji je izvan okvira tehničkog članka i ovisi samo o vašoj mašti, improvizaciji i humoru. Mogu samo reći da su oni koji se pridruže ovoj igri i počnu vam odgovarati slikama ili slanjem poruka obično vrlo veseli, otvoreni i zanimljivi ljudi. Oni koji nakon pogleda na sliku jednostavno ne odgovore, ili još gore, jednostavno odbiju poruku, obično su dosadni snobovi i prostaci. Čimbenik straha također često igra ulogu: krhki, plašljivi ljudi boje se komunicirati s tako arogantnim anonimnim strancem.

Automatski skupljač

Ako ste previše lijeni za ručno generiranje i slanje korisnih podataka, a želite automatizirati proces, možete napraviti automat za glasovno odabiranje, koji će u pozadini slati slike putem AirDropa svima u dometu. Koristit ćemo raspberry pi zero kao hardversku platformu, ali bilo koje računalo s Linuxom će poslužiti, glavno je da Wi-Fi kartica podržava način rada monitora i ubacivanje paketa.

Kako koristim AirDrop umjesto Tindera
Pošiljatelj zvučnika putem Airdrop-a temeljen na raspberry pi zero w + UPS Lite baterijski štit

Postoje AirDrop flooder programi za Jailbreak iPhone, rade stabilnije od otvorenih verzija na raspberry pi

Postavljanje OWL-a na raspberry pi detaljno je opisano na web mjesto projekta, ali radije koristim međugradnju Kali Linuxa za Raspberry Pi Zero jer već ima instalirane zakrpe za nexmon za omogućavanje načina Wi-Fi monitora na rpi0.

Važno je zapamtiti da se Airdrop (ili bolje rečeno AWDL) aktivira za pacijente tek nakon primitka BLE paketa. Stoga ga moramo slati u intervalima od nekoliko sekundi. To se može učiniti pomoću uslužnog programa py-bluetooth-utils. Pomoću funkcije start_le_advertising() šaljem podatkovni niz iz primjera apple bleee: 000000000000000001123412341234123400.

Nakon što imate OWL daemon koji radi, možete pokrenuti moj fork opendrop. Postoji skripta u repozitoriju flooder.py, koji svima šalje sliku kak_dela.jpeg.

Prema mojim zapažanjima, raspberry pi zero w je nestabilan u monitor modu. Nakon otprilike 20 minuta aktivnog rada floodera, Wi-Fi podsustav se ruši. Problem opisuje autor pwnagotchi, a vjerojatno je uzrokovan pregrijavanjem. Potrebno je osigurati watchdog ili koristiti stabilniji hardver

Maniacello način - znam tvoj broj

Ako se želite pokazati kao neadekvatan manijak i zauvijek obeshrabriti želju da nastavite komunicirati s vama, možete pokušati saznati telefonski broj osobe koja je u blizini.

Kao što smo ranije saznali, BLE paketi koje šalje inicijator sadrže prva tri bajta telefonskog broja sha256. Ovaj hash se može uhvatiti kada žrtva klikne gumb "dijeli" i počne skenirati airdrop uređaje ili dodirne Wi-Fi lozinku za novu mrežu u polju za unos (na taj način Apple traži prijatelje u dometu od kojih možete zatražiti mrežna lozinka).

Morat ćete nekako pokrenuti hash poruku od žrtve i uhvatiti je. Koristim pomoćne programe iz repozitorija Jabuka Bleee. Budući da su Bluetooth MAC adrese uređaja nasumične i stalno se mijenjaju, morat ćete pronaći drugi način da odredite željeni uređaj na ovom popisu. Zadatak je pojednostavljen činjenicom da iOS emitira trenutno stanje telefona poput: zaslon isključen, zaslon uključen, zaključan zaslon, otključan itd. Stoga, jednostavnim promatranjem postupaka žrtve, možete usporediti trenutno stanje uređaja s uređajem u tablici. Najlakše je uhvatiti trenutak kada korisnik vadi telefon iz džepa, pali ekran i otključava telefon prstom ili licem. Sve će to biti vidljivo u njuškalu.

Kako koristim AirDrop umjesto Tindera
ikona Х znači da je uhvaćen paket s hashovima telefona.

Parser im se ponekad pokvari, ali najčešće radi. Neću u potpunosti prepričavati bit ranjivosti, budući da su je autori Apple Bleea detaljno analizirali, opisat ću samo svoje iskustvo. Samo ću reći da koristim USB Bluetooth adapter na CSR 8510 čipu, jer mi radi mnogo stabilnije od Bluetooth adaptera ugrađenog u MacBook i umetnutog u virtualni stroj.

Tako smo uhvatili hash sa žrtvinog telefona i primili željena tri bajta iz hash-a telefonskog broja.

Kako koristim AirDrop umjesto Tindera
Pomoću uslužnog programa presretnut je BLE paket s hash telefonskim brojem read_ble_state.py

Znamo da u Rusiji svi mobilni brojevi počinju kodom +79 i, najvjerojatnije, telefon naše žrtve ima isti kod. Ispostavilo se da imamo raspon brojeva od +79000000000 do +79999999999, oko milijardu brojeva.

Kako bismo suzili raspon, uzimamo samo kodove koji su stvarno registrirani kod bilo kojeg operatera, a ostale odbacujemo. Kao rezultat toga, raspon postaje upola manji, oko pola milijarde brojeva.

Zatim generiramo sha256 iz svih brojeva i spremamo samo prva 3 bajta iz svakog hasha. Taj popis unosimo u Sqlite bazu podataka i gradimo indeks kako bismo ubrzali pretraživanje.

Ovako izgledaju podaci u bazi podataka:

Kako koristim AirDrop umjesto Tindera
Svi ruski telefonski brojevi i prva tri bajta hasha

Zatim, imajući hash žrtve, možemo pretraživati ​​sve podudarnosti u bazi podataka. Obično postoji 15-30 podudaranja po hash-u.

Kako koristim AirDrop umjesto Tindera
Svi brojevi koji odgovaraju žrtvinom hash-u

Očito, ne koriste se svi ovi brojevi. Nepotrebne možemo odrezati HLR zahtjevom ili nevidljivim SMS-om. Od 30 brojeva, 5 je pronađeno na internetu.

Kako koristim AirDrop umjesto Tindera
Rezultat HLR zahtjeva. Brojevi mreže označeni su zelenom bojom.

Mogao bih nastaviti prebirati po brojevima, na primjer, dodati ih sve u Telegram/Whatsapp i pogledati avatare, provjeriti baze podataka kao što je Getcontact i tako dalje. Ali pokazalo se da je lakše jednostavno nazvati svih pet brojeva jedan po jedan i gledati kada žrtvi zazvoni telefon.

Kako koristim AirDrop umjesto Tindera
Meta locirana

sve

  • Flooder na raspberry pi je vrlo nestabilan, morate isprobati druge pojedinačne ploče.
  • Nativni flooder za iOS bio bi puno bolji, ali nisam mogao pronaći onaj koji radi na iOS-u 12-13 čak ni s jailbreakom.
  • Skripta flooder.py je jako glupa. Vjerojatno bi mogao generirati personaliziranu sliku uzimajući naziv iz naziva uređaja primatelja i izrezujući riječ iPhone.
  • Metoda određivanja telefonskog broja može se optimizirati provjerom samo činjenice da je broj povezan s iMessageom. To će vam najvjerojatnije dati stopu pogodaka blizu 100%.

Zaključak

Ovo je savršena zabava za metro. Postoji wow efekt, znatiželjnike ovo zanima. Bilo je dosta improvizacije, bilo je jako smiješnih slučajeva. Ispostavilo se da su mnogi ljudi spremni poigravati se, pa čak i otkazati svoje planove kako bi sišli na vašoj metro stanici i otišli gore na kavu. Tijekom godine sam upoznao mnogo ljudi i nastavljam komunicirati s nekima od njih.

Ponekad isključim prijavu na Telegram i zabavim se onako.

Kako koristim AirDrop umjesto Tindera

Kako koristim AirDrop umjesto Tindera

Izvor: www.habr.com

Dodajte komentar