Hvordan jeg bruker AirDrop i stedet for Tinder

Hvordan jeg bruker AirDrop i stedet for Tinder

Apple-enheter har en utmerket Airdrop-funksjon – den er laget for å sende data mellom enheter. I dette tilfellet er ingen oppsett eller foreløpig sammenkobling av enheter nødvendig; alt fungerer ut av esken med to klikk. Et tillegg over Wi-Fi brukes til å overføre data, og derfor overføres data med enorme hastigheter. Samtidig, ved å bruke noen triks, kan du ikke bare sende filer, men også finne ut telefonnummeret til personen som er i samme t-banevogn med deg.

Det siste året har jeg brukt denne funksjonen til å stifte interessante bekjentskaper på vei til jobb, på kollektivtransport og i offentlige serveringssteder. I gjennomsnitt klarer jeg å få flere nye bekjentskaper per dag, og noen ganger forlater jeg t-banen i selskap med en ny person.

Under kuttet vil jeg fortelle deg om alle persimmonene.

Hvordan fungerer AirDrop?

Hvordan jeg bruker AirDrop i stedet for Tinder

AirDrop er en protokoll for overføring av filer innenfor et peer-to-peer-nettverk. Det kan fungere både over et vanlig lokalt nettverk og over luften mellom alle Apple-enheter. Vi vil analysere det siste tilfellet, når to enheter ikke er koblet til et felles nettverk, men ganske enkelt er i nærheten, for eksempel reiser to personer med telefoner i en t-banevogn og ikke er koblet til en felles Wi-Fi.

Hvordan jeg bruker AirDrop i stedet for Tinder
Den første fasen av overføringen via AirDrop er å sende en BLE-pakke

For å starte dataoverføring via AirDrop, sender initiativtakerens telefon en BLE-kringkastingspakke, som inneholder hashed informasjon om iCloud-kontoen og telefonnummeret til eieren av initiativtakerens enheter, med et forslag om å etablere en tilkobling via AWDL (Apple Wireless Direct Link )-protokoll, noe sånt som Wi-Fi. Fi Direct fra Android-verdenen. Strukturen til denne BLE-pakken er veldig interessant, vi vil analysere den videre.

På mottakerens side kan AirDrop være i tre tilstander:

  • Avslått - vil ikke bli oppdaget i det hele tatt
  • Kun for kontakter — godta kun filer fra kontakter i adresseboken din. I dette tilfellet anses kontakten å være telefonnummeret eller e-posten som icloud-kontoen er knyttet til. Den samme logikken for å koble kontoer fungerer her som med iMessages messenger.
  • for alle – telefonen vil være synlig for alle

Hvordan jeg bruker AirDrop i stedet for Tinder
AirDrop personverninnstillinger. Standardstatusen er satt til "For kontakter".

Avhengig av personverninnstillingene dine, vil telefonen enten fortsette å opprette en forbindelse via AWDL eller bare ignorere BLE-pakken. Hvis AirDrop er satt til "for alle", vil enhetene i neste trinn koble seg til hverandre via AWDL, opprette et IPv6-nettverk mellom dem, der AirDrop vil fungere som en vanlig applikasjonsprotokoll ved å bruke mDNS over standard IP-protokollen.

Hvordan jeg bruker AirDrop i stedet for Tinder

For eksperimenter kan du se hvordan AWDL fungerer på en MacBook. All utveksling under denne protokollen skjer gjennom grensesnittet awdl0, som enkelt kan fanges opp ved hjelp av Wireshark eller tcpdump.

På dette stadiet kjenner vi tre enheter:

Bluetooth LowEnergy (BLE)-pakke - denne pakken inneholder data basert på hvilke telefonen bestemmer om initiativtakeren er i kontaktlisten eller ikke.
Apple Wireless Direct Link (AWDL) — en proprietær erstatning for Wi-Fi Direct fra Apple, aktivert hvis kommunikasjon via BLE var vellykket.
Airdrop - en applikasjonsprotokoll som opererer innenfor et vanlig IP-nettverk ved hjelp av mDNS, HTTP, etc. Kan fungere innenfor ethvert Ethernet-nettverk.

