Kako koristim AirDrop umjesto Tindera

Kako koristim AirDrop umjesto Tindera

Apple uređaji imaju odličnu funkciju Airdrop - napravljena je za slanje podataka između uređaja. U ovom slučaju nije potrebno podešavanje niti prethodno uparivanje uređaja, sve radi iz kutije u dva klika. Dodatak preko Wi-Fi mreže koristi se za prijenos podataka, pa se podaci prenose ogromnim brzinama. Istovremeno, koristeći neke trikove, možete ne samo slati datoteke, već i saznati broj telefona osobe koja se nalazi u istom vagonu podzemne željeznice s vama.

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

Ispod reza ću vam reći o svim hurmašicama.

Kako funkcioniše AirDrop?

Kako koristim AirDrop umjesto Tindera

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

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

Za pokretanje prijenosa podataka putem AirDrop-a, inicijatorov telefon šalje BLE paket emitovanja, koji sadrži heširane informacije o iCloud nalogu i broju telefona vlasnika uređaja inicijatora, sa prijedlogom za uspostavljanje veze putem AWDL-a (Apple Wireless Direct Link ) protokol, nešto kao Wi-Fi.Fi Direct iz svijeta Androida. Struktura ovog BLE paketa je veoma interesantna, analiziraćemo je dalje.

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

  • Isključen - uopšte neće biti otkrivena
  • Samo za kontakte — prihvatite datoteke samo iz kontakata u vašem adresaru. U ovom slučaju, kontakt se smatra telefonskim brojem ili e-mailom na koji je icloud nalog povezan. Ovdje radi ista logika za povezivanje naloga kao i sa iMessages messengerom.
  • Za sve - telefon će biti vidljiv svima

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

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

Kako koristim AirDrop umjesto Tindera

Za eksperimente, možete gledati kako AWDL radi na MacBook-u. Sva razmjena po ovom protokolu se odvija preko sučelja awdl0, koji se lako može uhvatiti koristeći Wireshark ili tcpdump.

U ovoj fazi poznajemo tri entiteta:

Bluetooth LowEnergy (BLE) paket - ovaj paket sadrži podatke na osnovu kojih telefon odlučuje da li je inicijator na njegovoj listi kontakata ili ne.
Apple bežična direktna veza (AWDL) — vlasnička zamjena za Wi-Fi Direct od Apple-a, aktivirana ako je komunikacija putem BLE-a bila uspješna.
AirDrop - aplikacijski protokol koji radi u okviru regularne IP mreže koristeći mDNS, HTTP, itd. Može raditi unutar bilo koje Ethernet mreže.

BLE struktura paketa

Može se činiti da ovaj BLE paket leti samo jednom od inicijatora do primaoca, a zatim se razmjena odvija samo preko AWDL-a. U stvarnosti, AWDL veza ima vrlo kratak vijek trajanja, samo nekoliko minuta ili manje. Dakle, ako primalac datoteke želi da vam odgovori, on će takođe delovati kao inicijator i poslati BLE paket.

Kako telefon na prijemnoj strani razumije da li je inicijatorov broj/e-mail na njegovoj listi kontakata ili ne? Bio sam veoma iznenađen kada sam saznao odgovor: inicijator šalje svoj broj i email kao sha256 hash, ali ne u potpunosti, već samo prva 3 bajta.

Kako koristim AirDrop umjesto Tindera
Struktura BLE paketa iz AirDrop inicijatora. Koristeći hešove sa telefonskog broja i e-pošte, osoba koja odgovara razumije razumije da li je inicijator na njegovoj listi kontakata.

Na primjer, ako je vaš Apple račun (aka iCloud, zvani iMessages) povezan s brojem +79251234567, heš s njega će se izračunati na sljedeći način:

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

I kao rezultat toga, vrijednost u BLE paketu će odletjeti 07de58 za broj telefona. Čini se da ovo nije dovoljno, ali često su ova tri bajta dovoljna da se sazna pravi broj telefona.

