Kuidas ma Tinderi asemel AirDropi kasutan

Kuidas ma Tinderi asemel AirDropi kasutan

Apple'i seadmetel on suurepärane Airdrop funktsioon – see on loodud andmete saatmiseks seadmete vahel. Sel juhul pole vaja seadistada ega seadmete eelnevat sidumist, kõik toimib karbist välja kahe klõpsuga. Andmete edastamiseks kasutatakse Wi-Fi kaudu lisandmoodulit ja seetõttu edastatakse andmeid tohutu kiirusega. Samal ajal saate mõnda nippi kasutades mitte ainult faile saata, vaid ka teada saada selle inimese telefoninumbrit, kes on teiega samas metroovagunis.

Viimase aasta olen seda funktsiooni kasutanud huvitavate tutvuste sõlmimiseks teel tööle, ühistranspordis ja ühistoitlustusasutustes. Keskmiselt õnnestub mul sõlmida mitu uut tutvust päevas ja mõnikord lahkun metroost uue inimese seltsis.

Lõike all räägin teile kõigist hurmadest.

Kuidas AirDrop töötab?

Kuidas ma Tinderi asemel AirDropi kasutan

AirDrop on protokoll failide edastamiseks peer-to-peer võrgus. See võib töötada nii tavalise kohaliku võrgu kaudu kui ka õhu kaudu mis tahes Apple'i seadmete vahel. Analüüsime viimast juhtumit, kui kaks seadet ei ole ühendatud ühisesse võrku, vaid on lihtsalt läheduses, näiteks sõidavad kaks telefoniga inimest metroovagunis ega ole ühendatud ühise WiFi-ga.

Kuidas ma Tinderi asemel AirDropi kasutan
AirDropi kaudu edastamise esimene etapp on BLE-paketi saatmine

AirDropi kaudu andmeedastuse algatamiseks saadab algataja telefon BLE levipaketi, mis sisaldab räsiinfot iCloudi konto ja algataja seadmete omaniku telefoninumbri kohta koos ettepanekuga luua ühendus AWDL (Apple Wireless Direct Link) kaudu. ) protokolli, näiteks Wi-Fi. Fi Direct Androidi maailmast. Selle BLE paketi struktuur on väga huvitav, analüüsime seda edasi.

Saaja poolel võib AirDrop olla kolmes olekus:

  • Välja lülitatud - ei tuvastata üldse
  • Ainult kontaktidele — aktsepteerige faile ainult teie aadressiraamatus olevatelt kontaktidelt. Sellisel juhul loetakse kontaktiks telefoninumber või e-posti aadress, millega icloudi konto on lingitud. Siin töötab sama kontode linkimise loogika, mis iMessages Messengeri puhul.
  • Kõigile - telefon on kõigile nähtav

Kuidas ma Tinderi asemel AirDropi kasutan
AirDropi privaatsusseaded. Vaikimisi olek on seatud "Kontaktidele".

Sõltuvalt teie privaatsusseadetest jätkab telefon ühenduse loomist AWDL-i kaudu või lihtsalt ignoreerib BLE-paketti. Kui AirDrop on seatud “kõigile”, siis järgmises sammus loovad seadmed omavahel AWDL-i kaudu ühenduse, loovad nende vahele IPv6 võrgu, mille sees AirDrop hakkab töötama tavalise rakendusprotokollina, kasutades mDNS-i üle standardse IP-protokolli.

Kuidas ma Tinderi asemel AirDropi kasutan

Katsete jaoks saate vaadata, kuidas AWDL MacBookis töötab. Kogu selle protokolli kohane vahetus toimub liidese kaudu awdl0, mida saab Wiresharki või tcpdumpi abil hõlpsasti jäädvustada.

Selles etapis tunneme kolme olemit:

Bluetooth LowEnergy (BLE) pakett - see pakett sisaldab andmeid, mille põhjal telefon otsustab, kas algataja on tema kontaktide loendis või mitte.
Apple Wireless Direct Link (AWDL) — Apple'i Wi-Fi Directi patenteeritud asendus, mis aktiveeritakse, kui side BLE kaudu oli edukas.
langevarjudessant - rakendusprotokoll, mis töötab tavalises IP-võrgus, kasutades mDNS-i, HTTP-d jne. Võib töötada mis tahes Etherneti võrgus.

