Cómo uso AirDrop en lugar de Tinder

Cómo uso AirDrop en lugar de Tinder

Los dispositivos Apple tienen una excelente función Airdrop: está diseñada para enviar datos entre dispositivos. En este caso, no se requiere configuración ni emparejamiento preliminar de dispositivos, todo funciona desde el primer momento con dos clics. Se utiliza un complemento a través de Wi-Fi para transferir datos y, por lo tanto, los datos se transfieren a velocidades enormes. Al mismo tiempo, utilizando algunos trucos, no solo podrás enviar archivos, sino también averiguar el número de teléfono de la persona que está en el mismo vagón de metro que tú.

Desde hace un año utilizo esta función para hacer amistades interesantes de camino al trabajo, en el transporte público y en establecimientos de restauración pública. De media, logro hacer varias amistades nuevas al día y, a veces, salgo del metro en compañía de una nueva persona.

Debajo del corte te contaré todos los caquis.

¿Cómo funciona AirDrop?

Cómo uso AirDrop en lugar de Tinder

AirDrop es un protocolo para transferir archivos dentro de una red peer-to-peer. Puede funcionar tanto a través de una red local normal como por aire entre cualquier dispositivo Apple. Analizaremos el último caso, cuando dos dispositivos no están conectados a una red común, sino que simplemente están cerca, por ejemplo, dos personas con teléfonos viajan en un vagón de metro y no están conectadas a una red Wi-Fi común.

Cómo uso AirDrop en lugar de Tinder
La primera etapa de la transmisión vía AirDrop es enviar un paquete BLE

Para iniciar la transferencia de datos a través de AirDrop, el teléfono del iniciador envía un paquete de transmisión BLE, que contiene información hash sobre la cuenta de iCloud y el número de teléfono del propietario de los dispositivos del iniciador, con una propuesta para establecer una conexión a través de AWDL (Apple Wireless Direct Link ), algo así como Wi-Fi.Fi Direct del mundo de Android. La estructura de este paquete BLE es muy interesante, la analizaremos más a fondo.

Por parte del destinatario, AirDrop puede estar en tres estados:

  • Apagado - no será detectado en absoluto
  • Solo para contactos — acepte archivos sólo de los contactos de su libreta de direcciones. En este caso se considera contacto el número de teléfono o correo electrónico al que está vinculada la cuenta de iCloud. Aquí funciona la misma lógica para vincular cuentas que con iMessages Messenger.
  • para todos - el teléfono será visible para todos

Cómo uso AirDrop en lugar de Tinder
Configuración de privacidad de AirDrop. El estado predeterminado está establecido en "Para contactos".

Dependiendo de su configuración de privacidad, el teléfono continuará estableciendo una conexión a través de AWDL o simplemente ignorará el paquete BLE. Si AirDrop está configurado en "para todos", en el siguiente paso los dispositivos se conectarán entre sí a través de AWDL y crearán una red IPv6 entre ellos, dentro de la cual AirDrop funcionará como un protocolo de aplicación normal utilizando mDNS sobre el protocolo IP estándar.

Cómo uso AirDrop en lugar de Tinder

Para realizar experimentos, puede ver cómo funciona AWDL en una MacBook. Todo el intercambio bajo este protocolo ocurre a través de la interfaz awdl0, que se puede capturar fácilmente usando Wireshark o tcpdump.

En esta etapa conocemos tres entidades:

Paquete Bluetooth de baja energía (BLE) - este paquete contiene datos en función de los cuales el teléfono decide si el iniciador está en su lista de contactos o no.
Enlace directo inalámbrico de Apple (AWDL) — un reemplazo patentado de Wi-Fi Direct de Apple, que se activa si la comunicación a través de BLE fue exitosa.
Lanzamiento desde el aire - un protocolo de aplicación que opera dentro de una red IP normal utilizando mDNS, HTTP, etc. Puede funcionar dentro de cualquier red Ethernet.

Estructura del paquete BLE

Puede parecer que este paquete BLE vuela solo una vez desde el iniciador al destinatario, y luego el intercambio se produce solo a través de AWDL. En realidad, una conexión AWDL tiene una vida útil muy corta, sólo unos minutos o menos. Entonces, si el destinatario del archivo quiere responderle, también actuará como iniciador y enviará un paquete BLE.

¿Cómo sabe el teléfono del lado receptor si el número/correo electrónico del iniciador está en su lista de contactos o no? Me sorprendí mucho cuando descubrí la respuesta: el iniciador envía su número y correo electrónico como un hash sha256, pero no del todo, sino solo los primeros 3 bytes.

Cómo uso AirDrop en lugar de Tinder
Estructura de un paquete BLE del iniciador AirDrop. Utilizando hashes del número de teléfono y el correo electrónico, el respondedor comprende si el iniciador está en su lista de contactos.