Takođe je važno zapamtiti da postavka privatnosti AirDrop ne utiče na podatke u BLE paketu. U njemu će se nalaziti heš telefonskog broja, čak i ako je postavljena postavka "Za sve". Takođe, BLE paket sa hešom telefonskog broja se šalje 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 njih, pročitajte studiju Apple Bleee i ruski prijevod na Habré.

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

AWDL (Apple Wireless Direct Link)

AWDL je vlasnički Apple-ov dodatak za uobičajeni Wi-Fi koji implementira nešto poput Wi-Fi Directa. Ne znam u potpunosti kako to funkcionira, postoji poseban način najave i koordinacije kanala, a radi samo na vlasničkim Apple drajverima. Odnosno, samo MacBook-ovi/iPhoni mogu da se povežu preko AWDL-a.

Tužni vlasnici Android telefona još samo sanjaju o ispravnoj funkciji Wi-Fi Direct.

Kako koristim AirDrop umjesto Tindera

Ali ne tako davno momci iz seeemoo-lab napisao potpuno open source implementaciju AWDL-a i nazvao je Otvorite bežičnu vezu (SOVA). Da bi pokrenuo OWL, Wi-Fi adapter mora podržavati način rada monitora i ubrizgavanje 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 produženo za ~10 sekundi umjesto nekoliko sekundi za original, ali funkcionira.

Kako koristim AirDrop umjesto Tindera

Takođe, ovi momci su od nule napisali implementaciju AirDrop protokola u Python-u, tzv. OpenDrop. Može se koristiti i u kombinaciji s OWL-om za pokretanje AirDrop-a na Linuxu i s originalnim AWDL-om na macOS-u.

Kako umotati preko AirDropa

Kako koristim AirDrop umjesto Tindera
Tipična situacija sa rolanjem preko AirDropa

Dosta dosadne teorije, vreme je da počnemo da vežbamo. Dakle, naoružani ste svom potrebnom opremom i spremni ste da krenete naprijed i zamotate loptice uz pomoć visoke tehnologije.

Prvo morate zapamtiti glavne tačke:

  • AirDrop će raditi samo ako je telefon otključan - Najbolje je da meta stalno gleda u telefon. Najčešće se to dešava na mjestima gdje je dosadno, na primjer u metrou.
  • Treba mi vremena — obično se pozitivna konverzija javlja na 3-5. poslanoj slici, tako da vam je potrebno najmanje 5 minuta mirovanja na jednom mjestu. Smatram da je pozitivna konverzija trenutak kada ste preko AirDropa pristali da nastavite komunicirati u messengeru. Ovo je teško implementirati u hodu, jer nije odmah jasno ko je prihvatio vaš teret, a najvjerovatnije ćete se zagrijati prije nego što se nešto dogovorite.
  • Personalizirana kreativa funkcionira bolje — Korisnim opterećenjem nazivam medijski sadržaj koji šaljete putem AirDropa. Samo slika sa memom najvjerovatnije neće voditi nikuda; sadržaj bi trebao biti relevantan za situaciju i imati jasan poziv na akciju.

Klasična metoda - samo telefon

Pogodno za sve koji imaju iPhone, ne zahtijevaju nikakve posebne vještine osim društvenih. Prebacujemo AirDrop na način rada Svi i idemo dolje u metro. Jednog normalnog dana (prije samoizolacije) u vagonu moskovskog metroa, primijetio sam nešto ovako:

Kako koristim AirDrop umjesto Tindera
Lista meta

Kao što vidite, skoro svi telefoni emituju ime vlasnika, po čemu lako možemo odrediti njegov spol i pripremiti odgovarajuću nosivost.

Nosivost

Kao što sam gore napisao, jedinstveno opterećenje radi bolje. U idealnom slučaju, slika treba da se obraća vlasniku imenom. Ranije sam morao da oblikujem kreativnost koristeći grafički uređivač u aplikaciji za beleške i neku vrstu mobilnog Photoshop stubića. Kao rezultat toga, u trenutku kada je tražena slika nacrtana, već je bilo potrebno izaći iz automobila.

