Ako používam AirDrop namiesto Tinder

Ako používam AirDrop namiesto Tinder

Zariadenia Apple majú výbornú funkciu Airdrop – je ako stvorená na posielanie dát medzi zariadeniami. V tomto prípade nie je potrebné žiadne nastavovanie ani predbežné párovanie zariadení, všetko funguje hneď po vybalení na dva kliknutia. Na prenos dát slúži doplnok cez Wi-Fi, a preto sa dáta prenášajú obrovskou rýchlosťou. Zároveň pomocou niektorých trikov môžete nielen odosielať súbory, ale aj zistiť telefónne číslo osoby, ktorá je s vami v rovnakom vagóne metra.

Posledný rok túto funkciu využívam na nadväzovanie zaujímavých známostí na ceste do práce, v MHD a v zariadeniach spoločného stravovania. V priemere sa mi podarí nadviazať niekoľko nových známostí za deň a niekedy odchádzam z metra v spoločnosti nového človeka.

Pod rezom vám poviem o všetkých kaki.

Ako funguje AirDrop?

Ako používam AirDrop namiesto Tinder

AirDrop je protokol na prenos súborov v rámci siete typu peer-to-peer. Môže fungovať ako cez bežnú lokálnu sieť, tak aj vzduchom medzi akýmikoľvek zariadeniami Apple. Rozoberieme posledný prípad, keď dve zariadenia nie sú pripojené k spoločnej sieti, ale sú jednoducho nablízku, napríklad dvaja ľudia s telefónmi cestujú vo vozni metra a nie sú pripojení k spoločnej Wi-Fi.

Ako používam AirDrop namiesto Tinder
Prvou fázou prenosu cez AirDrop je odoslanie paketu BLE

Na spustenie prenosu dát cez AirDrop telefón iniciátora odošle paket vysielania BLE, ktorý obsahuje hašované informácie o účte iCloud a telefónnom čísle vlastníka zariadení iniciátora, s návrhom na vytvorenie spojenia cez AWDL (Apple Wireless Direct Link ) protokol, niečo ako Wi-Fi. Fi Direct zo sveta Androidu. Štruktúra tohto BLE paketu je veľmi zaujímavá, budeme ju ďalej analyzovať.

Na strane príjemcu môže byť AirDrop v troch stavoch:

  • Vypnutý - nebudú vôbec zistené
  • Len pre kontakty — akceptujte súbory iba od kontaktov vo vašom adresári. V tomto prípade sa za kontakt považuje telefónne číslo alebo email, s ktorým je icloud účet prepojený. Funguje tu rovnaká logika prepojenia účtov ako pri iMessages messenger.
  • pre všetkých - telefón bude viditeľný pre všetkých

Ako používam AirDrop namiesto Tinder
Nastavenia ochrany osobných údajov AirDrop. Predvolený stav je nastavený na „Pre kontakty“.

V závislosti od vašich nastavení ochrany osobných údajov bude telefón buď pokračovať v nadväzovaní spojenia cez AWDL, alebo bude jednoducho ignorovať paket BLE. Ak je AirDrop nastavený na „pre každého“, v ďalšom kroku sa zariadenia navzájom spoja cez AWDL, vytvoria medzi sebou IPv6 sieť, v rámci ktorej bude AirDrop fungovať ako bežný aplikačný protokol využívajúci mDNS cez štandardný IP protokol.

Ako používam AirDrop namiesto Tinder

Pre experimenty môžete sledovať, ako funguje AWDL na MacBooku. Všetka výmena v rámci tohto protokolu prebieha cez rozhranie awdl0, ktorý možno ľahko zachytiť pomocou Wireshark alebo tcpdump.

V tejto fáze poznáme tri entity:

Balík Bluetooth LowEnergy (BLE). - tento paket obsahuje údaje, na základe ktorých sa telefón rozhodne, či je iniciátor vo svojom zozname kontaktov alebo nie.
Apple Wireless Direct Link (AWDL) — proprietárna náhrada za Wi-Fi Direct od spoločnosti Apple, ktorá sa aktivuje, ak bola komunikácia cez BLE úspešná.
AirDrop - aplikačný protokol, ktorý funguje v rámci bežnej IP siete pomocou mDNS, HTTP atď. Môže pracovať v rámci akejkoľvek siete Ethernet.