BLE-pakkestruktur

Det kan se ut til at denne BLE-pakken bare flyr én gang fra initiator til mottaker, og da skjer utvekslingen kun via AWDL. I virkeligheten har en AWDL-tilkobling svært kort levetid, bare noen få minutter eller mindre. Så hvis mottakeren av filen ønsker å svare deg, vil han også fungere som initiativtaker og sende en BLE-pakke.

Hvordan forstår telefonen på mottakersiden om initiativtakerens nummer/e-post står i kontaktlisten eller ikke? Jeg ble veldig overrasket da jeg fant ut svaret: initiativtakeren sender nummeret og e-posten som en sha256-hash, men ikke helt, men bare de første 3 bytene.

Hvordan jeg bruker AirDrop i stedet for Tinder
Strukturen til en BLE-pakke fra AirDrop-initiatoren. Ved å bruke hash fra telefonnummeret og e-posten forstår svarpersonen om initiativtakeren er i kontaktlisten hans.

For eksempel, hvis Apple-kontoen din (aka iCloud, aka iMessages) er koblet til nummeret +79251234567, vil hashen fra den bli beregnet slik:

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

Og som et resultat vil verdien i BLE-pakken fly bort 07de58 for et telefonnummer. Dette virker ikke nok, men ofte er disse tre bytene nok til å finne ut det virkelige telefonnummeret.

Det er også viktig å huske at AirDrop-personverninnstillingen ikke påvirker dataene i BLE-pakken. Hash-nummeret til telefonnummeret vil være inneholdt i det, selv om "For alle"-innstillingen er satt. Dessuten sendes en BLE-pakke med en hash av telefonnummeret når Del-vinduet åpnes og når passordet for Wi-Fi-nettverket skrives inn.

For en detaljert analyse av strukturen til BLE-pakker og mulige angrep på den, les studien Apple Bleee og russisk oversettelse til Habré.

Apple Bleee-studien publiserte ferdige python-skript for automatisering av dataanalyse i BLE-pakker. Jeg anbefaler på det sterkeste å sjekke ut forskningen og prøve programmene, det er mye interessant der ute.

AWDL (Apple Wireless Direct Link)

AWDL er et proprietært Apple-tillegg til vanlig Wi-Fi som implementerer noe som Wi-Fi Direct. Jeg vet ikke helt hvordan det fungerer, det er en spesiell måte å annonsere og koordinere kanaler på, og det fungerer bare på proprietære Apple-drivere. Det vil si at bare MacBooks/iPhones kan koble til via AWDL.

Triste Android-telefoneiere drømmer fortsatt bare om en riktig fungerende Wi-Fi Direct-funksjon.

Hvordan jeg bruker AirDrop i stedet for Tinder

Men ikke så lenge siden gutta fra seemoo-lab skrev en fullstendig åpen kildekode-implementering av AWDL og kalte den Åpne Wireless Link (UGLE). For å kjøre OWL må Wi-Fi-adapteren støtte monitormodus og pakkeinjeksjon, så den kjører ikke på all maskinvare. Nettstedet har eksempler på konfigurasjon på Raspberry pi. Dette fungerer betydelig dårligere enn den originale AWDL, for eksempel er tilkoblingsoppsetttiden forlenget med ~10 sekunder i stedet for et par sekunder for originalen, men det fungerer.

Hvordan jeg bruker AirDrop i stedet for Tinder

Dessuten skrev disse gutta fra bunnen av en implementering av AirDrop-protokollen i Python, kalt OpenDrop. Den kan brukes både i forbindelse med OWL for å starte AirDrop på Linux og med den originale AWDL på macOS.

Slik ruller du opp via AirDrop

Hvordan jeg bruker AirDrop i stedet for Tinder
Typisk situasjon med opprulling via AirDrop

Nok kjedelig teori, det er på tide å begynne å øve. Så du er bevæpnet med alt nødvendig utstyr og er klar til å bevege deg fremover og rulle opp baller ved hjelp av høyteknologi.

