Kaip aš naudoju AirDrop vietoj Tinder

Kaip aš naudoju AirDrop vietoj Tinder

Apple įrenginiai turi puikią Airdrop funkciją – ji skirta duomenims siųsti tarp įrenginių. Šiuo atveju nereikia jokių sąrankos ar išankstinių įrenginių poravimo, viskas veikia iš dėžutės dviem paspaudimais. Duomenims perduoti naudojamas priedas per Wi-Fi, todėl duomenys perduodami milžinišku greičiu. Tuo pačiu metu, naudodamiesi kai kuriomis gudrybėmis, galite ne tik siųsti failus, bet ir sužinoti asmens, kuris yra tame pačiame metro vagone su jumis, telefono numerį.

Paskutinius metus naudojuosi šia funkcija įdomioms pažintims užmegzti pakeliui į darbą, viešajame transporte, viešojo maitinimo įstaigose. Vidutiniškai per dieną pavyksta užmegzti keletą naujų pažinčių, o kartais iš metro išvažiuoju naujo žmogaus kompanijoje.

Po pjūviu papasakosiu apie visus persimonus.

Kaip veikia „AirDrop“?

Kaip aš naudoju AirDrop vietoj Tinder

„AirDrop“ yra failų perkėlimo per lygiavertį tinklą protokolas. Jis gali veikti tiek įprastu vietiniu tinklu, tiek belaidžiu ryšiu tarp bet kurių Apple įrenginių. Išanalizuosime paskutinį atvejį, kai du įrenginiai nėra prijungti prie bendro tinklo, o yra tiesiog šalia, pavyzdžiui, metro vagone keliauja du žmonės su telefonais ir nėra prisijungę prie bendro Wi-Fi.

Kaip aš naudoju AirDrop vietoj Tinder
Pirmasis perdavimo per „AirDrop“ etapas yra BLE paketo siuntimas

Norėdami inicijuoti duomenų perdavimą per AirDrop, iniciatoriaus telefonas siunčia BLE transliacijos paketą, kuriame yra maišos informacija apie iniciatoriaus įrenginių savininko iCloud paskyrą ir telefono numerį, su pasiūlymu užmegzti ryšį per AWDL (Apple Wireless Direct Link). ) protokolą, kažką panašaus į „Wi-Fi“. „Fi Direct“ iš „Android“ pasaulio. Šio BLE paketo struktūra labai įdomi, ją analizuosime toliau.

Gavėjo pusėje „AirDrop“ gali būti trijų būsenų:

  • Išjungtas - iš viso nebus aptiktas
  • Tik kontaktams — priimti failus tik iš jūsų adresų knygelės adresatų. Šiuo atveju kontaktu laikomas telefono numeris arba el. pašto adresas, su kuriuo susieta icloud paskyra. Čia veikia ta pati paskyrų susiejimo logika kaip ir naudojant „iMessages Messenger“.
  • Visiems – telefonas bus matomas visiems

Kaip aš naudoju AirDrop vietoj Tinder
„AirDrop“ privatumo nustatymai. Numatytoji būsena nustatyta į „Kontaktams“.

Atsižvelgiant į jūsų privatumo nustatymus, telefonas arba toliau užmegs ryšį per AWDL, arba tiesiog ignoruos BLE paketą. Jei „AirDrop“ nustatyta kaip „visiems“, kitame žingsnyje įrenginiai jungsis vienas prie kito per AWDL, tarp jų sukurs IPv6 tinklą, kuriame AirDrop veiks kaip įprastas taikomųjų programų protokolas, naudodamas mDNS per standartinį IP protokolą.

Kaip aš naudoju AirDrop vietoj Tinder

Jei norite eksperimentuoti, galite žiūrėti, kaip AWDL veikia „MacBook“. Visi mainai pagal šį protokolą vyksta per sąsają awdl0, kurį galima lengvai užfiksuoti naudojant Wireshark arba tcpdump.

Šiame etape mes žinome tris subjektus:

Bluetooth LowEnergy (BLE) paketas - šiame pakete yra duomenys, pagal kuriuos telefonas nusprendžia, ar iniciatorius yra jo kontaktų sąraše, ar ne.
„Apple Wireless Direct Link“ (AWDL) – patentuotas „Wi-Fi Direct“ pakaitalas iš „Apple“, aktyvuojamas, jei ryšys per BLE buvo sėkmingas.
desantavimui - taikomosios programos protokolas, veikiantis įprastame IP tinkle naudojant mDNS, HTTP ir kt. Gali veikti bet kuriame Ethernet tinkle.

