Kako uporabljam AirDrop namesto Tinderja

Kako uporabljam AirDrop namesto Tinderja

Naprave Apple imajo odlično funkcijo Airdrop – narejena je za pošiljanje podatkov med napravami. V tem primeru ni potrebna nobena nastavitev ali predhodno seznanjanje naprav, vse deluje takoj po zagonu v dveh klikih. Za prenos podatkov se uporablja dodatek preko Wi-Fi, zato se podatki prenašajo z enormnimi hitrostmi. Hkrati lahko z nekaterimi triki ne samo pošiljate datoteke, ampak tudi ugotovite telefonsko številko osebe, ki je z vami v istem vagonu podzemne železnice.

Zadnje leto sem to funkcijo uporabljal za sklepanje zanimivih poznanstev na poti v službo, v javnem prevozu in v gostinskih obratih. V povprečju mi ​​uspe skleniti več novih poznanstev na dan, včasih pa iz metroja odidem v družbi kakšne nove osebe.

Pod rezom vam bom povedal o vseh kakijih.

Kako deluje AirDrop?

Kako uporabljam AirDrop namesto Tinderja

AirDrop je protokol za prenos datotek v omrežju enakovrednih. Deluje lahko prek običajnega lokalnega omrežja in po zraku med vsemi napravami Apple. Analizirali bomo zadnji primer, ko dve napravi nista povezani v skupno omrežje, ampak sta preprosto v bližini, na primer dve osebi s telefonoma potujeta v vagonu podzemne železnice in nista povezani v skupni Wi-Fi.

Kako uporabljam AirDrop namesto Tinderja
Prva stopnja prenosa prek AirDropa je pošiljanje paketa BLE

Za začetek prenosa podatkov preko AirDropa telefon iniciatorja pošlje oddajni paket BLE, ki vsebuje zgoščene informacije o računu iCloud in telefonski številki lastnika naprav iniciatorja, s predlogom za vzpostavitev povezave prek AWDL (Apple Wireless Direct Link ) protokol, nekaj takega kot Wi-Fi. Fi Direct iz sveta Androida. Struktura tega paketa BLE je zelo zanimiva, analizirali jo bomo naprej.

Na strani prejemnika je AirDrop lahko v treh stanjih:

  • Izklopljen - sploh ne bo zaznan
  • Samo za stike — sprejmite datoteke samo iz stikov v vašem imeniku. V tem primeru se za kontakt šteje telefonska številka ali e-pošta, s katero je povezan račun icloud. Tu deluje enaka logika povezovanja računov kot pri sporočilu iMessages.
  • Za vse - telefon bo viden vsem

Kako uporabljam AirDrop namesto Tinderja
Nastavitve zasebnosti AirDrop. Privzeto stanje je nastavljeno na »Za stike«.

Odvisno od vaših nastavitev zasebnosti bo telefon bodisi nadaljeval z vzpostavljanjem povezave prek AWDL ali preprosto prezrl paket BLE. Če je AirDrop nastavljen na »za vsakogar«, se bosta v naslednjem koraku napravi med seboj povezali prek AWDL, med seboj ustvarili omrežje IPv6, znotraj katerega bo AirDrop deloval kot običajni aplikacijski protokol z uporabo mDNS prek standardnega IP protokola.

Kako uporabljam AirDrop namesto Tinderja

Za poskuse si lahko ogledate, kako AWDL deluje na MacBooku. Vsa izmenjava po tem protokolu poteka prek vmesnika awdl0, ki ga je mogoče enostavno zajeti z uporabo Wireshark ali tcpdump.

Na tej stopnji poznamo tri entitete:

Paket Bluetooth LowEnergy (BLE). - ta paket vsebuje podatke, na podlagi katerih se telefon odloči, ali je pobudnik v njegovem seznamu stikov ali ne.
Apple Wireless Direct Link (AWDL) — lastniška zamenjava za Wi-Fi Direct podjetja Apple, ki se aktivira, če je bila komunikacija prek BLE uspešna.
Zračni desant - aplikacijski protokol, ki deluje znotraj običajnega omrežja IP z uporabo mDNS, HTTP itd. Lahko deluje znotraj katerega koli omrežja Ethernet.

