Wie ich AirDrop anstelle von Tinder verwende

Wie ich AirDrop anstelle von Tinder verwende

Apple-Geräte verfügen über eine hervorragende Airdrop-Funktion – sie ist für den Datenversand zwischen Geräten konzipiert. In diesem Fall ist keine Einrichtung oder vorherige Kopplung der Geräte erforderlich; alles funktioniert sofort nach dem Auspacken mit zwei Klicks. Für die Datenübertragung wird ein Add-on über WLAN verwendet, weshalb die Datenübertragung mit enormen Geschwindigkeiten erfolgt. Gleichzeitig können Sie mit einigen Tricks nicht nur Dateien versenden, sondern auch die Telefonnummer der Person herausfinden, die mit Ihnen im selben U-Bahn-Wagen sitzt.

Seit einem Jahr nutze ich diese Funktion, um auf dem Weg zur Arbeit, in öffentlichen Verkehrsmitteln und in der Gemeinschaftsverpflegung interessante Bekanntschaften zu machen. Im Durchschnitt schaffe ich es, mehrere neue Bekanntschaften pro Tag zu machen, und manchmal verlasse ich die U-Bahn in Begleitung einer neuen Person.

Unter dem Schnitt erzähle ich Ihnen von allen Kakis.

Wie funktioniert AirDrop?

Wie ich AirDrop anstelle von Tinder verwende

AirDrop ist ein Protokoll zum Übertragen von Dateien innerhalb eines Peer-to-Peer-Netzwerks. Es kann sowohl über ein normales lokales Netzwerk als auch drahtlos zwischen beliebigen Apple-Geräten funktionieren. Wir werden den letzten Fall analysieren, wenn zwei Geräte nicht mit einem gemeinsamen Netzwerk verbunden sind, sondern sich einfach in der Nähe befinden, beispielsweise zwei Personen mit Telefonen, die in einem U-Bahn-Wagen unterwegs sind und nicht mit einem gemeinsamen WLAN verbunden sind.

Wie ich AirDrop anstelle von Tinder verwende
Die erste Stufe der Übertragung über AirDrop ist das Senden eines BLE-Pakets

Um die Datenübertragung über AirDrop zu initiieren, sendet das Telefon des Initiators ein BLE-Broadcast-Paket, das gehashte Informationen über das iCloud-Konto und die Telefonnummer des Besitzers der Geräte des Initiators enthält, mit dem Vorschlag, eine Verbindung über AWDL (Apple Wireless Direct Link) herzustellen )-Protokoll, so etwas wie Wi-Fi. Fi Direct aus der Android-Welt. Die Struktur dieses BLE-Pakets ist sehr interessant, wir werden es weiter analysieren.

Auf der Empfängerseite kann sich AirDrop in drei Zuständen befinden:

  • Ausgeschaltet - wird überhaupt nicht erkannt
  • Nur für Kontakte – Akzeptieren Sie Dateien nur von Kontakten in Ihrem Adressbuch. In diesem Fall gilt als Kontakt die Telefonnummer oder E-Mail-Adresse, mit der das iCloud-Konto verknüpft ist. Hier funktioniert die gleiche Logik zur Verknüpfung von Konten wie beim iMessages-Messenger.
  • Für alle - Das Telefon ist für alle sichtbar

Wie ich AirDrop anstelle von Tinder verwende
AirDrop-Datenschutzeinstellungen. Der Standardstatus ist auf „Für Kontakte“ eingestellt.

Abhängig von Ihren Datenschutzeinstellungen baut das Telefon entweder weiterhin eine Verbindung über AWDL auf oder ignoriert das BLE-Paket einfach. Wenn AirDrop auf „für alle“ eingestellt ist, verbinden sich die Geräte im nächsten Schritt über AWDL miteinander und erstellen zwischen ihnen ein IPv6-Netzwerk, in dem AirDrop als reguläres Anwendungsprotokoll mit mDNS über das Standard-IP-Protokoll arbeitet.

Wie ich AirDrop anstelle von Tinder verwende