BLE paketo struktūra

Gali atrodyti, kad šis BLE paketas tik vieną kartą nuskrenda nuo iniciatoriaus iki gavėjo, o tada apsikeitimas vyksta tik per AWDL. Tiesą sakant, AWDL jungtis tarnauja labai trumpai, tik kelias minutes ar mažiau. Taigi, jei failo gavėjas nori jums atsakyti, jis taip pat veiks kaip iniciatorius ir išsiųs BLE paketą.

Kaip telefonas, esantis priimančiojoje pusėje, supranta, ar iniciatoriaus numeris/el. pašto adresas yra jo kontaktų sąraše, ar ne? Labai nustebau, kai sužinojau atsakymą: iniciatorius siunčia savo numerį ir el. paštą kaip sha256 maišą, bet ne visiškai, o tik pirmus 3 baitus.

Kaip aš naudoju AirDrop vietoj Tinder
„AirDrop“ iniciatoriaus BLE paketo struktūra. Naudodamas maišą iš telefono numerio ir el. pašto, atsakantis asmuo supranta, ar iniciatorius yra jo kontaktų sąraše.

Pavyzdžiui, jei jūsų Apple paskyra (dar žinoma kaip iCloud, dar žinoma kaip iMessages) yra susieta su numeriu +79251234567, maiša iš jos bus apskaičiuojama taip:

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

Ir dėl to BLE paketo vertė nuskris 07de58 dėl telefono numerio. Atrodo, kad to nepakanka, tačiau dažnai šių trijų baitų pakanka, kad būtų galima sužinoti tikrąjį telefono numerį.

Taip pat svarbu atsiminti, kad AirDrop privatumo nustatymas neturi įtakos duomenims BLE pakete. Jame bus telefono numerio maiša, net jei nustatytas nustatymas „Visiems“. Taip pat BLE paketas su telefono numerio maiša išsiunčiamas atidarius langą Share ir įvedus Wi-Fi tinklo slaptažodį.

Išsamią BLE paketų struktūros ir galimų atakų prieš ją analizę skaitykite tyrime Apple Bleee ir rusų vertimas į Habré.

„Apple Bleee“ tyrime buvo paskelbti paruošti „python“ scenarijai, skirti automatizuoti duomenų analizę BLE paketuose. Labai rekomenduoju peržiūrėti tyrimus ir išbandyti programas, ten yra daug įdomių dalykų.

AWDL („Apple Wireless Direct Link“)

AWDL yra patentuotas „Apple“ priedas prie įprasto „Wi-Fi“, kuris įgyvendina kažką panašaus į „Wi-Fi Direct“. Nelabai žinau, kaip tai veikia, yra specialus būdas paskelbti ir koordinuoti kanalus, ir jis veikia tik patentuotose Apple tvarkyklėse. Tai yra, tik „MacBooks“ / „iPhone“ gali prisijungti per AWDL.

Liūdni Android telefonų savininkai vis dar tik svajoja apie tinkamai veikiančią Wi-Fi Direct funkciją.

Kaip aš naudoju AirDrop vietoj Tinder

Tačiau ne taip seniai vaikinai iš seemoo-lab parašė visiškai atviro kodo AWDL įgyvendinimą ir pavadino jį Atidarykite belaidį ryšį (pelėda). Norint paleisti OWL, „Wi-Fi“ adapteris turi palaikyti monitoriaus režimą ir paketų įvedimą, todėl jis neveikia visose aparatūrose. Svetainėje yra Raspberry pi konfigūravimo pavyzdžių. Tai veikia žymiai prasčiau nei originalus AWDL, pavyzdžiui, ryšio nustatymo laikas pailgėja ~10 sekundžių, o ne pora sekundžių originalui, bet veikia.

Kaip aš naudoju AirDrop vietoj Tinder

Be to, šie vaikinai nuo nulio parašė „AirDrop“ protokolo įgyvendinimą „Python“, vadinamą „OpenDrop“. Jis gali būti naudojamas tiek kartu su OWL, kad paleistumėte „AirDrop“ sistemoje „Linux“, tiek su originaliu AWDL „MacOS“.

Kaip suvynioti naudojant „AirDrop“.

Kaip aš naudoju AirDrop vietoj Tinder
Tipiška situacija su riedėjimu per AirDrop

Pakankamai nuobodžios teorijos, laikas pradėti praktiką. Taigi esate apsiginklavę visa reikalinga įranga ir pasiruošę judėti į priekį bei ridenti kamuoliukus naudodami aukštąsias technologijas.