Først må du huske hovedpunktene:

  • AirDrop vil bare fungere hvis telefonen er ulåst – det er best hvis målet hele tiden ser på telefonen. Oftest skjer dette på steder hvor det er kjedelig, for eksempel i T-banen.
  • Trenger tid — vanligvis skjer en positiv konvertering på det 3-5 bildet som sendes, så du trenger minst 5 minutter med stilletid på ett sted. Jeg anser en positiv konvertering for å være øyeblikket da du ble enige via AirDrop om å fortsette å kommunisere i messenger. Dette er vanskelig å implementere med en gang, fordi det ikke umiddelbart er klart hvem som godtok nyttelasten din, og mest sannsynlig vil du varme opp før du kan bli enige om noe.
  • Personlig kreativ fungerer bedre — Jeg kaller nyttelast for medieinnholdet som du sender via AirDrop. Bare et bilde med en meme vil mest sannsynlig ikke føre noen vei; innholdet skal være relevant for situasjonen og ha en klar oppfordring til handling.

Den klassiske metoden - bare en telefon

Passer for alle som har iPhone, krever ingen spesielle ferdigheter utover sosiale. Vi bytter AirDrop til Everyone-modus og går ned til T-banen. På en vanlig dag (før selvisolasjon) i en metrobil i Moskva, observerte jeg noe slikt:

Hvordan jeg bruker AirDrop i stedet for Tinder
Liste over mål

Som du kan se, kringkaster nesten alle telefoner eierens navn, som vi enkelt kan bestemme kjønnet hans og forberede passende nyttelast.

Nyttelast

Som jeg skrev ovenfor, fungerer en unik nyttelast bedre. Ideelt sett bør bildet adressere eieren ved navn. Tidligere måtte jeg forme kreativitet ved å bruke en grafisk editor i notatapplikasjonen og en slags mobil Photoshop-stubb. Som et resultat, da det nødvendige bildet ble tegnet, var det allerede nødvendig å gå ut av bilen.

Min venn Anya koteeq, spesifikt på min forespørsel, skrev en Telegram-bot som genererer de nødvendige bildene med en bildetekst på farten: @AirTrollBot. Jeg takker henne veldig for at jeg nå kan trille baller mye mer teknologisk enn før.

Det er nok å sende boten en tekstlinje, og den vil generere den i form av et bilde som nøyaktig samsvarer med sideforholdet for forhåndsvisningen i AirDrop-vinduet. Du kan velge et tegn i bildet ved å trykke på knappene. Du kan også valgfritt aktivere å legge til Telegram-påloggingen til bildet i hjørnet.

Hvordan jeg bruker AirDrop i stedet for Tinder
Nyttelastgenerator

Det verste var at bildet ble vist umiddelbart på offerets skjerm uten noen handling. Du trengte ikke engang å klikke "godta". Du kunne se den umiddelbare reaksjonen i ansiktet fra å laste nyttelasten. Fra og med iOS 13 vises dessverre ikke lenger bilder fra ukjente kontakter på skjermen. Slik så det ut før:

Hvordan jeg bruker AirDrop i stedet for Tinder
Nyttelast levert på iOS ≤12

Nå, i stedet for en forhåndsvisning, vises bare navnet på avsenderens enhet. Derfor er den eneste måten å kontakte et offer med iOS ≥13 ved å angi det i innstillingene på enheten din, for eksempel ringe telefonen "Yulia, hallo." Hint: Du kan bruke emoji i enhetsnavnet. Selvfølgelig er denne metoden ikke like lyssterk som med et bilde, men den øker sjansen for å klikke på "godta" -knappen.

Ytterligere beskrivelse av handlingene er utenfor rammen av en teknisk artikkel og avhenger bare av fantasien, improvisasjonen og humoren din. Jeg kan bare si at de som blir med i dette spillet og begynner å svare deg med bilder eller sende notater vanligvis er veldig blide, åpne og interessante mennesker. De som etter å ha sett på bildet rett og slett ikke svarer, eller enda verre, rett og slett avviser budskapet, er som regel kjedelige snobber og prudes. Fryktfaktoren spiller også ofte en rolle: Skjøre, engstelige mennesker er redde for å samhandle med en så arrogant anonym fremmed.