Štruktúra paketov BLE

Môže sa zdať, že tento BLE paket preletí iba raz od iniciátora k príjemcovi a potom dôjde k výmene iba cez AWDL. V skutočnosti má pripojenie AWDL veľmi krátku životnosť, iba niekoľko minút alebo menej. Ak vám teda bude chcieť príjemca súboru odpovedať, bude pôsobiť aj ako iniciátor a pošle BLE paket.

Ako telefón na prijímacej strane pochopí, či je číslo/e-mail iniciátora v jeho zozname kontaktov alebo nie? Bol som veľmi prekvapený, keď som sa dozvedel odpoveď: iniciátor odošle svoje číslo a e-mail ako hash sha256, ale nie úplne, ale iba prvé 3 bajty.

Ako používam AirDrop namiesto Tinder
Štruktúra paketu BLE z iniciátora AirDrop. Pomocou hash z telefónneho čísla a e-mailu respondent pochopí, či je iniciátor v jeho zozname kontaktov.

Napríklad, ak je váš účet Apple (aka iCloud, aka iMessages) prepojený s číslom +79251234567, hash z neho sa vypočíta takto:

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

A v dôsledku toho hodnota v pakete BLE uletí 07de58 pre telefónne číslo. Zdá sa, že to nestačí, ale často tieto tri bajty stačia na zistenie skutočného telefónneho čísla.

Je tiež dôležité si uvedomiť, že nastavenie súkromia AirDrop neovplyvňuje údaje v pakete BLE. Hash telefónneho čísla bude obsiahnutý, aj keď je nastavené nastavenie „Pre každého“. Pri otvorení okna Zdieľať a po zadaní hesla pre sieť Wi-Fi sa odošle aj paket BLE s hashom telefónneho čísla.

Pre podrobnú analýzu štruktúry BLE paketov a možných útokov na ňu si prečítajte štúdiu Apple Bleee a ruský preklad do Habré.

Štúdia Apple Bleee zverejnila hotové python skripty na automatizáciu analýzy údajov v balíkoch BLE. Vrelo odporúčam pozrieť si prieskum a vyskúšať programy, je tam veľa zaujímavých vecí.

AWDL (Apple Wireless Direct Link)

AWDL je proprietárny doplnok spoločnosti Apple k bežnému Wi-Fi, ktorý implementuje niečo ako Wi-Fi Direct. Neviem úplne, ako to funguje, existuje špeciálny spôsob oznamovania a koordinácie kanálov a funguje iba na proprietárnych ovládačoch Apple. To znamená, že cez AWDL sa môžu pripojiť iba MacBooky/iPhony.

Smutní majitelia telefónov s Androidom stále len snívajú o správne fungujúcej funkcii Wi-Fi Direct.

Ako používam AirDrop namiesto Tinder

Ale nie je to tak dávno, čo chalani z semoo-lab napísal úplne open source implementáciu AWDL a nazval ju Otvorte Wireless Link (SOVA). Na spustenie OWL musí adaptér Wi-Fi podporovať režim monitora a vkladanie paketov, takže nefunguje na každom hardvéri. Stránka obsahuje príklady konfigurácie na Raspberry pi. Funguje to podstatne horšie ako pôvodný AWDL, napríklad čas nastavenia pripojenia sa predĺži o ~10 sekúnd namiesto niekoľkých sekúnd pre originál, ale funguje to.

Ako používam AirDrop namiesto Tinder

Títo chlapci tiež od začiatku napísali implementáciu protokolu AirDrop v Pythone, tzv OpenDrop. Dá sa použiť v spojení s OWL na spustenie AirDrop na Linuxe aj s pôvodným AWDL na macOS.

Ako zrolovať cez AirDrop

Ako používam AirDrop namiesto Tinder
Typická situácia s rolovaním cez AirDrop

Dosť bolo nudnej teórie, je čas začať cvičiť. Takže ste vyzbrojení všetkým potrebným vybavením a ste pripravení pohnúť sa vpred a zrolovať lopty pomocou špičkových technológií.