Pirmiausia turite atsiminti pagrindinius dalykus:

  • „AirDrop“ veiks tik tada, kai telefonas bus atrakintas – geriausia, jei taikinys nuolat žiūri į telefoną. Dažniausiai tai atsitinka tose vietose, kur nuobodu, pavyzdžiui, metro.
  • Reikia laiko — paprastai teigiama konversija įvyksta 3–5 atsiųstame paveikslėlyje, todėl jums reikia bent 5 minučių ramybės vienoje vietoje. Teigiama konversija laikau momentą, kai per AirDrop sutikote toliau bendrauti per Messenger. Tai sunku įgyvendinti skrydžio metu, nes ne iš karto aišku, kas priėmė jūsų naudingąjį krovinį, ir greičiausiai sušilsite, kol galėsite dėl ko nors susitarti.
  • Suasmeninta kūryba veikia geriau — Laikmenos turinį, kurį siunčiate per „AirDrop“, vadinu naudingąja apkrova. Tik paveikslėlis su memu greičiausiai niekur nenuves; turinys turi atitikti situaciją ir turėti aiškų raginimą veikti.

Klasikinis būdas – tiesiog telefonas

Tinka visiems, kurie turi iPhone, nereikalauja jokių specialių įgūdžių, išskyrus socialinius. Perjungiame AirDrop į Everybody režimą ir leidžiamės į metro. Įprastą dieną (prieš saviizoliaciją) Maskvos metro vagone pastebėjau kažką panašaus:

Kaip aš naudoju AirDrop vietoj Tinder
Tikslų sąrašas

Kaip matote, beveik visi telefonai transliuoja savininko vardą ir pavardę, pagal kurią galime lengvai nustatyti jo lytį ir paruošti tinkamą apkrovą.

Naudinga apkrova

Kaip rašiau aukščiau, unikali naudingoji apkrova veikia geriau. Idealiu atveju nuotrauka turėtų kreiptis į savininką vardu. Anksčiau turėjau formuoti kūrybiškumą naudojant grafinį redaktorių užrašų programoje ir tam tikrą mobilųjį „Photoshop“ stubuką. Dėl to, kol buvo nupieštas reikiamas paveikslas, jau reikėjo lipti iš automobilio.

Mano draugė Anė koteeq, konkrečiai mano prašymu, parašė „Telegram“ robotą, kuris generuoja reikiamas nuotraukas su užrašu. @AirTrollBot. Labai dėkoju jai už tai, kad dabar galiu ridenti kamuoliukus daug technologiškiau nei anksčiau.

Pakanka nusiųsti robotui teksto eilutę, ir jis ją sugeneruos kaip vaizdą, tiksliai atitinkantį peržiūros formatą AirDrop lange. Galite pasirinkti simbolį paveikslėlyje paspausdami mygtukus. Taip pat galite pasirinktinai įgalinti pridėti savo Telegram prisijungimo vardą prie paveikslėlio kampe.

Kaip aš naudoju AirDrop vietoj Tinder
Naudingos apkrovos generatorius

Blogiausia buvo tai, kad nuotrauka iškart buvo parodyta aukos ekrane be jokių veiksmų. Jums net nereikėjo spustelėti „priimti“. Pakrovus naudingą krovinį buvo galima pamatyti momentinę veido reakciją. Deja, nuo 13 iOS nepažįstamų kontaktų nuotraukos ekrane neberodomos. Štai kaip atrodė anksčiau:

Kaip aš naudoju AirDrop vietoj Tinder
Naudinga apkrova pristatyta iOS ≤12

Dabar vietoj peržiūros rodomas tik siuntėjo įrenginio pavadinimas. Todėl vienintelis būdas susisiekti su auka, turinčia iOS ≥13, vardu – tai nustatyti savo įrenginio nustatymuose, pavyzdžiui, paskambinti telefonu „Julija, labas“. Patarimas: įrenginio pavadinime galite naudoti jaustukus. Žinoma, šis metodas nėra toks ryškus kaip paveikslėlyje, tačiau jis labai padidina galimybę spustelėti mygtuką „Sutinku“.