BLE paketi struktuur

Võib tunduda, et see BLE pakett lendab algatajalt adressaadini vaid korra ja siis toimub vahetus ainult AWDL-i kaudu. Tegelikkuses on AWDL-ühenduse eluiga väga lühike, vaid mõni minut või vähem. Seega, kui faili saaja soovib sulle vastata, tegutseb ta ka algatajana ja saadab BLE paketi.

Kuidas saab vastuvõttev telefon aru, kas algataja number/e-post on tema kontaktide loendis või mitte? Olin väga üllatunud, kui vastuse teada sain: algataja saadab oma numbri ja meili sha256 räsina, kuid mitte täielikult, vaid ainult esimesed 3 baiti.

Kuidas ma Tinderi asemel AirDropi kasutan
AirDropi algataja BLE-paketi struktuur. Telefoninumbri ja e-posti räsi kasutades saab vastaja aru, kas algataja on tema kontaktide loendis.

Näiteks kui teie Apple'i konto (teise nimega iCloud, aka iMessages) on lingitud numbriga +79251234567, arvutatakse sellest saadav räsi järgmiselt:

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

Ja selle tulemusena lendab BLE-paketi väärtus minema 07de58 telefoninumbri jaoks. Tundub, et sellest ei piisa, kuid sageli piisab nendest kolmest baidist tegeliku telefoninumbri väljaselgitamiseks.

Samuti on oluline meeles pidada, et AirDropi privaatsusseade ei mõjuta BLE-paketi andmeid. Telefoninumbri räsi sisaldub selles, isegi kui seade „Kõigile” on määratud. Samuti saadetakse jagamisakna avamisel ja Wi-Fi võrgu parooli sisestamisel BLE-pakett telefoninumbri räsiga.

BLE-pakettide struktuuri ja selle vastu suunatud võimalike rünnakute üksikasjaliku analüüsi saamiseks lugege uuringut Apple Bleee ja vene keel tõlge Habré keelde.

Apple Bleee uuringus avaldati valmis pythoni skriptid andmete analüüsi automatiseerimiseks BLE pakettides. Soovitan soojalt uurida uuringuid ja proovida programme, seal on palju huvitavat.

AWDL (Apple Wireless Direct Link)

AWDL on Apple'i patenteeritud lisand tavalisele WiFi-le, mis rakendab midagi nagu Wi-Fi Direct. Ma ei tea täielikult, kuidas see töötab, kanalite teatamiseks ja koordineerimiseks on spetsiaalne viis ning see töötab ainult Apple'i patenteeritud draiveritel. See tähendab, et AWDL-i kaudu saavad ühendust ainult MacBookid/iPhone'id.

Kurvad Android-telefonide omanikud unistavad endiselt korralikult töötavast Wi-Fi Directi funktsioonist.

Kuidas ma Tinderi asemel AirDropi kasutan

Aga mitte nii kaua aega tagasi poisid pärit seemoo-lab kirjutas täiesti avatud lähtekoodiga AWDL-i teostuse ja nimetas selle Avage Wireless Link (ÖÖKULL). OWL-i käitamiseks peab Wi-Fi-adapter toetama monitorirežiimi ja pakettide sisestamist, nii et see ei tööta igal riistvaral. Saidil on näiteid Raspberry pi konfiguratsioonist. See töötab oluliselt kehvemini kui algne AWDL, näiteks pikeneb ühenduse seadistamise aeg originaalil paari sekundi asemel ~10 sekundit, aga töötab.

Kuidas ma Tinderi asemel AirDropi kasutan

Samuti kirjutasid need tüübid algusest peale Pythonis AirDropi protokolli teostuse, mida nimetatakse OpenDrop. Seda saab kasutada nii koos OWL-iga, et käivitada AirDrop Linuxis, kui ka algse AWDL-iga MacOS-is.

Kuidas kerida AirDropi kaudu

Kuidas ma Tinderi asemel AirDropi kasutan
Tüüpiline olukord AirDropi kaudu kerimisel

Piisavalt igavast teooriast, on aeg hakata harjutama. Nii et olete relvastatud kogu vajaliku varustusega ja olete valmis kõrgtehnoloogia abil edasi liikuma ja palle kokku kerima.