Moja prijateljica Anya koteeq, konkretno na moj zahtjev, napisao je Telegram bot koji u hodu generiše potrebne slike sa natpisom: @AirTrollBot. Puno joj zahvaljujem na činjenici da sada mogu da kotrljam loptice mnogo tehnološki više nego prije.

Dovoljno je poslati botu red teksta, a on će ga generisati u obliku slike koja tačno odgovara omjeru za pregled u AirDrop prozoru. Možete odabrati karakter na slici pritiskom na dugmad. Opciono možete omogućiti i dodavanje vašeg Telegram logina na sliku u uglu.

Kako koristim AirDrop umjesto Tindera
Generator korisnog opterećenja

Najgore je bilo to što je slika odmah prikazana na ekranu žrtve bez ikakve akcije. Niste morali čak ni da kliknete na "prihvati". Mogli ste vidjeti trenutnu reakciju na licu od učitavanja tereta. Nažalost, od iOS 13, slike nepoznatih kontakata više se ne prikazuju na ekranu. Evo kako je to izgledalo prije:

Kako koristim AirDrop umjesto Tindera
Korisno opterećenje isporučeno na iOS-u ≤12

Sada se umjesto pregleda prikazuje samo naziv uređaja pošiljaoca. Stoga, jedini način da kontaktirate žrtvu s iOS-om ≥13 po imenu je da ga postavite u postavkama vašeg uređaja, na primjer, nazovite telefon „Julija, zdravo“. Savjet: U nazivu uređaja možete koristiti emoji sličice. Naravno, ova metoda nije tako sjajna kao sa slikom, ali uvelike povećava šansu da kliknete na dugme "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 igrici i počnu vam odgovarati slikama ili slati bilješke obično vrlo veseli, otvoreni i zanimljivi ljudi. Oni koji, nakon što pogledaju sliku, jednostavno ne reaguju, ili još gore, jednostavno odbiju poruku, obično su dosadni snobovi i razvratnici. Faktor straha također često igra ulogu: krhki, stidljivi ljudi se boje komunicirati s tako arogantnim anonimnim strancem.

Automatska mašina za pikiranje

Ako ste previše lijeni za ručno generiranje i slanje tereta, a želite automatizirati proces, možete napraviti automatsku mašinu za biranje glasa, koja će u pozadini slati slike putem AirDropa svima u dometu. Koristićemo raspberry pi zero kao hardversku platformu, ali bilo koji računar sa Linuxom će to učiniti, glavna stvar je da Wi-Fi kartica podržava režim monitora i ubrizgavanje paketa.

Kako koristim AirDrop umjesto Tindera
Predajnik zvučnika putem Airdrop baziran na raspberry pi zero w + UPS Lite štitnik baterije

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

Postavljanje OWL na raspberry pi je detaljno opisano na web stranica projekta, ali radije koristim Kali Linux build za Raspberry Pi Zero jer već ima instalirane nexmon zakrpe za omogućavanje načina rada Wi-Fi monitora na rpi0.

Važno je zapamtiti da se Airdrop (ili bolje rečeno AWDL) aktivira za pacijente tek nakon primanja 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. Koristeći start_le_advertising() funkciju, šaljem niz podataka iz primjera apple bleee: 000000000000000001123412341234123400.

Jednom kada imate funkcionalnog OWL demona, možete pokrenuti moj fork opendrop. Postoji skripta u spremištu 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 flooder-a, Wi-Fi podsistem se ruši. Problem je opisao autor pwnagotchi, a vjerovatno je uzrokovano pregrijavanjem. Potrebno je osigurati čuvar ili koristiti stabilniji hardver

Maniacello mod - Znam tvoj broj

Ako želite da se pokažete kao neadekvatni manijak i zauvijek obeshrabrite želju da i dalje komunicirate s vama, možete pokušati saznati broj telefona osobe koja je u blizini.

