Comment utiliser AirDrop au lieu de Tinder

Comment utiliser AirDrop au lieu de Tinder

Les appareils Apple disposent d'une excellente fonctionnalité Airdrop : elle est conçue pour envoyer des données entre appareils. Dans ce cas, aucune configuration ni appairage préalable des appareils n'est nécessaire : tout fonctionne immédiatement en deux clics. Un module complémentaire via Wi-Fi est utilisé pour transférer des données, et les données sont donc transférées à des vitesses énormes. Dans le même temps, en utilisant quelques astuces, vous pouvez non seulement envoyer des fichiers, mais également connaître le numéro de téléphone de la personne qui se trouve dans le même wagon de métro que vous.

Depuis un an, j'utilise cette fonction pour faire des connaissances intéressantes sur le chemin du travail, dans les transports publics et dans les établissements publics de restauration. En moyenne, j'arrive à faire plusieurs nouvelles connaissances par jour, et parfois je quitte le métro en compagnie d'une nouvelle personne.

Sous la coupe, je vais vous parler de tous les kakis.

Comment fonctionne AirDrop ?

Comment utiliser AirDrop au lieu de Tinder

AirDrop est un protocole de transfert de fichiers au sein d'un réseau peer-to-peer. Il peut fonctionner à la fois sur un réseau local classique et par liaison radio entre n'importe quel appareil Apple. Nous analyserons le dernier cas, lorsque deux appareils ne sont pas connectés à un réseau commun, mais sont simplement à proximité, par exemple, deux personnes munies de téléphones voyagent dans une rame de métro et ne sont pas connectées à un réseau Wi-Fi commun.

Comment utiliser AirDrop au lieu de Tinder
La première étape de la transmission via AirDrop consiste à envoyer un paquet BLE

Pour lancer le transfert de données via AirDrop, le téléphone de l'initiateur envoie un paquet de diffusion BLE, qui contient des informations hachées sur le compte iCloud et le numéro de téléphone du propriétaire des appareils de l'initiateur, avec une proposition d'établir une connexion via l'AWDL (Apple Wireless Direct Link ), quelque chose comme le Wi-Fi. Fi Direct du monde d'Android. La structure de ce paquet BLE est très intéressante, nous l'analyserons plus en détail.

Du côté du destinataire, AirDrop peut être dans trois états :

  • Éteint - ne sera pas détecté du tout
  • Pour les contacts uniquement — n'acceptez que les fichiers provenant des contacts de votre carnet d'adresses. Dans ce cas, le contact est considéré comme le numéro de téléphone ou l'email auquel le compte iCloud est lié. La même logique pour lier les comptes fonctionne ici comme avec le messager iMessages.
  • Pour tous - le téléphone sera visible par tout le monde

Comment utiliser AirDrop au lieu de Tinder
Paramètres de confidentialité AirDrop. Le statut par défaut est défini sur « Pour les contacts ».

En fonction de vos paramètres de confidentialité, le téléphone continuera à établir une connexion via AWDL ou ignorera simplement le paquet BLE. Si AirDrop est défini sur « pour tout le monde », alors à l'étape suivante, les appareils se connecteront les uns aux autres via AWDL, créeront un réseau IPv6 entre eux, au sein duquel AirDrop fonctionnera comme un protocole d'application standard utilisant mDNS sur le protocole IP standard.

Comment utiliser AirDrop au lieu de Tinder

Pour des expériences, vous pouvez regarder comment fonctionne AWDL sur un MacBook. Tous les échanges sous ce protocole se font via l'interface awdl0, qui peut être facilement capturé à l'aide de Wireshark ou de tcpdump.

A ce stade nous connaissons trois entités :

Forfait Bluetooth LowEnergy (BLE) - ce paquet contient des données à partir desquelles le téléphone décide si l'initiateur est ou non dans sa liste de contacts.
Lien direct sans fil Apple (AWDL) — un remplacement propriétaire du Wi-Fi Direct d'Apple, activé si la communication via BLE réussissait.
parachutage - un protocole d'application qui fonctionne au sein d'un réseau IP classique utilisant mDNS, HTTP, etc. Peut fonctionner sur n'importe quel réseau Ethernet.

Structure des paquets BLE