Najprv si musíte zapamätať hlavné body:

  • AirDrop bude fungovať, len ak je telefón odomknutý – najlepšie je, ak sa cieľ neustále pozerá na telefón. Najčastejšie sa to deje na miestach, kde je nuda, napríklad v metre.
  • Potrebujete čas — zvyčajne sa pozitívna konverzia vyskytne na 3. až 5. odoslanom obrázku, takže potrebujete aspoň 5 minút pokoja na jednom mieste. Za pozitívnu konverziu považujem moment, kedy ste sa cez AirDrop dohodli na ďalšej komunikácii v messengeri. Za behu je to ťažko realizovateľné, pretože nie je hneď jasné, kto prijal váš náklad a s najväčšou pravdepodobnosťou sa zahrejete skôr, ako sa na niečom dohodnete.
  • Personalizovaná kreatíva funguje lepšie — Užitočný obsah nazývam mediálny obsah, ktorý odošlete cez AirDrop. Len obrázok s memom s najväčšou pravdepodobnosťou nikam nevedie; obsah by mal byť relevantný k situácii a mal by mať jasnú výzvu na akciu.

Klasická metóda - len telefón

Vhodné pre každého, kto má iPhone, nevyžaduje žiadne špeciálne zručnosti okrem sociálnych. Prepneme AirDrop do režimu Všetci a ideme dole do metra. Počas bežného dňa (pred samoizoláciou) v moskovskom vozni metra som pozoroval niečo takéto:

Ako používam AirDrop namiesto Tinder
Zoznam cieľov

Ako vidíte, takmer všetky telefóny vysielajú meno majiteľa, pomocou ktorého môžeme ľahko určiť jeho pohlavie a pripraviť vhodnú záťaž.

Užitočné zaťaženie

Ako som písal vyššie, jedinečné užitočné zaťaženie funguje lepšie. V ideálnom prípade by mal obrázok osloviť majiteľa menom. Predtým som musel kreativitu vyrezávať pomocou grafického editora v aplikácii poznámky a nejakého mobilného Photoshopu. Výsledkom bolo, že v čase, keď bol požadovaný obrázok nakreslený, už bolo potrebné vystúpiť z auta.

Moja kamarátka Anya koteeq, konkrétne na moju žiadosť, napísal telegramový robot, ktorý za behu generuje potrebné obrázky s titulkom: @AirTrollBot. Veľmi jej ďakujem za to, že teraz viem guľôčky kotúľať oveľa technologickejšie ako predtým.

Robotovi stačí poslať riadok textu a on ho vygeneruje vo forme obrázka, ktorý presne zodpovedá pomeru strán náhľadu v okne AirDrop. Znak na obrázku môžete vybrať stláčaním tlačidiel. Môžete tiež voliteľne povoliť pridanie vášho telegramového prihlasovacieho mena k obrázku v rohu.

Ako používam AirDrop namiesto Tinder
Generátor užitočného zaťaženia

Najhoršie na tom bolo, že obrázok sa okamžite ukázal na obrazovke obete bez akejkoľvek akcie. Ani ste nemuseli kliknúť na „prijať“. Bolo vidieť okamžitú reakciu na tvári od načítania užitočného zaťaženia. Bohužiaľ, od iOS 13 sa už na obrazovke nezobrazujú obrázky od neznámych kontaktov. Takto to vyzeralo predtým:

Ako používam AirDrop namiesto Tinder
Užitočné zaťaženie doručené na iOS ≤12

Teraz sa namiesto ukážky zobrazuje iba názov zariadenia odosielateľa. Jediným spôsobom, ako kontaktovať obeť s iOS ≥13 podľa mena, je nastaviť si ju v nastaveniach svojho zariadenia, napríklad zavolať na telefón „Yulia, ahoj“. Tip: Emoji môžete použiť v názve zariadenia. Samozrejme, táto metóda nie je taká jasná ako obrázok, ale výrazne zvyšuje šancu na kliknutie na tlačidlo „prijať“.