Kõigepealt peate meeles pidama peamised punktid:

  • AirDrop töötab ainult siis, kui telefon on lukustamata – kõige parem on, kui sihtmärk vaatab pidevalt telefoni. Enamasti juhtub see kohtades, kus on igav, näiteks metroos.
  • Vaja aega — tavaliselt toimub positiivne konversioon saadetud 3.-5. pildil, seega vajate ühes kohas vähemalt 5 minutit vaikset aega. Positiivseks konversiooniks pean hetke, mil nõustusid AirDropi vahendusel jätkama messengeris suhtlemist. Seda on käigupealt keeruline rakendada, sest pole kohe selge, kes teie kandevõime vastu võttis, ja tõenäoliselt soojendate end enne, kui jõuate milleski kokku leppida.
  • Isikupärastatud looming toimib paremini — Ma nimetan payloadiks meediumisisu, mille saadate AirDropi kaudu. Lihtsalt pilt koos meemiga ei vii suure tõenäosusega kuhugi; sisu peaks olema olukorraga asjakohane ja sellel peab olema selge üleskutse tegevusele.

Klassikaline meetod - lihtsalt telefon

Sobib kõigile, kellel on iPhone, ei nõua peale sotsiaalsete erioskuste. Lülitame AirDropi režiimile Kõik ja läheme alla metroosse. Tavalisel päeval (enne isoleerimist) Moskva metroovagunis täheldasin midagi sellist:

Kuidas ma Tinderi asemel AirDropi kasutan
Sihtmärkide loend

Nagu näete, edastavad peaaegu kõik telefonid omaniku nime, mille abil saame hõlpsalt kindlaks teha tema soo ja valmistada sobiva kandevõime.

Kasulik koormus

Nagu ma eespool kirjutasin, töötab ainulaadne koormus paremini. Ideaalis peaks pilt pöörduma omaniku poole nimepidi. Varem pidin loovust kujundama, kasutades märkmete rakenduses graafilist redaktorit ja mingit mobiilset Photoshopi tünni. Sellest tulenevalt oli selleks ajaks, kui nõutud pilt valmis sai, juba vaja autost välja tulla.

Mu sõber Anya koteeq, konkreetselt minu palvel, kirjutas Telegrami robot, mis genereerib lennult vajalikud pildid koos pealdisega: @AirTrollBot. Tänan teda väga selle eest, et saan nüüd palle palju tehnoloogilisemalt veeretada kui varem.

Piisab, kui saata robotile rida teksti ja see genereerib selle pildina, mis vastab täpselt AirDropi akna eelvaate kuvasuhtele. Pildil oleva tähemärgi saate valida nuppude vajutamisega. Soovi korral saate lubada ka oma Telegrami sisselogimise lisamise nurgas olevale pildile.

Kuidas ma Tinderi asemel AirDropi kasutan
Kasuliku koormuse generaator

Kõige hullem oli see, et pilti näidati kohe ohvri ekraanil ilma igasuguse tegevuseta. Sa ei pidanud isegi nuppu "nõustu". Näol oli näha kohest reaktsiooni koorma laadimisel. Kahjuks ei kuvata alates iOS 13-st enam tundmatute kontaktide pilte ekraanil. Siin on, kuidas see enne välja nägi:

Kuidas ma Tinderi asemel AirDropi kasutan
Kasulik koormus iOS-is ≤12

Nüüd kuvatakse eelvaate asemel ainult saatja seadme nimi. Seetõttu on ainus viis iOS ≥13 ohvriga nimepidi ühendust võtta, kui seadistada see oma seadme seadetes, näiteks helistada telefonile "Yulia, tere". Vihje: saate seadme nimes kasutada emotikone. Muidugi pole see meetod nii ere kui pildi puhul, kuid see suurendab oluliselt võimalust klõpsata nupul „Nõustun”.

Tegevuste edasine kirjeldus jääb tehnilise artikli ulatusest välja ja sõltub ainult teie kujutlusvõimest, improvisatsioonist ja huumorist. Võin vaid öelda, et need, kes selle mänguga liituvad ja sulle piltidega vastama hakkavad või märkmeid saatma, on enamasti väga rõõmsameelsed, avatud ja huvitavad inimesed. Need, kes pärast pildi vaatamist lihtsalt ei reageeri või, mis veelgi hullem, lihtsalt lükkavad sõnumi tagasi, on tavaliselt igavad snoobid ja pruudid. Sageli mängib rolli ka hirmutegur: haprad, arglikud inimesed kardavad suhelda sellise ülemeeliku anonüümse võõraga.