Il peut sembler que ce paquet BLE ne passe qu'une seule fois de l'initiateur au destinataire, puis l'échange s'effectue uniquement via AWDL. En réalité, une connexion AWDL a une durée de vie très courte, quelques minutes seulement ou moins. Ainsi, si le destinataire du fichier souhaite vous répondre, il fera également office d’initiateur et enverra un paquet BLE.

Comment le téléphone du destinataire comprend-il si le numéro/l'adresse e-mail de l'initiateur figure ou non dans sa liste de contacts ? J'ai été très surpris quand j'ai découvert la réponse : l'initiateur envoie son numéro et son email sous forme de hachage sha256, mais pas entièrement, mais seulement les 3 premiers octets.

Comment utiliser AirDrop au lieu de Tinder
Structure d'un paquet BLE provenant de l'initiateur AirDrop. Grâce aux hachages du numéro de téléphone et de l'e-mail, le répondeur comprend si l'initiateur figure dans sa liste de contacts.

Par exemple, si votre compte Apple (alias iCloud, alias iMessages) est lié au numéro +79251234567, le hachage de celui-ci sera calculé comme ceci :

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

Et par conséquent, la valeur du paquet BLE s'envolera 07de58 pour un numéro de téléphone. Cela ne semble pas suffisant, mais souvent ces trois octets suffisent pour connaître le véritable numéro de téléphone.

Il est également important de se rappeler que le paramètre de confidentialité AirDrop n'affecte pas les données du paquet BLE. Le hachage du numéro de téléphone y sera contenu, même si le paramètre « Pour tout le monde » est défini. De plus, un paquet BLE avec un hachage du numéro de téléphone est envoyé lorsque la fenêtre Partager est ouverte et lorsque le mot de passe du réseau Wi-Fi est saisi.

Pour une analyse détaillée de la structure des paquets BLE et des attaques possibles contre ceux-ci, lisez l'étude Pomme Blee et russe traduction en Habré.

L'étude Apple Bleee a publié des scripts Python prêts à l'emploi pour automatiser l'analyse des données dans les packages BLE. Je recommande fortement de consulter les recherches et d'essayer les programmes, il y a beaucoup de choses intéressantes là-bas.

AWDL (Apple Wireless Direct Link)

AWDL est un module complémentaire Apple exclusif au Wi-Fi standard qui implémente quelque chose comme Wi-Fi Direct. Je ne sais pas vraiment comment cela fonctionne, il existe une manière spéciale d'annoncer et de coordonner les chaînes, et cela ne fonctionne que sur les pilotes propriétaires Apple. Autrement dit, seuls les MacBook/iPhone peuvent se connecter via AWDL.

Les tristes propriétaires de téléphones Android ne font que rêver d'une fonction Wi-Fi Direct fonctionnant correctement.

Comment utiliser AirDrop au lieu de Tinder

Mais il n'y a pas si longtemps, les gars de laboratoire semblemoo a écrit une implémentation entièrement open source d'AWDL et l'a appelée Ouvrir le lien sans fil (HIBOU). Pour exécuter OWL, l'adaptateur Wi-Fi doit prendre en charge le mode moniteur et l'injection de paquets, il ne s'exécute donc pas sur tous les matériels. Le site propose des exemples de configuration sur Raspberry pi. Cela fonctionne bien moins bien que l'AWDL d'origine, par exemple, le temps d'établissement de la connexion est prolongé d'environ 10 secondes au lieu de quelques secondes pour l'original, mais cela fonctionne.

Comment utiliser AirDrop au lieu de Tinder

De plus, ces gars-là ont écrit à partir de zéro une implémentation du protocole AirDrop en Python, appelée OuvrirDrop. Il peut être utilisé à la fois avec OWL pour lancer AirDrop sous Linux et avec l'AWDL original sur macOS.

Comment rouler via AirDrop

Comment utiliser AirDrop au lieu de Tinder
Situation typique avec déploiement via AirDrop

Assez de théorie ennuyeuse, il est temps de commencer à pratiquer. Vous êtes donc armé de tout l'équipement nécessaire et êtes prêt à avancer et à rouler des balles en utilisant la haute technologie.