Ďalší popis akcií je nad rámec odborného článku a závisí len od vašej fantázie, improvizácie a humoru. Môžem len povedať, že tí, ktorí sa do tejto hry zapoja a začnú vám odpovedať obrázkami alebo posielať poznámky, sú väčšinou veľmi veselí, otvorení a zaujímaví ľudia. Tí, ktorí po zhliadnutí obrázka jednoducho nereagujú, alebo v horšom prípade jednoducho odmietnu správu, sú zvyčajne nudní snobi a prudéri. Často zohráva úlohu aj faktor strachu: krehkí, bojazliví ľudia sa boja s takýmto arogantným anonymným cudzincom komunikovať.

Automatický zberací stroj

Ak ste príliš leniví na manuálne generovanie a odosielanie užitočných dát a chcete proces zautomatizovať, môžete si vytvoriť automatický hlasový výberový stroj, ktorý na pozadí pošle obrázky cez AirDrop každému v dosahu. Ako hardvérovú platformu použijeme raspberry pi zero, ale zvládne to každý počítač s Linuxom, hlavné je, že Wi-Fi karta podporuje režim monitora a vkladanie paketov.

Ako používam AirDrop namiesto Tinder
Reproduktorový vysielač cez Airdrop založený na raspberry pi zero w + UPS Lite bateriový štít

Existujú programy AirDrop Flooder pre iPhone z väzenia, fungujú stabilnejšie ako otvorené verzie na raspberry pi

Nastavenie OWL na raspberry pi je podrobne popísané na webová stránka projektu, ale radšej používam zostavu Kali Linux pre Raspberry Pi Zero, pretože už má nainštalované záplaty nexmon, ktoré umožňujú režim monitora Wi-Fi na rpi0.

Je dôležité si uvedomiť, že Airdrop (alebo skôr AWDL) sa pacientom aktivuje až po prijatí paketu BLE. Preto ho musíme posielať v niekoľkosekundových intervaloch. Dá sa to urobiť pomocou pomôcky py-bluetooth-utils. Pomocou funkcie start_le_advertising() posielam dátový reťazec z príkladov apple bleee: 000000000000000001123412341234123400.

Keď budete mať fungujúceho démona OWL, môžete spustiť môj fork opendrop. V úložisku je skript flooder.py, ktorý každému pošle obrázok kak_dela.jpeg.

Podľa mojich pozorovaní je malina pi zero w v režime monitora nestabilná. Po približne 20 minútach aktívnej činnosti zaplavovača sa subsystém Wi-Fi zrúti. Problém popisuje autor pwnagotchia je pravdepodobne spôsobené prehriatím. Je potrebné zabezpečiť strážneho psa alebo použiť stabilnejší hardvér

Maniacello mód - Poznám tvoje číslo

Ak sa chcete ukázať ako neadekvátny maniak a navždy odradiť túžbu s vami pokračovať v komunikácii, môžete skúsiť zistiť telefónne číslo osoby, ktorá je nablízku.

Ako sme sa dozvedeli skôr, pakety BLE odoslané iniciátorom obsahujú prvé tri bajty telefónneho čísla sha256. Tento hash je možné zachytiť, keď obeť klikne na tlačidlo „zdieľať“ a začne skenovať výsadkové zariadenia alebo ťuká do vstupného poľa heslo Wi-Fi pre novú sieť (týmto spôsobom Apple hľadá priateľov v dosahu, od ktorých môžete požiadať sieťové heslo).

Budete musieť nejakým spôsobom spustiť hashovú správu od obete a chytiť ju. Používam nástroje z úložiska Apple Bleee. Keďže Bluetooth MAC adresy zariadení sú náhodné a neustále sa menia, budete musieť nájsť iný spôsob, ako určiť požadované zariadenie v tomto zozname. Úloha je zjednodušená tým, že iOS vysiela aktuálny stav telefónu ako: vypnutá obrazovka, zapnutá obrazovka, uzamknutá obrazovka, odomknutý atď. Preto jednoduchým pozorovaním činnosti obete môžete porovnať aktuálny stav zariadenia so zariadením v tabuľke. Najjednoduchšie je vystihnúť moment, keď používateľ vytiahne telefón z vrecka, zapne displej a odomkne telefón prstom alebo tvárou. To všetko bude viditeľné v snifferi.

Ako používam AirDrop namiesto Tinder
ikona Х znamená, že bol zachytený paket s hašovaním telefónu.