Для экспериментов вы можете посмотреть за тем как работает AWDL на макбуке. Весь обмен по этому протоколу происходит через интерфейс awdl0, die einfach mit Wireshark oder tcpdump erfasst werden kann.

Zu diesem Zeitpunkt kennen wir drei Entitäten:

Bluetooth LowEnergy (BLE)-Paket - Dieses Paket enthält Daten, anhand derer das Telefon entscheidet, ob der Initiator in seiner Kontaktliste enthalten ist oder nicht.
Apple Wireless Direct Link (AWDL) — ein proprietärer Ersatz für Wi-Fi Direct von Apple, aktiviert, wenn die Kommunikation über BLE erfolgreich war.
AirDrop – ein Anwendungsprotokoll, das innerhalb eines regulären IP-Netzwerks unter Verwendung von mDNS, HTTP usw. funktioniert. Kann in jedem Ethernet-Netzwerk verwendet werden.

Структура BLE-пакета

Es scheint, dass dieses BLE-Paket nur einmal vom Initiator zum Empfänger fliegt und der Austausch dann nur über AWDL erfolgt. In Wirklichkeit hat eine AWDL-Verbindung eine sehr kurze Lebensdauer, nur wenige Minuten oder weniger. Wenn Ihnen also der Empfänger der Datei antworten möchte, fungiert er auch als Initiator und sendet ein BLE-Paket.

Wie erkennt das Telefon auf der Empfängerseite, ob die Nummer/E-Mail-Adresse des Initiators in seiner Kontaktliste enthalten ist oder nicht? Ich war sehr überrascht, als ich die Antwort erfuhr: Der Initiator sendet seine Nummer und E-Mail als SHA256-Hash, aber nicht vollständig, sondern nur die ersten 3 Bytes.

Wie ich AirDrop anstelle von Tinder verwende
Struktur eines BLE-Pakets vom AirDrop-Initiator. Mithilfe von Hashes aus Telefonnummer und E-Mail erkennt der Antwortende, ob der Initiator in seiner Kontaktliste enthalten ist.

Wenn Ihr Apple-Konto (auch bekannt als iCloud, auch bekannt als iMessages) beispielsweise mit der Nummer +79251234567 verknüpft ist, wird der Hash daraus wie folgt berechnet:

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

Und als Folge davon wird der Wert im BLE-Paket verschwinden 07de58 für eine Telefonnummer. Dies scheint nicht genug zu sein, aber oft reichen diese drei Bytes aus, um die tatsächliche Telefonnummer herauszufinden.

Es ist auch wichtig zu bedenken, dass die AirDrop-Datenschutzeinstellung keinen Einfluss auf die Daten im BLE-Paket hat. Darin ist der Hash der Telefonnummer enthalten, auch wenn die Einstellung „Für alle“ gesetzt ist. Außerdem wird beim Öffnen des Share-Fensters und bei Eingabe des Passworts für das WLAN-Netzwerk ein BLE-Paket mit einem Hash der Telefonnummer gesendet.

Eine detaillierte Analyse der Struktur von BLE-Paketen und möglicher Angriffe darauf finden Sie in der Studie Apple Blee und Russisch Übersetzung nach Habré.

Die Apple Bleee-Studie veröffentlichte vorgefertigte Python-Skripte zur Automatisierung der Datenanalyse in BLE-Paketen. Ich empfehle dringend, sich die Recherchen anzusehen und die Programme auszuprobieren, es gibt da draußen eine Menge interessanter Dinge.

AWDL (Apple Wireless Direct Link)

AWDL ist ein proprietäres Apple-Add-on für normales WLAN, das so etwas wie Wi-Fi Direct implementiert. Ich weiß nicht genau, wie es funktioniert, es gibt eine spezielle Möglichkeit, Kanäle anzukündigen und zu koordinieren, und es funktioniert nur mit proprietären Apple-Treibern. Das heißt, nur MacBooks/iPhones können eine Verbindung über AWDL herstellen.