Vous devez d’abord vous rappeler les points principaux:

  • AirDrop ne fonctionnera que si le téléphone est déverrouillé – il est préférable que la cible regarde constamment son téléphone. Le plus souvent, cela se produit dans des endroits où c'est ennuyeux, par exemple dans le métro.
  • Besoin de temps — généralement, une conversion positive se produit sur la 3 à la 5ème image envoyée, vous avez donc besoin d'au moins 5 minutes de temps calme au même endroit. Je considère qu'une conversion positive est le moment où vous acceptez via AirDrop de continuer à communiquer dans la messagerie. Ceci est difficile à mettre en œuvre à la volée, car il n'est pas immédiatement clair qui a accepté votre charge utile, et vous vous échaufferez probablement avant de pouvoir vous mettre d'accord sur quelque chose.
  • Les créations personnalisées fonctionnent mieux — J'appelle charge utile le contenu multimédia que vous envoyez via AirDrop. Une simple image avec un mème ne mènera probablement nulle part ; le contenu doit être pertinent par rapport à la situation et inciter clairement à l’action.

La méthode classique - juste un téléphone

Convient à tous ceux qui possèdent un iPhone et ne nécessite aucune compétence particulière autre que sociale. Nous passons AirDrop en mode Tout le monde et descendons dans le métro. Lors d'une journée normale (avant l'auto-isolement) dans une voiture du métro de Moscou, j'ai observé quelque chose comme ceci :

Comment utiliser AirDrop au lieu de Tinder
Liste des cibles

Comme vous pouvez le constater, presque tous les téléphones diffusent le nom du propriétaire, grâce auquel nous pouvons facilement déterminer son sexe et préparer la charge utile appropriée.

Charge utile

Comme je l'ai écrit ci-dessus, une charge utile unique fonctionne mieux. Idéalement, la photo devrait s’adresser au propriétaire par son nom. Auparavant, je devais sculpter la créativité à l'aide d'un éditeur graphique dans l'application Notes et d'une sorte de stub Photoshop mobile. En conséquence, au moment où l’image requise a été dessinée, il était déjà nécessaire de sortir de la voiture.

Mon amie Anya koteeq, spécifiquement à ma demande, a écrit un bot Telegram qui génère les images nécessaires avec une légende à la volée : @AirTrollBot. Je la remercie beaucoup pour le fait que je peux désormais faire rouler des balles de manière beaucoup plus technologique qu'avant.

Il suffit d'envoyer au bot une ligne de texte, et il la générera sous la forme d'une image qui correspond exactement au rapport hauteur/largeur pour l'aperçu dans la fenêtre AirDrop. Vous pouvez sélectionner un personnage dans l'image en appuyant sur les boutons. Vous pouvez également éventuellement activer l'ajout de votre connexion Telegram à l'image dans le coin.

Comment utiliser AirDrop au lieu de Tinder
Générateur de charge utile

Le pire, c’est que l’image s’affichait immédiatement sur l’écran de la victime, sans aucune action. Vous n'avez même pas eu besoin de cliquer sur "accepter". Vous pouviez voir la réaction instantanée sur le visage lors du chargement de la charge utile. Malheureusement, depuis iOS 13, les photos de contacts inconnus ne s'affichent plus à l'écran. Voici à quoi cela ressemblait avant :

Comment utiliser AirDrop au lieu de Tinder
Charge utile livrée sur iOS ≤12

Désormais, au lieu d'un aperçu, seul le nom de l'appareil de l'expéditeur est affiché. Par conséquent, la seule façon de contacter une victime avec iOS ≥13 par son nom est de la définir dans les paramètres de votre appareil, par exemple en appelant le téléphone « Yulia, bonjour ». Astuce : vous pouvez utiliser des emoji dans le nom de l'appareil. Bien sûr, cette méthode n'est pas aussi brillante qu'avec une image, mais elle augmente considérablement les chances de cliquer sur le bouton « accepter ».