Automatisk plukkemaskin

Hvis du er for lat til å generere og sende nyttelast manuelt, og du ønsker å automatisere prosessen, kan du lage en automatisk stemmevalgmaskin, som i bakgrunnen vil sende bilder via AirDrop til alle innenfor rekkevidde. Vi vil bruke raspberry pi zero som en maskinvareplattform, men enhver datamaskin med Linux vil gjøre det, det viktigste er at Wi-Fi-kortet støtter skjermmodus og pakkeinjeksjon.

Hvordan jeg bruker AirDrop i stedet for Tinder
Høyttalersender via Airdrop basert på raspberry pi zero w + UPS Lite batteriskjold

Det er AirDrop flooder-programmer for Jailbreak iPhones, de fungerer mer stabilt enn åpne versjoner på Raspberry Pi

Oppsett av OWL på raspberry pi er beskrevet i detalj på prosjektnettsted, men jeg foretrekker å bruke Kali Linux-bygget for Raspberry Pi Zero fordi det allerede har installert nexmon-patcher for å aktivere Wi-Fi-skjermmodus på rpi0.

Det er viktig å huske at Airdrop (eller rettere sagt AWDL) aktiveres for pasienter først etter å ha mottatt en BLE-pakke. Derfor må vi sende den med flere sekunders mellomrom. Dette kan gjøres ved hjelp av verktøyet py-bluetooth-utils. Ved å bruke start_le_advertising()-funksjonen sender jeg datastrengen fra apple blee-eksemplene: 000000000000000001123412341234123400.

Når du har en fungerende OWL-demon, kan du starte gaffelen min opendrop. Det er et skript i depotet flooder.py, som sender alle et bilde kak_dela.jpeg.

I følge mine observasjoner er raspberry pi zero w ustabil i monitormodus. Etter omtrent 20 minutter med aktiv flomdrift, krasjer Wi-Fi-delsystemet. Problemet er beskrevet av forfatteren pwnagotchi, og er antagelig forårsaket av overoppheting. Det er nødvendig å skaffe en vakthund eller bruke mer stabil maskinvare

Maniacello-modus - jeg vet nummeret ditt

Hvis du vil vise deg selv som en utilstrekkelig galning og for alltid fraråde ønsket om å fortsette å kommunisere med deg, kan du prøve å finne ut telefonnummeret til personen som er i nærheten.

Som vi lærte tidligere, inneholder BLE-pakkene sendt av initiativtakeren de tre første bytene av sha256-telefonnummeret. Denne hashen kan fanges opp når offeret klikker på "del"-knappen og begynner å skanne airdrop-enheter eller trykker på Wi-Fi-passordet for et nytt nettverk i inndatafeltet (på denne måten ser Apple etter venner innen rekkevidde som du kan be om nettverkspassordet).

Du må på en eller annen måte utløse hashmeldingen fra offeret og fange den. Jeg bruker verktøy fra depotet Apple Bleee. Siden Bluetooth MAC-adresser til enheter er tilfeldige og stadig endres, må du finne en annen måte å finne ønsket enhet i denne listen. Oppgaven forenkles av det faktum at iOS kringkaster den nåværende tilstanden til telefonen som: skjerm av, skjerm på, låseskjerm, ulåst, etc. Derfor, ganske enkelt ved å observere handlingene til offeret, kan du sammenligne den nåværende tilstanden til enheten med enheten i tabellen. Den enkleste måten er å fange øyeblikket når brukeren tar telefonen opp av lommen, slår på skjermen og låser opp telefonen med fingeren eller ansiktet. Alt dette vil være synlig i snifferen.

Hvordan jeg bruker AirDrop i stedet for Tinder
Ikon Х betyr at en pakke med telefon-hasher ble fanget.