Kao što smo ranije saznali, BLE paketi koje šalje inicijator sadrže prva tri bajta sha256 telefonskog broja. Ovaj hash se može uhvatiti kada žrtva klikne na dugme "share" 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 uslužne programe iz spremišta Apple Bleee. Budući da su Bluetooth MAC adrese uređaja nasumične i da se stalno mijenjaju, morat ćete pronaći drugi način da odredite željeni uređaj na ovoj listi. Zadatak je pojednostavljen činjenicom da iOS emituje trenutno stanje telefona kao što su: ekran isključen, ekran uključen, zaključan ekran, otključan itd. Stoga, jednostavnim posmatranjem radnji žrtve, možete uporediti trenutno stanje uređaja sa uređajem u tabeli. Najlakši način je uhvatiti trenutak kada korisnik vadi telefon iz džepa, uključuje ekran i otključava telefon prstom ili licem. Sve ovo će biti vidljivo u njuškalu.

Kako koristim AirDrop umjesto Tindera
Ikona Х znači da je uhvaćen paket sa hešovima telefona.

Njihov parser se ponekad pokvari, ali najčešće radi. Neću u potpunosti prepričavati suštinu ranjivosti, budući da su je detaljno analizirali autori Apple Blee-a, samo ću opisati svoje iskustvo. Reći ću samo da koristim USB Bluetooth adapter na CSR 8510 čipu, jer za mene radi mnogo stabilnije od Bluetooth adaptera ugrađenog u MacBook i umetnutog u virtuelnu mašinu.

Tako smo uhvatili heš sa žrtvinog telefona i dobili željena tri bajta iz heša telefonskog broja.

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

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

Da 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 generišemo sha256 iz svih brojeva i spremamo samo prva 3 bajta iz svakog heša. Ovu listu unosimo u Sqlite bazu podataka i pravimo indeks da bismo ubrzali pretragu.

Ovako izgledaju podaci u bazi podataka:

Kako koristim AirDrop umjesto Tindera
Svi ruski brojevi telefona i prva tri bajta heša

Zatim, imajući heš žrtve, možemo pretraživati ​​sva podudaranja u bazi podataka. Obično ima 15-30 podudaranja po hashu.

Kako koristim AirDrop umjesto Tindera
Svi brojevi koji odgovaraju žrtvinom hešu

Očigledno se ne koriste svi ovi brojevi. Nepotrebne možemo odsjeći pomoću HLR zahtjeva ili nevidljivog SMS-a. Od 30 brojeva, 5 je pronađeno na internetu.

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

Mogao bih da nastavim da prebirem po brojevima, na primjer, da ih sve dodam u Telegram/Whatsapp i pogledam avatare, provjerim 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 zvoni telefon žrtve.

Kako koristim AirDrop umjesto Tindera
Cilj je lociran

todo

  • Flooder na raspberry pi je vrlo nestabilan, morate isprobati druge pojedinačne ploče.
  • Nativni flooder za iOS bi bio mnogo bolji, ali nisam mogao pronaći onaj koji radi na iOS-u 12-13 čak ni uz jailbreak.
  • Skripta flooder.py je veoma glupa. Verovatno bi mogao da generiše personalizovanu sliku uzimajući ime iz naziva uređaja primaoca i izrezujući reč iPhone.
  • Način određivanja telefonskog broja može se optimizirati provjerom samo činjenice da je broj povezan sa iMessage-om. Ovo će vam najvjerovatnije dati blizu 100% stope pogodaka.

zaključak

Ovo je savršena zabava za metro. Ima vau efekta, znatiželjnike ovo zanima. Bilo je dosta improvizacije, bilo je vrlo smiješnih slučajeva. Ispostavilo se da su mnogi ljudi spremni da se poigraju i čak otkažu svoje planove kako bi sišli na vašoj stanici metroa i otišli na kafu. Tokom godine upoznao sam mnogo ljudi i nastavljam da komuniciram sa nekima od njih.

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

Kako koristim AirDrop umjesto Tindera

Kako koristim AirDrop umjesto Tindera

izvor: www.habr.com

Dodajte komentar