Traurige Besitzer von Android-Handys träumen immer noch nur von einer ordnungsgemäß funktionierenden Wi-Fi Direct-Funktion.

Wie ich AirDrop anstelle von Tinder verwende

Aber vor nicht allzu langer Zeit haben die Jungs von Seemoo-Labor hat eine vollständig Open-Source-Implementierung von AWDL geschrieben und benannt Öffnen Sie die drahtlose Verbindung (EULE). Um OWL auszuführen, muss der Wi-Fi-Adapter den Überwachungsmodus und die Paketinjektion unterstützen, sodass er nicht auf jeder Hardware läuft. Auf der Website finden Sie Beispiele für die Konfiguration auf dem Raspberry Pi. Dies funktioniert deutlich schlechter als das Original-AWDL, zum Beispiel verlängert sich die Verbindungsaufbauzeit um ~10 Sekunden statt um ein paar Sekunden beim Original, aber es funktioniert.

Wie ich AirDrop anstelle von Tinder verwende

Außerdem haben diese Leute von Grund auf eine Implementierung des AirDrop-Protokolls in Python geschrieben, genannt OpenDrop. Es kann sowohl in Verbindung mit OWL zum Starten von AirDrop unter Linux als auch mit der ursprünglichen AWDL unter macOS verwendet werden.

So rollst du per AirDrop hoch

Wie ich AirDrop anstelle von Tinder verwende
Typische Situation beim Aufrollen per AirDrop

Genug der langweiligen Theorie, es ist Zeit, mit der Praxis zu beginnen. So sind Sie mit der gesamten nötigen Ausrüstung ausgestattet und bereit, vorwärts zu gehen und mithilfe von Spitzentechnologie Bälle zu rollen.

Zuerst müssen Sie sich die wichtigsten Punkte merken:

  • AirDrop funktioniert nur, wenn das Telefon entsperrt ist – Am besten ist es, wenn die Zielperson ständig auf das Telefon schaut. Am häufigsten passiert dies an Orten, an denen es langweilig ist, zum Beispiel in der U-Bahn.
  • Brauche Zeit – Normalerweise erfolgt eine positive Konvertierung beim 3. bis 5. gesendeten Bild, Sie benötigen also mindestens 5 Minuten Ruhe an einem Ort. Als positive Konversion betrachte ich den Moment, in dem man per AirDrop zugestimmt hat, weiterhin im Messenger zu kommunizieren. Dies ist im Handumdrehen nur schwer umzusetzen, da nicht sofort klar ist, wer Ihre Nutzlast angenommen hat, und höchstwahrscheinlich werden Sie sich aufwärmen, bevor Sie sich auf etwas einigen können.
  • Personalisierte Kreativität funktioniert besser — Als Nutzlast bezeichne ich den Medieninhalt, den Sie über AirDrop senden. Nur ein Bild mit einem Meme wird höchstwahrscheinlich nirgendwohin führen; der Inhalt sollte für die Situation relevant sein und einen klaren Aufruf zum Handeln enthalten.

Die klassische Methode – einfach ein Telefon

Geeignet für alle, die ein iPhone besitzen, außer sozialen Fähigkeiten sind keine besonderen Fähigkeiten erforderlich. Wir schalten AirDrop in den Jeder-Modus und gehen hinunter zur U-Bahn. An einem normalen Tag (vor der Selbstisolation) beobachtete ich in einem Waggon der Moskauer U-Bahn so etwas:

Wie ich AirDrop anstelle von Tinder verwende
Liste der Ziele

Wie Sie sehen, senden fast alle Telefone den Namen des Besitzers, anhand dessen wir sein Geschlecht leicht bestimmen und die entsprechende Nutzlast vorbereiten können.

Nutzlast

Wie ich oben geschrieben habe, funktioniert eine eindeutige Nutzlast besser. Idealerweise sollte das Bild den Besitzer namentlich ansprechen. Zuvor musste ich meine Kreativität mit einem Grafikeditor in der Notizenanwendung und einer Art mobilem Photoshop-Stub formen. Als das gewünschte Bild erstellt wurde, musste man daher bereits aus dem Auto aussteigen.