Struktura paketa BLE

Morda se zdi, da ta paket BLE leti samo enkrat od iniciatorja do prejemnika, nato pa se izmenjava zgodi samo prek AWDL. V resnici ima povezava AWDL zelo kratko življenjsko dobo, le nekaj minut ali manj. Torej, če vam bo prejemnik datoteke želel odgovoriti, bo nastopil tudi kot pobudnik in poslal BLE paket.

Kako telefon na sprejemni strani razume, ali je številka/e-pošta pobudnika na njegovem seznamu stikov ali ne? Bil sem zelo presenečen, ko sem izvedel odgovor: pobudnik pošlje svojo številko in e-pošto kot hash sha256, vendar ne v celoti, ampak le prve 3 bajte.

Kako uporabljam AirDrop namesto Tinderja
Struktura paketa BLE iz iniciatorja AirDrop. Z zgoščenimi vrednostmi iz telefonske številke in e-pošte odzivnik razume, ali je pobudnik na njegovem seznamu stikov.

Na primer, če je vaš račun Apple (aka iCloud, alias iMessages) povezan s številko +79251234567, bo zgoščena vrednost iz njega izračunana takole:

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

In posledično bo vrednost v paketu BLE odletela 07de58 za telefonsko številko. To se zdi premalo, a pogosto so ti trije bajti dovolj, da ugotovimo pravo telefonsko številko.

Pomembno je tudi vedeti, da nastavitev zasebnosti AirDrop ne vpliva na podatke v paketu BLE. Zgoščena vrednost telefonske številke bo vsebovana v njej, tudi če je nastavljena nastavitev »Za vse«. Prav tako se pošlje paket BLE z zgoščeno telefonsko številko, ko se odpre okno za skupno rabo in ko se vnese geslo za omrežje Wi-Fi.

Za podrobno analizo strukture paketov BLE in možnih napadov nanje preberite študijo Apple Bleee in ruski prevod na Habré.

Študija Apple Bleee je objavila že pripravljene skripte python za avtomatizacijo analize podatkov v paketih BLE. Toplo priporočam, da preverite raziskavo in preizkusite programe, tam je veliko zanimivih stvari.

AWDL (Apple Wireless Direct Link)

AWDL je Applov lastniški dodatek k običajnemu Wi-Fi-ju, ki izvaja nekaj podobnega Wi-Fi Direct. Ne vem popolnoma, kako deluje, obstaja poseben način oglaševanja in usklajevanja kanalov in deluje samo na lastniških Applovih gonilnikih. To pomeni, da se lahko prek AWDL povežejo samo računalniki MacBook/iPhone.

Žalostni lastniki telefonov Android še vedno samo sanjajo o pravilno delujoči funkciji Wi-Fi Direct.

Kako uporabljam AirDrop namesto Tinderja

Toda ne tako dolgo nazaj so fantje iz seemoo-lab napisal popolnoma odprtokodno izvedbo AWDL in jo poimenoval Odprite brezžično povezavo (SOVA). Za zagon OWL mora adapter Wi-Fi podpirati način spremljanja in vbrizgavanje paketov, tako da ne deluje na vsaki strojni opremi. Na spletnem mestu so primeri konfiguracije za Raspberry pi. To deluje bistveno slabše kot prvotni AWDL, na primer, čas nastavitve povezave se podaljša za ~10 sekund namesto nekaj sekund za original, vendar deluje.

Kako uporabljam AirDrop namesto Tinderja

Poleg tega so ti fantje iz nič napisali implementacijo protokola AirDrop v Pythonu, imenovano OpenDrop. Uporablja se lahko tako v povezavi z OWL za zagon AirDrop v Linuxu kot z originalnim AWDL v macOS.

Kako zviti prek AirDrop

Kako uporabljam AirDrop namesto Tinderja
Tipična situacija z navijanjem preko AirDrop

Dovolj dolgočasne teorije, čas je, da začnemo vaditi. Torej ste oboroženi z vso potrebno opremo in ste pripravljeni na korak naprej in zvijanje žog z uporabo visoke tehnologije.