Une description plus détaillée des actions dépasse le cadre d'un article technique et dépend uniquement de votre imagination, de votre improvisation et de votre humour. Je peux seulement dire que ceux qui se joignent à ce jeu et commencent à vous répondre avec des photos ou à envoyer des notes sont généralement des personnes très joyeuses, ouvertes et intéressantes. Ceux qui, après avoir regardé l’image, ne réagissent tout simplement pas, ou pire, rejettent simplement le message, sont généralement des snobs et des prudes ennuyeux. Le facteur peur joue aussi souvent un rôle : les personnes fragiles et timides ont peur d'interagir avec un inconnu anonyme aussi arrogant.

Machine de prélèvement automatique

Si vous êtes trop paresseux pour générer et envoyer des charges utiles manuellement et que vous souhaitez automatiser le processus, vous pouvez créer une machine de sélection vocale automatique qui, en arrière-plan, enverra des images via AirDrop à toutes les personnes à portée. Nous utiliserons Raspberry Pi Zero comme plate-forme matérielle, mais n'importe quel ordinateur avec Linux fera l'affaire, l'essentiel est que la carte Wi-Fi prend en charge le mode moniteur et l'injection de paquets.

Comment utiliser AirDrop au lieu de Tinder
Émetteur de haut-parleur via Airdrop basé sur Raspberry Pi Zero avec bouclier de batterie UPS Lite

Il existe des programmes AirDrop Flooder pour les iPhones Jailbreak, ils fonctionnent de manière plus stable que les versions ouvertes sur Raspberry Pi

La configuration d'OWL sur Raspberry Pi est décrite en détail sur site du projet, mais je préfère utiliser la version Kali Linux pour Raspberry Pi Zero car des correctifs Nexmon sont déjà installés pour activer le mode moniteur Wi-Fi sur rpi0.

Il est important de rappeler qu’Airdrop (ou plutôt AWDL) n’est activé pour les patients qu’après réception d’un paquet BLE. Nous devons donc l’envoyer à intervalles de plusieurs secondes. Cela peut être fait en utilisant l'utilitaire py-bluetooth-utils. En utilisant la fonction start_le_advertising(), j'envoie la chaîne de données des exemples Apple bleee : 000000000000000001123412341234123400.

Une fois que vous avez un démon OWL fonctionnel, vous pouvez alors lancer mon fork goutte ouverte. Il y a un script dans le dépôt flooder.py, qui envoie à tout le monde une photo kak_dela.jpeg.

D'après mes observations, le raspberry pi zero w est instable en mode moniteur. Après environ 20 minutes de fonctionnement actif du Flooder, le sous-système Wi-Fi tombe en panne. Le problème est décrit par l'auteur pwnagotchi, et est probablement dû à une surchauffe. Il est nécessaire de prévoir un chien de garde ou d'utiliser du matériel plus stable

Mode Maniacello - Je connais ton numéro

Si vous voulez vous montrer comme un maniaque inadéquat et décourager à jamais le désir de continuer à communiquer avec vous, vous pouvez essayer de connaître le numéro de téléphone de la personne qui se trouve à proximité.

Comme nous l'avons appris précédemment, les paquets BLE envoyés par l'initiateur contiennent les trois premiers octets du numéro de téléphone sha256. Ce hachage peut être détecté lorsque la victime clique sur le bouton « Partager » et commence à analyser les appareils Airdrop ou appuie sur le mot de passe Wi-Fi d'un nouveau réseau dans le champ de saisie (de cette façon, Apple recherche des amis à portée desquels vous pouvez demander le mot de passe du réseau).

Vous devrez d'une manière ou d'une autre déclencher le message de hachage de la victime et l'attraper. J'utilise les utilitaires du référentiel Pomme Blee. Étant donné que les adresses MAC Bluetooth des appareils sont aléatoires et changent constamment, vous devrez trouver un autre moyen de déterminer l'appareil souhaité dans cette liste. La tâche est simplifiée par le fait qu'iOS diffuse l'état actuel du téléphone comme : écran éteint, écran allumé, écran verrouillé, déverrouillé, etc. Par conséquent, en observant simplement les actions de la victime, vous pouvez comparer l'état actuel de l'appareil avec celui de l'appareil figurant dans le tableau. Le moyen le plus simple est de capturer le moment où l'utilisateur sort le téléphone de sa poche, allume l'écran et déverrouille le téléphone avec son doigt ou son visage. Tout cela sera visible dans le renifleur.