Meine Freundin Anya koteeq, speziell auf meine Bitte hin, hat einen Telegram-Bot geschrieben, der die notwendigen Bilder mit einer Bildunterschrift im Handumdrehen generiert: @AirTrollBot. Ich danke ihr sehr dafür, dass ich jetzt viel technologisch viel mehr Bälle rollen kann als zuvor.

Es reicht aus, dem Bot eine Textzeile zu senden, und dieser generiert sie in Form eines Bildes, das genau dem Seitenverhältnis für die Vorschau im AirDrop-Fenster entspricht. Sie können ein Zeichen im Bild auswählen, indem Sie die Tasten drücken. Optional können Sie auch das Hinzufügen Ihres Telegram-Logins zum Bild in der Ecke aktivieren.

Wie ich AirDrop anstelle von Tinder verwende
Nutzlastgenerator

Das Schlimmste war, dass das Bild ohne jegliches Zutun sofort auf dem Bildschirm des Opfers angezeigt wurde. Sie mussten nicht einmal auf „Akzeptieren“ klicken. Man konnte die sofortige Reaktion im Gesicht beim Laden der Nutzlast sehen. Leider werden ab iOS 13 Bilder von unbekannten Kontakten nicht mehr auf dem Bildschirm angezeigt. So sah es vorher aus:

Wie ich AirDrop anstelle von Tinder verwende
Nutzlast wird auf iOS ≤12 bereitgestellt

Statt einer Vorschau wird nun nur noch der Name des Absendergeräts angezeigt. Daher besteht die einzige Möglichkeit, ein Opfer mit iOS ≥13 namentlich zu kontaktieren, darin, ihn in den Einstellungen Ihres Geräts festzulegen, beispielsweise das Telefon „Yulia, hallo“ zu nennen. Hinweis: Sie können Emoji im Gerätenamen verwenden. Natürlich ist diese Methode nicht so einleuchtend wie mit einem Bild, aber sie erhöht die Chance, auf die Schaltfläche „Akzeptieren“ zu klicken, erheblich.

Eine weitere Beschreibung der Aktionen sprengt den Rahmen eines Fachartikels und hängt nur von Ihrer Vorstellungskraft, Improvisation und Ihrem Humor ab. Ich kann nur sagen, dass diejenigen, die sich diesem Spiel anschließen und anfangen, mit Bildern oder Notizen zu antworten, normalerweise sehr fröhliche, offene und interessante Menschen sind. Diejenigen, die nach dem Betrachten des Bildes einfach nicht antworten oder, schlimmer noch, die Nachricht einfach ablehnen, sind normalerweise langweilige Snobs und Prüde. Auch der Angstfaktor spielt oft eine Rolle: Zerbrechliche, schüchterne Menschen haben Angst, mit einem so arroganten, anonymen Fremden zu interagieren.

Automatische Pick-Pick-Maschine

Wenn Sie zu faul sind, Payloads manuell zu generieren und zu senden, und den Prozess automatisieren möchten, können Sie eine automatische Sprachauswahlmaschine erstellen, die im Hintergrund Bilder per AirDrop an alle in Reichweite sendet. Wir werden den Raspberry Pi Zero als Hardwareplattform verwenden, aber jeder Computer mit Linux reicht aus, Hauptsache, die Wi-Fi-Karte unterstützt den Überwachungsmodus und die Paketinjektion.

Wie ich AirDrop anstelle von Tinder verwende
Lautsprechersender über Airdrop basierend auf Raspberry Pi Zero W + UPS Lite Batterieschutz

Es gibt AirDrop-Flooder-Programme für Jailbreak-iPhones, sie funktionieren stabiler als offene Versionen auf Raspberry Pi

Das Einrichten von OWL auf dem Raspberry Pi wird ausführlich unter beschrieben Projektseite, aber ich bevorzuge die Verwendung des Kali Linux-Builds für Raspberry Pi Zero, da dort bereits Nexmon-Patches installiert sind, um den Wi-Fi-Überwachungsmodus auf rpi0 zu aktivieren.