Najprej se morate spomniti glavnih točk:

  • AirDrop bo deloval le, če je telefon odklenjen – najbolje je, če tarča ves čas gleda v telefon. Najpogosteje se to zgodi tam, kjer je dolgočasno, na primer v podzemni železnici.
  • Potrebujem čas — običajno pride do pozitivne pretvorbe na 3-5 poslani sliki, zato potrebujete vsaj 5 minut miru na enem mestu. Za pozitivno konverzijo štejem trenutek, ko ste prek AirDropa privolili v nadaljevanje komunikacije v messengerju. To je težko izvajati sproti, saj ni takoj jasno, kdo je sprejel vaš tovor, in najverjetneje se boste ogreli, preden se boste lahko kaj dogovorili.
  • Personalizirana kreativa deluje bolje — Tovor imenujem medijska vsebina, ki jo pošljete prek AirDrop. Samo slika z memom najverjetneje ne bo pripeljala nikamor, vsebina mora ustrezati situaciji in imeti jasen poziv k dejanju.

Klasična metoda - samo telefon

Primerno za vse, ki imate iPhone, ne zahteva posebnih veščin razen socialnih. AirDrop preklopimo v način Vsi in se spustimo v podzemno. Na običajen dan (pred samoizolacijo) v vagonu moskovskega metroja sem opazil nekaj takega:

Kako uporabljam AirDrop namesto Tinderja
Seznam ciljev

Kot lahko vidite, skoraj vsi telefoni oddajajo ime lastnika, po katerem zlahka določimo njegov spol in pripravimo ustrezen tovor.

Tovor

Kot sem napisal zgoraj, edinstvena koristna obremenitev deluje bolje. V idealnem primeru bi morala slika nasloviti lastnika po imenu. Prej sem moral klesati ustvarjalnost z grafičnim urejevalnikom v aplikaciji za beležke in nekakšno mobilno škrbino Photoshop. Kot rezultat, ko je bila zahtevana slika narisana, je bilo že treba izstopiti iz avtomobila.

Moja prijateljica Anya koteeq, posebej na mojo zahtevo, je napisal Telegram bot, ki sproti ustvarja potrebne slike z napisom: @AirTrollBot. Zelo sem ji hvaležen, da lahko sedaj kotalim žoge veliko bolj tehnološko kot prej.

Dovolj je, da botu pošljete vrstico besedila in ta jo bo ustvaril v obliki slike, ki se natančno ujema z razmerjem stranic za predogled v oknu AirDrop. S pritiskom na gumbe lahko izberete znak na sliki. Po želji lahko omogočite tudi dodajanje vaše prijave v Telegram na sliko v kotu.

Kako uporabljam AirDrop namesto Tinderja
Generator tovora

Najhuje je bilo, da se je slika takoj prikazala na zaslonu žrtve brez kakršnega koli ukrepanja. Sploh vam ni bilo treba klikniti »sprejmi«. Lahko bi videli takojšnjo reakcijo na obrazu po nalaganju tovora. Na žalost od iOS 13 slike neznanih stikov niso več prikazane na zaslonu. Takole je izgledalo prej:

Kako uporabljam AirDrop namesto Tinderja
Tovor dostavljen v sistemu iOS ≤12

Zdaj je namesto predogleda prikazano samo ime naprave pošiljatelja. Zato je edini način za stik z žrtvijo z iOS ≥13 po imenu, da ga nastavite v nastavitvah vaše naprave, na primer pokličite telefon "Julija, zdravo." Namig: Emoji lahko uporabite v imenu naprave. Seveda ta metoda ni tako svetla kot pri sliki, vendar močno poveča možnost klika na gumb »sprejmi«.