Ich syntaktický analyzátor sa niekedy pokazí, ale najčastejšie funguje. Nebudem úplne prerozprávať podstatu zraniteľnosti, keďže ju podrobne rozobrali autori Apple Blee, popíšem len moju skúsenosť. Poviem len, že používam USB Bluetooth adaptér na čipe CSR 8510, keďže mi funguje oveľa stabilnejšie ako Bluetooth adaptér zabudovaný v MacBooku a vložený do virtuálneho stroja.

Zachytili sme teda hash z telefónu obete a dostali sme vytúžené tri bajty z hashu telefónneho čísla.

Ako používam AirDrop namiesto Tinder
Zachytený paket BLE s hašovaním telefónneho čísla pomocou pomôcky read_ble_state.py

Vieme, že v Rusku všetky mobilné čísla začínajú kódom +79 a s najväčšou pravdepodobnosťou má telefón našej obete rovnaký kód. Ukazuje sa, že máme rozsah čísel od +79000000000 do +79999999999, teda približne miliardu čísel.

Aby sme zúžili rozsah, berieme iba kódy, ktoré sú skutočne zaregistrované u ktoréhokoľvek operátora, a zvyšok zahodíme. V dôsledku toho sa rozsah zväčší o polovicu, približne o pol miliardy čísel.

Ďalej vygenerujeme sha256 zo všetkých čísel a uložíme iba prvé 3 bajty z každého hashu. Tento zoznam zadáme do databázy Sqlite a vytvoríme index na urýchlenie vyhľadávania.

Takto vyzerajú údaje v databáze:

Ako používam AirDrop namiesto Tinder
Všetky ruské telefónne čísla a prvé tri bajty hash

Potom, keď máme hash obete, môžeme vyhľadať všetky zhody v databáze. Zvyčajne je 15-30 zhôd na hash.

Ako používam AirDrop namiesto Tinder
Všetky čísla, ktoré sa zhodujú s hashom obete

Je zrejmé, že nie všetky tieto čísla sa skutočne používajú. Tie nepotrebné vieme odstrihnúť pomocou HLR požiadavky alebo neviditeľnej SMS. Z 30 čísel bolo 5 nájdených online.

Ako používam AirDrop namiesto Tinder
Výsledok požiadavky HLR. Čísla siete sú zvýraznené zelenou farbou.

Mohol by som pokračovať v preosievaní čísel, napríklad, pridať ich všetky do Telegramu / Whatsapp a pozrieť sa na avatarov, skontrolovať databázy ako Getcontact a tak ďalej. Ukázalo sa však, že je jednoduchšie zavolať na všetkých päť čísel jedno po druhom a sledovať, kedy obeti zazvoní telefón.

Ako používam AirDrop namiesto Tinder
Cieľ sa nachádza

Všetko

  • Povodeň na raspberry pi je veľmi nestabilná, treba vyskúšať iné single dosky.
  • Natívny Flooder pre iOS by bol oveľa lepší, no nenašiel som taký, ktorý by fungoval na iOS 12-13 aj s útek z väzenia.
  • Skript flooder.py je veľmi hlúpy. Pravdepodobne by mohol vygenerovať prispôsobený obrázok prebratím mena z názvu zariadenia príjemcu a vystrihnutím slova iPhone.
  • Spôsob určenia telefónneho čísla je možné optimalizovať skontrolovaním len toho, že číslo je prepojené s iMessage. To vám s najväčšou pravdepodobnosťou poskytne takmer 100 % úspešnosť.

Záver

To je dokonalá zábava do metra. Vzniká wau efekt, zvedavcov to zaujíma. Veľa sa improvizovalo, boli tam veľmi vtipné prípady. Ukázalo sa, že veľa ľudí je pripravených hrať spolu a dokonca zrušiť svoje plány, aby mohli vystúpiť na vašej stanici metra a ísť na kávu. V priebehu roka som spoznal veľa ľudí a s niektorými naďalej komunikujem.

Občas vypnem prihlásenie do telegramu a bavím sa Páči sa ti to.

Ako používam AirDrop namiesto Tinder

Ako používam AirDrop namiesto Tinder

Zdroj: hab.com

Pridať komentár