Automaatne korjamismasin

Kui olete koormate käsitsi genereerimiseks ja saatmiseks liiga laisk ning soovite protsessi automatiseerida, saate teha automaatse hääle valimise masina, mis saadab taustal AirDropi kaudu pilte kõigile, kes on levialas. Riistvaraplatvormina hakkame kasutama raspberry pi zero, kuid iga Linuxiga arvuti sobib, peaasi, et Wi-Fi kaart toetaks monitori režiimi ja pakettide süstimist.

Kuidas ma Tinderi asemel AirDropi kasutan
Kõlari saatja Airdropi kaudu, mis põhineb raspberry pi zero w + UPS Lite akukaitsel

Jailbreak iPhone'ide jaoks on olemas AirDropi üleujutusprogrammid, need töötavad stabiilsemalt kui Raspberry pi avatud versioonid

OWL-i seadistamist raspberry pi-le kirjeldatakse üksikasjalikult aadressil projekti veebisait, kuid eelistan Raspberry Pi Zero jaoks kasutada Kali Linuxi järgu, kuna sellesse on juba installitud nexmoni paigad, mis lubavad rpi0-s Wi-Fi-monitori režiimi.

Oluline on meeles pidada, et Airdrop (õigemini AWDL) aktiveeritakse patsientidele alles pärast BLE paketi saamist. Seetõttu peame selle saatma mõnesekundiliste intervallidega. Seda saab teha utiliidi abil py-bluetooth-utils. Kasutades funktsiooni start_le_advertising() saadan andmestringi apple bleee näidetest: 000000000000000001123412341234123400.

Kui teil on töötav OWL-deemon, saate käivitada minu kahvli opendrop. Hoidlas on skript flooder.py, mis saadab igaühele pildi kak_dela.jpeg.

Minu tähelepanekute kohaselt on vaarika pi zero w monitorirežiimis ebastabiilne. Pärast umbes 20-minutilist aktiivset üleujutustööd jookseb Wi-Fi alamsüsteem kokku. Probleemi kirjeldab autor pwnagotchija on arvatavasti põhjustatud ülekuumenemisest. On vaja pakkuda valvekoera või kasutada stabiilsemat riistvara

Maniacello režiim – ma tean su numbrit

Kui soovite näidata end ebaadekvaatse maniakina ja igaveseks heidutada soovi teiega edasi suhelda, võite proovida teada saada läheduses oleva inimese telefoninumbrit.

Nagu varem teada saime, sisaldavad algataja saadetud BLE-paketid sha256 telefoninumbri kolme esimest baiti. See räsi võib tabada, kui ohver klõpsab jagamisnupul ja hakkab skannima lennuvälja seadmeid või puudutab sisestusväljal uue võrgu Wi-Fi parooli (sel viisil otsib Apple levialas olevaid sõpru, kellelt saate taotleda võrgu parool).

Peate mingil moel ohvrilt räsisõnumi käivitama ja selle kinni püüdma. Ma kasutan hoidlast pärit utiliite Apple Bleee. Kuna seadmete Bluetoothi ​​MAC-aadressid on juhuslikud ja muutuvad pidevalt, peate leidma mõne muu võimaluse selles loendis soovitud seadme määramiseks. Ülesannet lihtsustab asjaolu, et iOS edastab telefoni hetkeolekut näiteks: ekraan väljas, ekraan sees, lukustatud ekraan, lukustamata jne. Seetõttu saate lihtsalt ohvri tegevust jälgides võrrelda seadme hetkeseisu tabelis oleva seadmega. Kõige lihtsam on tabada hetk, mil kasutaja võtab telefoni taskust välja, lülitab ekraani sisse ja avab telefoni näpu või näoga. Kõik see on nuusutajas nähtav.

Kuidas ma Tinderi asemel AirDropi kasutan
ikoon Х tähendab, et telefoni räsidega pakett püüti kinni.