Tolesnis veiksmų aprašymas nepatenka į techninio straipsnio ribas ir priklauso tik nuo jūsų vaizduotės, improvizacijos ir humoro. Galiu pasakyti tik tiek, kad tie, kurie prisijungia prie šio žaidimo ir pradeda tau atsakyti nuotraukomis ar siųsti užrašus, dažniausiai yra labai linksmi, atviri ir įdomūs žmonės. Tie, kurie pažiūrėję į nuotrauką tiesiog nereaguoja, o dar blogiau – tiesiog atmeta žinią, dažniausiai yra nuobodūs snobai ir išdykėliai. Neretai įtakos turi ir baimės faktorius: trapūs, nedrąsūs žmonės bijo bendrauti su tokiu įžūliu anonimišku nepažįstamu žmogumi.

Automatinė rinkimo mašina

Jei esate per daug tingus generuoti ir siųsti naudingus krovinius rankiniu būdu ir norite automatizuoti procesą, galite sukurti automatinį balso rinkimo aparatą, kuris fone siųs nuotraukas per „AirDrop“ visiems, esantiems diapazone. Raspberry pi zero naudosime kaip aparatinę platformą, bet tiks bet koks kompiuteris su Linux, svarbiausia, kad Wi-Fi kortelė palaiko monitoriaus režimą ir paketų įpurškimą.

Kaip aš naudoju AirDrop vietoj Tinder
Garsiakalbio siuntėjas per Airdrop, pagrįstas Raspberry pi zero w + UPS Lite akumuliatoriaus skydeliu

Yra „AirDrop“ užliejimo programų, skirtų „Jailbreak iPhone“, jos veikia stabiliau nei atviros raspberry pi versijos.

OWL nustatymas raspberry pi yra išsamiai aprašytas adresu projekto svetainė, bet man labiau patinka naudoti „Kali Linux“ versiją, skirtą Raspberry Pi Zero, nes jame jau yra įdiegtos „Nexmon“ pataisos, leidžiančios įjungti „Wi-Fi“ monitoriaus režimą rpi0.

Svarbu atsiminti, kad Airdrop (tiksliau AWDL) pacientams aktyvuojamas tik gavus BLE paketą. Todėl turime jį siųsti kelių sekundžių intervalais. Tai galima padaryti naudojant įrankį py-bluetooth-utils. Naudodamas start_le_advertising() funkciją, siunčiu duomenų eilutę iš Apple bleee pavyzdžių: 000000000000000001123412341234123400.

Kai turėsite veikiantį OWL demoną, galėsite paleisti mano šakutę opendrop. Saugykloje yra scenarijus flooder.py, kuri kiekvienam siunčia nuotrauką kak_dela.jpeg.

Mano pastebėjimais, avietinis pi zero w yra nestabilus monitoriaus režimu. Po maždaug 20 minučių aktyvaus užliejimo veikimo Wi-Fi posistemis sugenda. Problemą aprašo autorius pwnagoči, ir manoma, kad tai sukelia perkaitimas. Būtina numatyti sarginį šunį arba naudoti stabilesnę aparatinę įrangą

Maniacello režimas – aš žinau tavo numerį

Jei norite parodyti save kaip neadekvatų maniaką ir amžinai atgrasyti nuo noro toliau su jumis bendrauti, galite pabandyti sužinoti šalia esančio žmogaus telefono numerį.

Kaip sužinojome anksčiau, iniciatoriaus išsiųstuose BLE paketuose yra pirmieji trys sha256 telefono numerio baitai. Ši maiša gali būti užfiksuota, kai auka spustelėja mygtuką „bendrinti“ ir pradeda nuskaityti „airdrop“ įrenginius arba įvesties lauke paliečia naujo tinklo „Wi-Fi“ slaptažodį (tokiu būdu „Apple“ ieško draugų, kurių galite paprašyti tinklo slaptažodį).

Turėsite kažkaip suaktyvinti aukos maišos pranešimą ir jį sugauti. Aš naudoju komunalines paslaugas iš saugyklos Apple Bleee. Kadangi „Bluetooth“ įrenginių MAC adresai yra atsitiktiniai ir nuolat keičiasi, šiame sąraše turėsite rasti kitą būdą, kaip nustatyti norimą įrenginį. Užduotį supaprastina tai, kad „iOS“ transliuoja dabartinę telefono būseną: ekranas išjungtas, ekranas įjungtas, užrakintas ekranas, atrakintas ir kt. Todėl tiesiog stebėdami aukos veiksmus galite palyginti esamą įrenginio būseną su lentelėje esančiu įrenginiu. Lengviausia pagauti momentą, kai vartotojas išsitraukia telefoną iš kišenės, įjungia ekraną ir pirštu ar veidu atrakina telefoną. Visa tai bus matoma uostyklėje.

Kaip aš naudoju AirDrop vietoj Tinder
piktograma Х reiškia, kad buvo sugautas paketas su telefono maišais.