Por ejemplo, si su cuenta de Apple (también conocida como iCloud, también conocida como iMessages) está vinculada al número +79251234567, el hash se calculará de esta manera:

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

Y como resultado, el valor en el paquete BLE desaparecerá 07de58 para un número de teléfono. Esto parece poco, pero a menudo estos tres bytes son suficientes para encontrar el número de teléfono real.

También es importante recordar que la configuración de privacidad de AirDrop no afecta los datos del paquete BLE. El hash del número de teléfono estará contenido en él, incluso si está configurada la configuración "Para todos". Además, se envía un paquete BLE con un hash del número de teléfono cuando se abre la ventana Compartir y cuando se ingresa la contraseña de la red Wi-Fi.

Para un análisis detallado de la estructura de los paquetes BLE y posibles ataques a los mismos, lea el estudio. manzana azul y ruso traducción al Habré.

El estudio de Apple Bleee publicó scripts de Python ya preparados para automatizar el análisis de datos en paquetes BLE. Recomiendo encarecidamente consultar la investigación y probar los programas, hay muchas cosas interesantes disponibles.

AWDL (enlace directo inalámbrico de Apple)

AWDL es un complemento patentado de Apple para Wi-Fi normal que implementa algo como Wi-Fi Direct. No sé del todo cómo funciona, hay una forma especial de anunciar y coordinar canales y solo funciona con controladores propietarios de Apple. Es decir, sólo los MacBooks/iPhones pueden conectarse mediante AWDL.

Los tristes propietarios de teléfonos Android todavía sólo sueñan con que la función Wi-Fi Direct funcione correctamente.

Cómo uso AirDrop en lugar de Tinder

Pero no hace mucho los chicos de laboratorio-pareceoo Escribió una implementación de código completamente abierto de AWDL y la llamó Abrir enlace inalámbrico (BÚHO). Para ejecutar OWL, el adaptador Wi-Fi debe admitir el modo monitor y la inyección de paquetes, por lo que no se ejecuta en todos los hardware. El sitio tiene ejemplos de configuración en Raspberry pi. Esto funciona significativamente peor que el AWDL original; por ejemplo, el tiempo de configuración de la conexión se extiende ~10 segundos en lugar de un par de segundos para el original, pero funciona.

Cómo uso AirDrop en lugar de Tinder

Además, estos chicos escribieron desde cero una implementación del protocolo AirDrop en Python, llamada OpenDrop. Se puede utilizar tanto junto con OWL para iniciar AirDrop en Linux como con el AWDL original en macOS.

Cómo enrollarse a través de AirDrop

Cómo uso AirDrop en lugar de Tinder
Situación típica al enrollar mediante AirDrop

Basta de teoría aburrida, es hora de empezar a practicar. Así que estará armado con todo el equipo necesario y listo para avanzar y enrollar bolas utilizando alta tecnología.

Primero debes recordar los puntos principales.:

  • AirDrop solo funcionará si el teléfono está desbloqueado – Es mejor si el objetivo está constantemente mirando el teléfono. La mayoría de las veces esto sucede en lugares aburridos, por ejemplo en el metro.
  • Necesitar tiempo — normalmente, se produce una conversión positiva en la tercera o quinta imagen enviada, por lo que necesitas al menos 3 minutos de silencio en un solo lugar. Considero que una conversión positiva es el momento en que aceptaste a través de AirDrop continuar comunicándote en el Messenger. Esto es difícil de implementar sobre la marcha, porque no está claro de inmediato quién aceptó su carga útil y lo más probable es que se calienten antes de poder ponerse de acuerdo en algo.
  • La creatividad personalizada funciona mejor — Llamo carga útil al contenido multimedia que envías a través de AirDrop. Lo más probable es que una simple imagen con un meme no lleve a ninguna parte; el contenido debe ser relevante para la situación y tener un llamado a la acción claro.

El método clásico: sólo un teléfono

Apto para todos los que tienen un iPhone, no requiere habilidades especiales más que las sociales. Cambiamos AirDrop al modo Todos y bajamos al metro. En un día normal (antes del autoaislamiento) en un vagón del metro de Moscú, observé algo como esto:

Cómo uso AirDrop en lugar de Tinder
Lista de objetivos

Como puede ver, casi todos los teléfonos transmiten el nombre del propietario, mediante el cual podemos determinar fácilmente su sexo y preparar la carga útil adecuada.

Carga útil

Como escribí anteriormente, una carga útil única funciona mejor. Lo ideal es que la imagen esté dirigida al propietario por su nombre. Anteriormente, tuve que esculpir la creatividad utilizando un editor gráfico en la aplicación de notas y una especie de código auxiliar de Photoshop móvil. Como resultado, cuando se hizo el dibujo requerido, ya era necesario salir del auto.