Nadaljnji opis dejanj je izven obsega tehničnega članka in je odvisen le od vaše domišljije, improvizacije in humorja. Lahko samo rečem, da so tisti, ki se pridružijo tej igri in ti začnejo odgovarjati s slikami ali pošiljanjem zapiskov, običajno zelo veseli, odprti in zanimivi ljudje. Tisti, ki se po ogledu slike preprosto ne odzovejo ali še huje, preprosto zavrnejo sporočilo, so običajno dolgočasni snobi in nesramneži. Pogosto igra vlogo tudi dejavnik strahu: krhki, plašni ljudje se bojijo komunicirati s tako arogantnim anonimnim neznancem.

Avtomatski pobiralni stroj

Če ste preleni za ročno ustvarjanje in pošiljanje tovora in želite avtomatizirati postopek, lahko naredite avtomatski glasovni izbirnik, ki bo v ozadju pošiljal slike prek AirDrop vsem v dosegu. Kot strojno platformo bomo uporabili raspberry pi zero, vendar bo zadostoval vsak računalnik z Linuxom, glavno je, da kartica Wi-Fi podpira način monitorja in vbrizgavanje paketov.

Kako uporabljam AirDrop namesto Tinderja
Pošiljatelj zvočnikov prek Airdrop na osnovi raspberry pi zero w + baterijski ščit UPS Lite

Obstajajo AirDrop flooder programi za Jailbreak iPhone, delujejo bolj stabilno kot odprte različice na raspberry pi

Nastavitev OWL na raspberry pi je podrobno opisana na stran projekta, vendar raje uporabljam gradnjo Kali Linux za Raspberry Pi Zero, ker ima že nameščene popravke nexmon za omogočanje načina nadzora Wi-Fi na rpi0.

Pomembno si je zapomniti, da se Airdrop (ali bolje rečeno AWDL) za bolnike aktivira šele po prejemu paketa BLE. Zato ga moramo pošiljati v intervalih po nekaj sekund. To je mogoče storiti s pomočjo pripomočka py-bluetooth-utils. S funkcijo start_le_advertising() pošljem podatkovni niz iz primerov apple bleee: 000000000000000001123412341234123400.

Ko imate delujoč demon OWL, lahko zaženete moj fork opendrop. V repozitoriju je skript flooder.py, ki vsem pošlje sliko kak_dela.jpeg.

Po mojih opažanjih je raspberry pi zero w nestabilen v načinu monitorja. Po približno 20 minutah aktivnega delovanja flooderja se podsistem Wi-Fi zruši. Problem opisuje avtor pwnagotchiin je domnevno posledica pregrevanja. Treba je zagotoviti čuvaja ali uporabiti stabilnejšo strojno opremo

Način Maniacello - poznam tvojo številko

Če se želite pokazati kot neustrezen manijak in za vedno odvrniti željo po nadaljnji komunikaciji z vami, lahko poskusite izvedeti telefonsko številko osebe, ki je v bližini.

Kot smo izvedeli prej, paketi BLE, ki jih pošlje iniciator, vsebujejo prve tri bajte telefonske številke sha256. Ta zgoščena vrednost se lahko ujame, ko žrtev klikne gumb »share« in začne skenirati naprave za spuščanje ali se v polju za vnos dotakne gesla za Wi-Fi za novo omrežje (na ta način Apple išče prijatelje v dosegu, od katerih lahko zahtevate omrežno geslo).

Od žrtve boste morali nekako sprožiti zgoščeno sporočilo in ga ujeti. Uporabljam pripomočke iz repozitorija Apple Bleee. Ker so Bluetooth MAC naslovi naprav naključni in se nenehno spreminjajo, boste morali poiskati drug način za določitev želene naprave na tem seznamu. Naloga je poenostavljena z dejstvom, da iOS oddaja trenutno stanje telefona, kot so: zaslon izklopljen, zaslon vklopljen, zaklenjen zaslon, odklenjen itd. Zato lahko preprosto z opazovanjem dejanj žrtve primerjate trenutno stanje naprave z napravo v tabeli. Najlažje je ujeti trenutek, ko uporabnik vzame telefon iz žepa, prižge zaslon in s prstom ali obrazom odklene telefon. Vse to bo vidno v snifferju.

Kako uporabljam AirDrop namesto Tinderja
ikona Х pomeni, da je bil ujet paket z zgoščenimi vrednostmi telefona.