Jų analizatorius kartais sugenda, bet dažniausiai jis veikia. Visiškai neatpasakosiu pažeidžiamumo esmės, nes ją išsamiai išanalizavo Apple Blee autoriai, aprašysiu tik savo patirtį. Pasakysiu tik tiek, kad naudoju USB „Bluetooth“ adapterį CSR 8510 mikroschemoje, nes jis man veikia daug stabiliau nei „Bluetooth“ adapteris, įmontuotas „MacBook“ ir įdėtas į virtualią mašiną.

Taigi mes pagavome maišą iš aukos telefono ir gavome trokštamus tris baitus iš telefono numerio maišos.

Kaip aš naudoju AirDrop vietoj Tinder
Sulaikytas BLE paketas su telefono numerio maiša naudojant programą read_ble_state.py

Žinome, kad Rusijoje visi mobiliojo ryšio numeriai prasideda kodu +79 ir, greičiausiai, mūsų aukos telefonas turi tą patį kodą. Pasirodo, turime skaičių diapazoną nuo +79000000000 iki +79999999999, tai yra apie milijardą skaičių.

Norėdami susiaurinti diapazoną, imame tik tuos kodus, kurie iš tikrųjų yra užregistruoti bet kuriame operatoriuje, o likusius išmetame. Dėl to diapazonas tampa perpus mažesnis, maždaug pusė milijardo skaičių.

Tada sugeneruojame sha256 iš visų skaičių ir išsaugome tik pirmuosius 3 baitus iš kiekvienos maišos. Įvedame šį sąrašą į Sqlite duomenų bazę ir sukuriame indeksą, kad pagreitintume paiešką.

Taip atrodo duomenys duomenų bazėje:

Kaip aš naudoju AirDrop vietoj Tinder
Visi rusiški telefonų numeriai ir pirmieji trys maišos baitai

Tada, turėdami aukos maišą, duomenų bazėje galime ieškoti visų atitikmenų. Paprastai viename maišelyje yra 15-30 atitikmenų.

Kaip aš naudoju AirDrop vietoj Tinder
Visi skaičiai, atitinkantys aukos maišą

Akivaizdu, kad ne visi šie skaičiai iš tikrųjų naudojami. Nereikalingus galime atkirsti naudodami HLR užklausą arba nematomą SMS žinutę. Iš 30 numerių 5 buvo rasti internete.

Kaip aš naudoju AirDrop vietoj Tinder
HLR užklausos rezultatas. Tinklo numeriai paryškinti žaliai.

Galėčiau ir toliau naršyti skaičius, pavyzdžiui, pridėti juos visus prie „Telegram“ / „Whatsapp“ ir žiūrėti į avatarus, patikrinti duomenų bazes, pvz., „Getcontact“ ir pan. Tačiau pasirodė, kad paprasčiau tiesiog skambinti visais penkiais numeriais po vieną ir stebėti, kada suskamba aukos telefonas.

Kaip aš naudoju AirDrop vietoj Tinder
Taikinys yra

Visi

  • Raspberry pi flooderis labai nestabilus, reikia išbandyti kitas pavienes lentas.
  • Vietinis „iOS“ užliejimas būtų daug geresnis, bet neradau tokio, kuris veiktų „iOS 12–13“ net ir su jailbreak.
  • Scenarijus flooder.py yra labai kvailas. Tikriausiai jis galėtų sukurti suasmenintą paveikslėlį, paėmęs pavadinimą iš gavėjo įrenginio pavadinimo ir iškirpęs žodį „iPhone“.
  • Telefono numerio nustatymo metodą galima optimizuoti patikrinus tik tai, ar numeris susietas su „iMessage“. Tai greičiausiai suteiks jums beveik 100% pataikymo rodiklį.

išvada

Tai puiki pramoga metro. Yra wow efektas, smalsuoliai tuo domisi. Buvo daug improvizacijos, buvo labai juokingų atvejų. Pasirodo, daugelis žmonių yra pasirengę žaisti kartu ir netgi atšaukti savo planus, kad išliptų jūsų metro stotyje ir pakiltų kavos. Per metus susipažinau su daugybe žmonių ir su kai kuriais toliau bendrauju.

Kartais išjungiu „Telegram“ prisijungimą ir linksminuosi tai patinka.

Kaip aš naudoju AirDrop vietoj Tinder

Kaip aš naudoju AirDrop vietoj Tinder

Šaltinis: www.habr.com

Добавить комментарий