mi amiga anya koteeq, específicamente a petición mía, escribió un bot de Telegram que genera las imágenes necesarias con un título sobre la marcha: @AireTrollBot. Le agradezco mucho el hecho de que ahora puedo hacer rodar bolas con mucha más tecnología que antes.

Basta con enviarle al bot una línea de texto y lo generará en forma de imagen que coincide exactamente con la relación de aspecto de la vista previa en la ventana AirDrop. Puede seleccionar un personaje en la imagen presionando los botones. Opcionalmente, también puedes habilitar la adición de tu inicio de sesión de Telegram a la imagen de la esquina.

Cómo uso AirDrop en lugar de Tinder
Generador de carga útil

Lo peor fue que la imagen se mostró inmediatamente en la pantalla de la víctima sin ninguna acción. Ni siquiera tenías que hacer clic en "aceptar". Se podía ver la reacción instantánea en la cara al cargar la carga útil. Desafortunadamente, a partir de iOS 13, las imágenes de contactos desconocidos ya no se muestran en la pantalla. Así es como se veía antes:

Cómo uso AirDrop en lugar de Tinder
Carga útil entregada en iOS ≤12

Ahora, en lugar de una vista previa, solo se muestra el nombre del dispositivo del remitente. Por lo tanto, la única forma de contactar a una víctima con iOS ≥13 por su nombre es configurarlo en la configuración de su dispositivo, por ejemplo, llamar al teléfono "Yulia, hola". Sugerencia: puedes usar emoji en el nombre del dispositivo. Por supuesto, este método no es tan brillante como con una imagen, pero aumenta enormemente las posibilidades de hacer clic en el botón "aceptar".

Una descripción más detallada de las acciones está más allá del alcance de un artículo técnico y depende únicamente de su imaginación, improvisación y humor. Sólo puedo decir que quienes se unen a este juego y empiezan a responderte con fotos o enviando notas suelen ser personas muy alegres, abiertas e interesantes. Aquellos que, después de mirar la imagen, simplemente no responden, o peor aún, simplemente rechazan el mensaje, suelen ser aburridos snobs y mojigatos. El factor miedo también influye a menudo: las personas frágiles y tímidas tienen miedo de interactuar con un extraño anónimo tan arrogante.

Máquina automática de recogida

Si eres demasiado vago para generar y enviar cargas útiles manualmente y quieres automatizar el proceso, puedes crear una máquina automática de selección de voz, que en segundo plano enviará imágenes a través de AirDrop a todos los que estén dentro del alcance. Usaremos raspberry pi zero como plataforma de hardware, pero cualquier computadora con Linux servirá, lo principal es que la tarjeta Wi-Fi admita modo monitor e inyección de paquetes.

Cómo uso AirDrop en lugar de Tinder
Remitente de altavoz vía Airdrop basado en raspberry pi zero w + escudo de batería UPS Lite

Existen programas AirDrop Flooder para iPhones con Jailbreak, funcionan de manera más estable que las versiones abiertas en Raspberry Pi.

La configuración de OWL en raspberry pi se describe en detalle en sitio del proyecto, pero prefiero usar la compilación Kali Linux para Raspberry Pi Zero porque ya tiene parches Nexmon instalados para habilitar el modo de monitor Wi-Fi en rpi0.

Es importante recordar que Airdrop (o más bien AWDL) se activa para los pacientes solo después de recibir un paquete BLE. Por tanto, debemos enviarlo a intervalos de varios segundos. Esto se puede hacer usando la utilidad. py-bluetooth-utils. Usando la función start_le_advertising(), envío la cadena de datos de los ejemplos de Apple bleee: 000000000000000001123412341234123400.

Una vez que tengas un demonio OWL en funcionamiento, podrás iniciar mi bifurcación. gota abierta. Hay un script en el repositorio. flooder.py, que envía a todos una foto kak_dela.jpeg.

Según mis observaciones, la raspberry pi zero w es inestable en modo monitor. Después de unos 20 minutos de funcionamiento activo de la inundación, el subsistema Wi-Fi falla. El problema lo describe el autor. pwnagotchi, y presumiblemente es causado por sobrecalentamiento. Es necesario proporcionar un perro guardián o utilizar hardware más estable.

Modo Maniacello - Sé tu número

Si quieres mostrarte como un maníaco inadecuado y desalentar para siempre el deseo de seguir comunicándose contigo, puedes intentar averiguar el número de teléfono de la persona que está cerca.

Como aprendimos anteriormente, los paquetes BLE enviados por el iniciador contienen los primeros tres bytes del número de teléfono sha256. Este hash se puede capturar cuando la víctima hace clic en el botón "compartir" y comienza a escanear dispositivos de lanzamiento aéreo o toca la contraseña de Wi-Fi para una nueva red en el campo de entrada (de esta manera, Apple busca amigos dentro del alcance a quienes pueda solicitar la contraseña de la red).