Parseren deres går noen ganger i stykker, men som oftest fungerer den. Jeg vil ikke helt gjenfortelle essensen av sårbarheten, siden den ble analysert i detalj av forfatterne av Apple Blee, vil jeg bare beskrive min erfaring. Jeg vil bare si at jeg bruker en USB Bluetooth-adapter på en CSR 8510-brikke, siden den fungerer mye mer stabilt for meg enn Bluetooth-adapteren som er innebygd i en MacBook og satt inn i en virtuell maskin.

Så vi fanget opp hashen fra offerets telefon og mottok de ettertraktede tre bytene fra hashen til telefonnummeret.

Hvordan jeg bruker AirDrop i stedet for Tinder
Oppfanget BLE-pakke med telefonnummer-hash ved hjelp av verktøyet read_ble_state.py

Vi vet at i Russland begynner alle mobilnumre med koden +79, og mest sannsynlig har offerets telefon samme kode. Det viser seg at vi har et tallområde fra +79000000000 til +79999999999, omtrent en milliard tall.

For å begrense rekkevidden tar vi bare kodene som faktisk er registrert hos en hvilken som helst operatør og forkaster resten. Som et resultat blir rekkevidden halvparten så stor, omtrent en halv milliard tall.

Deretter genererer vi sha256 fra alle tall og lagrer bare de første 3 bytene fra hver hash. Vi legger inn denne listen i Sqlite-databasen og bygger en indeks for å få fart på søket.

Slik ser dataene i databasen ut:

Hvordan jeg bruker AirDrop i stedet for Tinder
Alle russiske telefonnumre og de tre første bytene av hashen

Deretter, med hashen til offeret, kan vi søke etter alle treff i databasen. Vanligvis er det 15-30 treff per hash.

Hvordan jeg bruker AirDrop i stedet for Tinder
Alle tall som samsvarer med offerets hasj

Det er klart at ikke alle disse tallene faktisk brukes. Vi kan kutte av de unødvendige ved å bruke en HLR-forespørsel eller en usynlig SMS. Av 30 tall ble 5 funnet på nett.

Hvordan jeg bruker AirDrop i stedet for Tinder
Resultatet av HLR-forespørselen. Nettverksnumre er uthevet i grønt.

Jeg kunne fortsette å sile gjennom tallene, for eksempel, legge dem alle til Telegram/Whatsapp og se på avatarene, sjekke gjennom databaser som Getcontact og så videre. Men det viste seg å være lettere å bare ringe alle fem numrene ett etter ett og se når offerets telefon ringer.

Hvordan jeg bruker AirDrop i stedet for Tinder
Mål lokalisert

Alle

  • Flommeren på Raspberry Pi er veldig ustabil, du må prøve andre enkeltbrett.
  • En innfødt flom for iOS ville vært mye bedre, men jeg kunne ikke finne en som fungerer på iOS 12-13 selv med jailbreak.
  • Flooder.py-skriptet er veldig dumt. Det kan sannsynligvis generere et personlig bilde ved å ta navnet fra mottakerens enhetsnavn og kutte ut ordet iPhone.
  • Metoden for å bestemme et telefonnummer kan optimaliseres ved kun å sjekke at nummeret er knyttet til iMessage. Dette vil mest sannsynlig gi deg nær 100 % trefffrekvens.

Konklusjon

Dette er den perfekte underholdningen for metroen. Det er en wow-effekt, nysgjerrige er interessert i dette. Det ble mye improvisasjon, det var veldig artige saker. Det viser seg at mange mennesker er klare til å spille med og til og med kansellere planene sine for å gå av på t-banestasjonen din og gå opp for kaffe. I løpet av året møtte jeg mange mennesker og fortsetter å kommunisere med noen av dem.

Noen ganger slår jeg av Telegram-påloggingen og har det gøy som dette.

Hvordan jeg bruker AirDrop i stedet for Tinder

Hvordan jeg bruker AirDrop i stedet for Tinder

Kilde: www.habr.com

Legg til en kommentar