Es ist wichtig zu bedenken, dass Airdrop (bzw. AWDL) für Patienten erst nach Erhalt eines BLE-Pakets aktiviert wird. Daher müssen wir es in Abständen von mehreren Sekunden senden. Dies kann mit dem Dienstprogramm erfolgen py-bluetooth-utils. Mit der Funktion start_le_advertising() sende ich den Datenstring aus den Apple Bleee-Beispielen: 000000000000000001123412341234123400.

Sobald Sie einen funktionierenden OWL-Daemon haben, können Sie meinen Fork starten opendrop. Es gibt ein Skript im Repository flooder.py, was jedem ein Bild schickt kak_dela.jpeg.

Nach meinen Beobachtungen ist der Raspberry Pi Zero W im Monitormodus instabil. Nach etwa 20 Minuten aktivem Flooder-Betrieb stürzt das Wi-Fi-Subsystem ab. Das Problem wird vom Autor beschrieben pwnagotchiund wird vermutlich durch Überhitzung verursacht. Es ist notwendig, einen Watchdog vorzusehen oder stabilere Hardware zu verwenden

Maniacello-Modus – ich kenne deine Nummer

Wenn Sie sich als unzulänglicher Wahnsinniger zeigen und den Wunsch, weiterhin mit Ihnen zu kommunizieren, für immer entmutigen möchten, können Sie versuchen, die Telefonnummer der Person in der Nähe herauszufinden.

Wie wir bereits erfahren haben, enthalten die vom Initiator gesendeten BLE-Pakete die ersten drei Bytes der sha256-Telefonnummer. Dieser Hash kann abgefangen werden, wenn das Opfer auf die Schaltfläche „Teilen“ klickt und mit dem Scannen von Airdrop-Geräten beginnt oder im Eingabefeld auf das WLAN-Passwort für ein neues Netzwerk tippt (auf diese Weise sucht Apple nach Freunden in Reichweite, bei denen Sie eine Anfrage stellen können). das Netzwerkpasswort).

Sie müssen die Hash-Nachricht des Opfers irgendwie auslösen und abfangen. Ich verwende Dienstprogramme aus dem Repository Apple Blee. Da Bluetooth-MAC-Adressen von Geräten zufällig sind und sich ständig ändern, müssen Sie einen anderen Weg finden, um das gewünschte Gerät in dieser Liste zu ermitteln. Die Aufgabe wird dadurch vereinfacht, dass iOS den aktuellen Status des Telefons überträgt, z. B.: Bildschirm aus, Bildschirm an, Bildschirm gesperrt, entsperrt usw. Daher können Sie durch einfaches Beobachten der Aktionen des Opfers den aktuellen Zustand des Geräts mit dem Gerät in der Tabelle vergleichen. Am einfachsten ist es, den Moment einzufangen, in dem der Benutzer das Telefon aus der Tasche nimmt, den Bildschirm einschaltet und das Telefon mit dem Finger oder dem Gesicht entsperrt. All dies wird im Sniffer sichtbar sein.

Wie ich AirDrop anstelle von Tinder verwende
Symbol Х bedeutet, dass ein Paket mit Telefon-Hashes abgefangen wurde.

Ihr Parser bricht manchmal ab, aber meistens funktioniert er. Ich werde das Wesen der Schwachstelle nicht noch einmal erläutern, da sie von den Autoren von Apple Blee ausführlich analysiert wurde, sondern nur meine Erfahrungen beschreiben. Ich sage nur, dass ich einen USB-Bluetooth-Adapter auf einem CSR 8510-Chip verwende, da dieser bei mir viel stabiler funktioniert als der Bluetooth-Adapter, der in einem MacBook eingebaut und in eine virtuelle Maschine eingefügt ist.

Also fingen wir den Hash vom Telefon des Opfers ab und erhielten die begehrten drei Bytes vom Hash der Telefonnummer.

