Oportunidades para deanon masivo en Telegram





tl; dr: Estoy explorando las posibilidades de hacer coincidir cuentas con números de teléfono en el segmento de Telegram ruso.



Hay mucha gente en el mundo que quiere poder crear un usuario arbitrario. Estos pueden ser capitalistas que no evitan el spam, los servicios especiales, los estafadores y solo los acosadores. Los servicios sociales están tratando de maniobrar entre el deseo de atraer la mayor audiencia posible a través de la importación de contactos y los límites al acceso a dicha información. Maniobran de diferentes maneras, algunos se posicionan lo más socialmente posible, mientras que otros valoran más la privacidad. Estos últimos se convierten en blanco de ataques de partidarios de la máxima privacidad.



Por defecto, en Telegram, como en los mensajeros menos privados, se puede obtener una cuenta de usuario, conociendo su número. Al mismo tiempo, el propietario del número puede limitar esta oportunidad solo para contactos mutuos, para esto hay una opción especial. De forma predeterminada, está desactivado, lo que significa que tenemos un Telegram completo de tipos descuidados y deliberadamente públicos. La característica parece deberse a un drenaje en la base de usuarios. Decidí averiguar cuánto costaría crear una base de datos similar y si podría crear una.



Limité mis intereses a los usuarios rusos únicamente. La base de rangos de números, como resultó, se publicaRossvyaz, que simplificó aún más mi tarea al eliminar la necesidad de eliminar sitios con dicha información. En total, el 7 de septiembre, los operadores recibieron casi seiscientos millones de números, o mejor dicho, exactamente 598035003.



Tomé algunas tarjetas SIM, `telethon` (módulo Python con una implementación completa de MTProto) e intenté crear una base de datos de este tipo en casa.



Compartir contactos y agregar a un grupo



¿Recuerdas la historia del decano de Hong Kong? El bot agregó usuarios al grupo por número de teléfono, recibiendo así una cuenta vinculada al teléfono. En el mismo artículo, un periodista de ZDNet se puso en contacto con un representante de Telegram. Este último dijo que las importaciones a granel serían problemáticas.

Sospechamos que algunos atacantes patrocinados por el gobierno han explotado este error y lo han usado para atacar a los manifestantes de Hong Kong, en algunos casos presentando peligros inmediatos para la vida de los manifestantes.


Así que decidí primero hurgar en los contactos. La interfaz de clientes oficiales de Telegram te permite compartir solo aquellos usuarios cuyo número puedes ver de una forma u otra. Sin embargo, `telethon` te permite compartir contactos con un número arbitrario. A juzgar por su API, la función de compartir es enviar un archivo de cierto tipo . Para una verificación preliminar, esbocé un guión que envió el contacto especificado a mi cuenta principal sin más preguntas.



Para verificar con el script, abrí una cuenta "limpia" (en lo sucesivo, el Bot) y envié tres números a otra cuenta (en lo sucesivo, el Destinatario): Pasha, Dasha y la mía. Todos tienen Telegram. Pasha compartió su teléfono con todos. Dasha agregó el destinatario a sus contactos. Agregué mi número dos veces: primero agregando a Bot a mis contactos, luego eliminé el bot y me agregué a los contactos de Bot.







El resultado se puede interpretar a partir de la imagen: los contactos normalmente se escabullen solo si el teléfono está disponible para el bot. Es aún peor con la adición al chat . Ni siquiera puedo agregar cuentas con un teléfono conocido a Bot si desactivaron esta función en la configuración. Además, los bots se pueden prohibir rápidamente si los usuarios comienzan a informar sobre spam. Así que no voy a criticar a nadie, es hora de olvidar esta idea.



Sincronización



Sincronizar contactos, como dije, potencialmente conduce a restricciones de cuenta. Pero, ¿a qué se parece? Escribí otro script que toma números aleatorios de la base de datos y los agrega a los contactos. Después de eso, el script analiza los contactos, agrega los identificadores de las cuentas que se encuentran en la lista a la base de datos, marca el resto con ceros y elimina los contactos de la lista.



Luego corrí 5,000 números aleatorios, según los rumores, estos son los límites que funcionan en Telegram. No encontré ningún identificador en la salida, excepto el propio Bot. Ahora, para eliminar posibles errores en el código y truco del Telegram, agrego manualmente el número de Dasha a los números aleatorios, deshabilito la eliminación de contactos de la lista, reduzco el tamaño de la muestra a 3000 números y lo vuelvo a ejecutar. Dasha no está en la lista ni en la base de datos. Un intento de agregar manualmente Dasha sugiere que los límites de Telegram han funcionado.







Casi todo parece ir bien. Para asegurarme, eliminé mi cuenta y la registré nuevamente, reduje la cantidad de teléfonos a 3000, incluido Dasha, y ejecuté el script nuevamente. El resultado es similar. Parece que los límites no afectan a la cuenta, sino al número de teléfono desde el que se sincronizan los contactos. Todo parece ir bien y Telegram proporciona un nivel razonable de protección contra la fuerza bruta.



¿O no?



En Internet se mencionan al menos dos servicios que supuestamente escanearon una amplia gama de números. Uno de ellos lo revisé, funciona mal. Supongamos que el segundo no está mintiendo y realmente lo lograron. Supongamos incluso que no necesitan procesar los 600 millones de números y que conocen 150 millones de números realmente activos (un poco más de un número per cápita en la Federación de Rusia). ¿Cuánto costará escanear a todos en seis meses, observando todas las restricciones del mensajero? ¿Y en tres meses? ¿Y en un mes? ¿Y en un día?



Supongamos que puede escanear 5000 contactos de un número el primer día y 100 más cada día siguiente . En seis meses, de cada número, puede enumerar 23.000 contactos (180*100+5000); para buscar, necesitará unos 6.500 números.(150000000/23000)... No mucho, ¿verdad? Si cada tarjeta SIM cuesta 150 rublos (¡lo cual es caro!), Entonces el costo de comprarlas será menos de un millón de rublos. ¡Cantidad de elevación incluso para pequeñas empresas! Para las tarjetas SIM, ni siquiera necesita tener mucho equipo, inicie sesión y ejecute el script una vez al día.



Pero contamos hasta el máximo. Tomemos el conjunto completo de 600 millones de números y reduzcamos el período de tiempo a un mes. Resulta que necesita 75 mil tarjetas SIM, que costarán solo unas diez veces más.(600000000/(5000+30*100)*150=11250000)... Tendrá que intentar encontrar tantas tarjetas SIM, pero puede reducir su costo en ese lote. Potencialmente, puede utilizar servicios que le permitan registrar una cuenta desde 3,5 rublos cada uno, y los más rechazados pueden propagar troyanos para robar SMS. Entonces será mucho más económico. El desarrollo no parece demasiado complicado y los clientes de alojamiento tampoco deberían ser un gran problema. Puede que tenga que utilizar muchos proxies, pero esto no es seguro.



No pude recopilar la base de datos debido a los límites de Telegram, y eso es bueno. Esto significa que existe un cierto umbral de entrada para tales acciones. Pongo scripts inútiles en un git... Pero no hay nada extremadamente difícil de hacer con algunos recursos. Especialmente si restringe los intereses a regiones específicas, por ejemplo, en la Región Autónoma Judía hay menos de un millón de números en el grupo, y en Bashkortostán hay 12,5 millones.



Me sugirió que el equipo Telegrama informar al usuario sobre la posibilidad de ocultar el teléfono. Y les recuerdo que el anonimato en los servicios sociales es condicional. Si no quiere caer bajo un decano masivo, oculte su número de teléfono en Telegram para todos excepto para sus contactos.










All Articles