Comment utiliser AirDrop au lieu de Tinder
icône Х signifie qu'un paquet contenant des hachages téléphoniques a été intercepté.

Leur analyseur tombe parfois en panne, mais le plus souvent il fonctionne. Je ne raconterai pas complètement l'essence de la vulnérabilité, puisqu'elle a été analysée en détail par les auteurs d'Apple Blee, je décrirai seulement mon expérience. Je dirai simplement que j'utilise un adaptateur USB Bluetooth sur une puce CSR 8510, car il fonctionne pour moi de manière beaucoup plus stable que l'adaptateur Bluetooth intégré à un MacBook et inséré dans une machine virtuelle.

Nous avons donc récupéré le hachage du téléphone de la victime et reçu les trois octets tant convoités du hachage du numéro de téléphone.

Comment utiliser AirDrop au lieu de Tinder
Paquet BLE intercepté avec hachage de numéro de téléphone à l'aide de l'utilitaire read_ble_state.py

Nous savons qu’en Russie, tous les numéros de téléphone portable commencent par le code +79 et, très probablement, le téléphone de notre victime porte le même code. Il s’avère que nous avons une plage de nombres allant de +79000000000 à +79999999999, soit environ un milliard de nombres.

Pour réduire la plage, nous prenons uniquement les codes réellement enregistrés auprès d'un opérateur et supprimons le reste. En conséquence, la gamme devient deux fois moins grande, soit environ un demi-milliard de nombres.

Ensuite, nous générons sha256 à partir de tous les nombres et enregistrons uniquement les 3 premiers octets de chaque hachage. Nous entrons cette liste dans la base de données SQLite et construisons un index pour accélérer la recherche.

Voici à quoi ressemblent les données de la base de données :

Comment utiliser AirDrop au lieu de Tinder
Tous les numéros de téléphone russes et les trois premiers octets du hachage

Ensuite, ayant le hash de la victime, nous pouvons rechercher toutes les correspondances dans la base de données. Il y a généralement 15 à 30 correspondances par hachage.

Comment utiliser AirDrop au lieu de Tinder
Tous les numéros correspondant au hachage de la victime

Évidemment, tous ces chiffres ne sont pas réellement utilisés. Nous pouvons supprimer les inutiles à l'aide d'une requête HLR ou d'un SMS invisible. Sur 30 numéros, 5 ont été trouvés en ligne.

Comment utiliser AirDrop au lieu de Tinder
Le résultat de la requête HLR. Les numéros de réseau sont surlignés en vert.

Je pourrais continuer à passer au crible les numéros, par exemple, les ajouter tous à Telegram/Whatsapp et regarder les avatars, consulter des bases de données comme Getcontact, etc. Mais il s’est avéré plus simple d’appeler les cinq numéros un par un et de regarder quand le téléphone de la victime sonne.

Comment utiliser AirDrop au lieu de Tinder
Cible localisée

Tous

  • Le Flooder du Raspberry Pi est très instable, vous devez essayer d'autres cartes simples.
  • Un Flooder natif pour iOS serait bien meilleur, mais je n'en ai pas trouvé un qui fonctionne sur iOS 12-13 même avec le jailbreak.
  • Le script Flooder.py est très stupide. Il pourrait probablement générer une image personnalisée en prenant le nom du nom de l'appareil du destinataire et en supprimant le mot iPhone.
  • La méthode de détermination d'un numéro de téléphone peut être optimisée en vérifiant uniquement le fait que le numéro est lié à iMessage. Cela vous donnera très probablement un taux de réussite proche de 100 %.

Conclusion

C'est le divertissement parfait pour le métro. Il y a un effet waouh, les curieux s’y intéressent. Il y avait beaucoup d'improvisation, il y avait des cas très drôles. Il s'avère que beaucoup de gens sont prêts à jouer le jeu et même à annuler leurs projets pour descendre à votre station de métro et aller prendre un café. Au cours de l'année, j'ai rencontré beaucoup de gens et je continue de communiquer avec certains d'entre eux.

Parfois, je désactive la connexion Telegram et je m'amuse comme ça.

Comment utiliser AirDrop au lieu de Tinder

Comment utiliser AirDrop au lieu de Tinder

Source: habr.com

Ajouter un commentaire