Nende parser läheb mõnikord katki, kuid enamasti töötab. Ma ei räägi haavatavuse olemust täielikult ümber, kuna Apple Blee autorid analüüsisid seda üksikasjalikult, kirjeldan ainult oma kogemust. Ütlen lihtsalt, et kasutan USB-Bluetooth-adapterit CSR 8510 kiibil, kuna see töötab minu jaoks palju stabiilsemalt kui MacBooki sisseehitatud ja virtuaalmasinasse sisestatud Bluetooth-adapter.

Nii püüdsime ohvri telefonist räsi kinni ja saime telefoninumbri räsist kätte ihaldatud kolm baiti.

Kuidas ma Tinderi asemel AirDropi kasutan
Utiliidi abil kinni peetud BLE-pakett koos telefoninumbri räsimisega read_ble_state.py

Teame, et Venemaal algavad kõik mobiilinumbrid koodiga +79 ja suure tõenäosusega on ka meie ohvri telefonil sama kood. Selgub, et meil on arvude vahemik +79000000000 kuni +79999999999 ehk umbes miljard numbrit.

Vahemiku kitsendamiseks võtame ainult need koodid, mis on tegelikult registreeritud mis tahes operaatori juures, ja jätame ülejäänud kõrvale. Selle tulemusena muutub vahemik poole suuremaks, umbes poole miljardi numbrini.

Järgmisena genereerime kõikidest numbritest sha256 ja salvestame igast räsist ainult esimesed 3 baiti. Sisestame selle loendi Sqlite'i andmebaasi ja loome otsingu kiirendamiseks indeksi.

Andmebaasis olevad andmed näevad välja sellised:

Kuidas ma Tinderi asemel AirDropi kasutan
Kõik Venemaa telefoninumbrid ja räsi esimesed kolm baiti

Järgmisena saame ohvri räsi omades otsida andmebaasist kõiki vasteid. Tavaliselt on räsi kohta 15-30 vastet.

Kuidas ma Tinderi asemel AirDropi kasutan
Kõik numbrid, mis vastavad ohvri räsi

Ilmselgelt kõiki neid numbreid tegelikult ei kasutata. Ebavajalikud saame HLR päringu või nähtamatu SMS-i abil ära lõigata. 30 numbrist leiti 5 võrgust.

Kuidas ma Tinderi asemel AirDropi kasutan
HLR-i päringu tulemus. Võrgunumbrid on roheliselt esile tõstetud.

Võiksin jätkata numbrite sõelumist, näiteks lisada need kõik Telegrami/Whatsappi ja vaadata avatare, kontrollida andmebaase nagu Getcontact ja nii edasi. Kuid osutus lihtsamaks helistada ükshaaval kõigile viiele numbrile ja vaadata, millal ohvri telefon heliseb.

Kuidas ma Tinderi asemel AirDropi kasutan
Sihtmärk asub

Kõik

  • Raspberry pi flooder on väga ebastabiilne, peate proovima teisi üksikuid plaate.
  • IOS-i jaoks mõeldud native flooder oleks palju parem, kuid ma ei leidnud sellist, mis töötaks iOS 12-13 puhul isegi jailbreakiga.
  • Skript flooder.py on väga rumal. Tõenäoliselt võib see luua isikupärastatud pildi, võttes nime adressaadi seadme nimest ja lõigates välja sõna iPhone.
  • Telefoninumbri määramise meetodit saab optimeerida, kontrollides ainult seda, et number on iMessage'iga seotud. See annab teile suure tõenäosusega peaaegu 100% tabamusmäära.

Järeldus

See on metroo jaoks ideaalne meelelahutus. Tekib vau-efekt, uudishimulikud on sellest huvitatud. Palju oli improvisatsiooni, oli väga naljakaid juhtumeid. Selgub, et paljud inimesed on valmis kaasa mängima ja isegi oma plaanid tühistama, et teie metroojaamas maha tulla ja kohvi jooma minna. Aasta jooksul tutvusin paljude inimestega ja jätkan suhtlemist mõnega.

Mõnikord lülitan Telegrami sisselogimise välja ja naudin meeldib see.

Kuidas ma Tinderi asemel AirDropi kasutan

Kuidas ma Tinderi asemel AirDropi kasutan

Allikas: www.habr.com

Lisa kommentaar