Necesitará activar de alguna manera el mensaje hash de la víctima y capturarlo. Estoy usando utilidades del repositorio. manzana azul. Dado que las direcciones MAC Bluetooth de los dispositivos son aleatorias y cambian constantemente, tendrá que encontrar otra forma de determinar el dispositivo deseado en esta lista. La tarea se simplifica por el hecho de que iOS transmite el estado actual del teléfono como: pantalla apagada, pantalla encendida, pantalla bloqueada, desbloqueado, etc. Por lo tanto, simplemente observando las acciones de la víctima, puede comparar el estado actual del dispositivo con el dispositivo de la tabla. La forma más sencilla es captar el momento en que el usuario saca el teléfono del bolsillo, enciende la pantalla y desbloquea el teléfono con el dedo o la cara. Todo esto será visible en el sniffer.

Cómo uso AirDrop en lugar de Tinder
icono Х significa que se capturó un paquete con hashes telefónicos.

Su analizador a veces falla, pero la mayoría de las veces funciona. No volveré a contar completamente la esencia de la vulnerabilidad, ya que fue analizada en detalle por los autores de Apple Blee, solo describiré mi experiencia. Solo diré que uso un adaptador Bluetooth USB en un chip CSR 8510, ya que funciona mucho más estable para mí que el adaptador Bluetooth integrado en una MacBook e insertado en una máquina virtual.

Entonces capturamos el hash del teléfono de la víctima y recibimos los codiciados tres bytes del hash del número de teléfono.

Cómo uso AirDrop en lugar de Tinder
Paquete BLE interceptado con hash de número de teléfono usando la utilidad read_ble_state.py

Sabemos que en Rusia todos los números de móvil empiezan con el código +79 y, muy probablemente, el teléfono de nuestra víctima tenga el mismo código. Resulta que tenemos un rango de números desde +79000000000 hasta +79999999999, alrededor de mil millones de números.

Para limitar el rango, tomamos solo los códigos que realmente están registrados con cualquier operador y descartamos el resto. Como resultado, el rango se reduce a la mitad, aproximadamente XNUMX millones de números.

A continuación, generamos sha256 a partir de todos los números y guardamos solo los primeros 3 bytes de cada hash. Ingresamos esta lista en la base de datos Sqlite y creamos un índice para acelerar la búsqueda.

Así es como se ven los datos en la base de datos:

Cómo uso AirDrop en lugar de Tinder
Todos los números de teléfono rusos y los primeros tres bytes del hash.

A continuación, teniendo el hash de la víctima, podemos buscar todas las coincidencias en la base de datos. Por lo general, hay entre 15 y 30 coincidencias por hash.

Cómo uso AirDrop en lugar de Tinder
Todos los números que coinciden con el hash de la víctima.

Obviamente, no todos estos números se utilizan realmente. Podemos cortar los innecesarios mediante una solicitud HLR o un SMS invisible. De 30 números, 5 se encontraron en línea.

Cómo uso AirDrop en lugar de Tinder
El resultado de la solicitud HLR. Los números de red están resaltados en verde.

Podría seguir revisando los números, por ejemplo, agregarlos todos a Telegram/Whatsapp y mirar los avatares, consultar bases de datos como Getcontact, etc. Pero resultó más fácil simplemente llamar a los cinco números uno por uno y observar cuando suena el teléfono de la víctima.

Cómo uso AirDrop en lugar de Tinder
Objetivo localizado

Todo

  • El reflector de la Raspberry Pi es muy inestable, debes probar con otras placas individuales.
  • Un Flooder nativo para iOS sería mucho mejor, pero no pude encontrar uno que funcione en iOS 12-13 ni siquiera con jailbreak.
  • El script Flooder.py es muy estúpido. Probablemente podría generar una imagen personalizada tomando el nombre del dispositivo del destinatario y recortando la palabra iPhone.
  • El método para determinar un número de teléfono se puede optimizar comprobando únicamente el hecho de que el número esté vinculado a iMessage. Lo más probable es que esto le proporcione una tasa de acierto cercana al 100%.

Conclusión

Este es el entretenimiento perfecto para el metro. Se produce un efecto sorpresa, esto interesa a los curiosos. Hubo mucha improvisación, hubo casos muy divertidos. Resulta que mucha gente está dispuesta a seguir el juego e incluso cancelar sus planes para bajarse en su estación de metro y subir a tomar un café. A lo largo del año, conocí a mucha gente y sigo comunicándome con algunos de ellos.

A veces apago el inicio de sesión de Telegram y me divierto. como este.

Cómo uso AirDrop en lugar de Tinder

Cómo uso AirDrop en lugar de Tinder

Fuente: habr.com

Añadir un comentario