Wie ich AirDrop anstelle von Tinder verwende
Mit dem Dienstprogramm wurde ein BLE-Paket mit Telefonnummern-Hash abgefangen read_ble_state.py

Wir wissen, dass in Russland alle Mobiltelefonnummern mit dem Code +79 beginnen und höchstwahrscheinlich auch das Telefon unseres Opfers denselben Code hat. Es stellt sich heraus, dass wir einen Zahlenbereich von +79000000000 bis +79999999999 haben, also etwa eine Milliarde Zahlen.

Um den Bereich einzugrenzen, nehmen wir nur die Codes, die tatsächlich bei einem Betreiber registriert sind, und verwerfen den Rest. Dadurch wird der Bereich halb so groß, etwa eine halbe Milliarde Zahlen.

Als nächstes generieren wir sha256 aus allen Zahlen und speichern nur die ersten 3 Bytes von jedem Hash. Wir geben diese Liste in die SQLite-Datenbank ein und erstellen einen Index, um die Suche zu beschleunigen.

So sehen die Daten in der Datenbank aus:

Wie ich AirDrop anstelle von Tinder verwende
Alle russischen Telefonnummern und die ersten drei Bytes des Hashs

Als nächstes können wir mit dem Hash des Opfers nach allen Übereinstimmungen in der Datenbank suchen. Normalerweise gibt es 15–30 Übereinstimmungen pro Hash.

Wie ich AirDrop anstelle von Tinder verwende
Все номера, совпавшие с хешем жертвы

Offensichtlich werden nicht alle dieser Zahlen tatsächlich verwendet. Unnötige können wir durch eine HLR-Anfrage oder eine unsichtbare SMS abschneiden. Von 30 Nummern wurden 5 online gefunden.

Wie ich AirDrop anstelle von Tinder verwende
Das Ergebnis der HLR-Anfrage. Netzwerknummern werden grün hervorgehoben.

Ich könnte die Zahlen weiter durchforsten, zum Beispiel alle zu Telegram/Whatsapp hinzufügen und mir die Avatare ansehen, Datenbanken wie Getcontact durchforsten und so weiter. Es stellte sich jedoch heraus, dass es einfacher war, einfach alle fünf Nummern nacheinander anzurufen und zuzusehen, wie das Telefon des Opfers klingelte.

Wie ich AirDrop anstelle von Tinder verwende
Ziel lokalisiert

alle

  • Der Flooder auf dem Raspberry Pi ist sehr instabil, Sie müssen andere Single-Boards ausprobieren.
  • Ein nativer Flooder für iOS wäre viel besser, aber ich konnte keinen finden, der auch mit Jailbreak auf iOS 12-13 funktioniert.
  • Das Flooder.py-Skript ist sehr dumm. Es könnte wahrscheinlich ein personalisiertes Bild erzeugen, indem der Name aus dem Gerätenamen des Empfängers übernommen und das Wort iPhone herausgeschnitten wird.
  • Die Methode zur Ermittlung einer Telefonnummer kann optimiert werden, indem nur die Tatsache überprüft wird, dass die Nummer mit iMessage verknüpft ist. Dadurch erreichen Sie höchstwahrscheinlich eine Trefferquote von nahezu 100 %.

Abschluss

Das ist die perfekte Unterhaltung für die Metro. Es entsteht ein Wow-Effekt, Neugierige interessieren sich dafür. Es wurde viel improvisiert, es gab sehr lustige Fälle. Es stellt sich heraus, dass viele Leute bereit sind, mitzuspielen und sogar ihre Pläne zu stornieren, um an Ihrer U-Bahn-Station auszusteigen und Kaffee zu trinken. Im Laufe des Jahres habe ich viele Menschen kennengelernt und mit einigen von ihnen kommuniziere ich weiterhin.

Manchmal schalte ich den Telegram-Login aus und habe Spaß folgendermaßen.

Wie ich AirDrop anstelle von Tinder verwende

Wie ich AirDrop anstelle von Tinder verwende

Source: habr.com

Kommentar hinzufügen