Njihov razčlenjevalnik se včasih pokvari, največkrat pa deluje. Ne bom v celoti ponavljal bistva ranljivosti, saj so jo avtorji Apple Blee podrobno analizirali, opisal bom le svojo izkušnjo. Rekel bom le, da uporabljam USB Bluetooth adapter na čipu CSR 8510, saj mi deluje veliko bolj stabilno kot Bluetooth adapter, vgrajen v MacBook in vstavljen v virtualni stroj.

Tako smo ujeli zgoščeno vrednost iz telefona žrtve in prejeli želene tri bajte iz zgoščene vrednosti telefonske številke.

Kako uporabljam AirDrop namesto Tinderja
Prestrežen paket BLE z zgoščeno vrednostjo telefonske številke s pomočjo pripomočka read_ble_state.py

Vemo, da se v Rusiji vse mobilne številke začnejo s kodo +79 in najverjetneje ima telefon naše žrtve isto kodo. Izkazalo se je, da imamo razpon številk od +79000000000 do +79999999999, približno milijardo številk.

Za zožitev obsega vzamemo le kode, ki so dejansko registrirane pri kateremkoli operaterju, ostale pa zavržemo. Posledično postane obseg za polovico manjši, okoli pol milijarde številk.

Nato ustvarimo sha256 iz vseh števil in shranimo samo prve 3 bajte iz vsakega zgoščevanja. Ta seznam vnesemo v bazo podatkov Sqlite in zgradimo indeks za pospešitev iskanja.

Takole izgledajo podatki v bazi:

Kako uporabljam AirDrop namesto Tinderja
Vse ruske telefonske številke in prvi trije bajti zgoščene vrednosti

Nato lahko z zgoščeno vrednostjo žrtve iščemo vsa ujemanja v bazi podatkov. Običajno je 15-30 ujemanj na razpršitev.

Kako uporabljam AirDrop namesto Tinderja
Vse številke, ki se ujemajo z zgoščeno vrednostjo žrtve

Očitno se vse te številke dejansko ne uporabljajo. Nepotrebne lahko odrežemo z zahtevo HLR ali nevidnim SMS-om. Od 30 številk so jih 5 našli na spletu.

Kako uporabljam AirDrop namesto Tinderja
Rezultat zahteve HLR. Številke omrežja so označene z zeleno.

Lahko bi še naprej brskal po številkah, na primer vse jih dodal v Telegram/Whatsapp in si ogledal avatarje, preveril podatkovne baze, kot je Getcontact in tako naprej. Izkazalo pa se je, da je lažje poklicati vseh pet številk eno za drugo in opazovati, kdaj žrtvi zazvoni telefon.

Kako uporabljam AirDrop namesto Tinderja
Tarča locirana

Vsi

  • Flooder na raspberry pi je zelo nestabilen, poskusiti morate druge enojne plošče.
  • Izvorni flooder za iOS bi bil veliko boljši, vendar nisem mogel najti takšnega, ki bi deloval na iOS 12–13 tudi z jailbreakom.
  • Skript flooder.py je zelo neumen. Verjetno bi lahko ustvaril prilagojeno sliko tako, da vzame ime iz imena prejemnikove naprave in izreže besedo iPhone.
  • Način določanja telefonske številke lahko optimizirate tako, da preverite le dejstvo, da je številka povezana z iMessage. To vam bo najverjetneje prineslo skoraj 100-odstotno stopnjo zadetkov.

Zaključek

To je popolna zabava za metro. Vau efekt je, radovedneže to zanima. Bilo je veliko improvizacije, bili so zelo smešni primeri. Izkazalo se je, da je veliko ljudi pripravljenih igrati zraven in celo preklicati svoje načrte, da bi izstopili na vaši podzemni postaji in šli na kavo. V tem letu sem spoznal veliko ljudi in z nekaterimi še naprej komuniciram.

Včasih izklopim prijavo v Telegram in se zabavam tako.

Kako uporabljam AirDrop namesto Tinderja

Kako uporabljam AirDrop namesto Tinderja

Vir: www.habr.com

Dodaj komentar