28 ene. 2021

Debilidad en Telegram permite obtener dirección IP en una llamada

Denis Simonov publicó (original en ruso) recientemente publicó un artículo demostrando cómo a través de una llamada de Telegram es posible interceptar la dirección IP del interlocutor, necesitando únicamente 5 segundos de llamada para determinarla.

Para acelerar el proceso de explotación, Denis ha creado un repositorio de GitHub con un script en Bash. Además, Jezer Ferreria y CyberRobin de Cyber Hunter Academy han publicado un artículo en español explicando el proceso paso por paso.

Primero tenemos que saber que Telegram, al hacer las llamadas, usa un protocolo llamado STUN.
Es un protocolo de red que permite a clientes NAT encontrar su dirección IP pública. Se suele usar en VoIP.

Ataque paso a paso

  1. Lanzamos Wireshark en la interfaz por donde tengamos conexión a Internet
  2. Llamamos a nuestra víctima (es necesario que coja la llamada para que el ataque funcione)
  3. Una vez que nos ha cogido la llamada basta con esperar unos 5 o 10 segundos y ya deberíamos tener suficientes paquetes para averiguar su IP. Aquí podemos parar ya Wireshark o cortar la llamada.
  4. En Wireshark filtramos por STUN
  5. Nos vamos a encontrar con muchos paquetes, pero hay unos específicos que llevan las direcciones IP reales, tanto tuya como la de tu víctima, estos son los que llevan XOR-XXXXX-ADDRESS o Request user, por lo que podemos filtrar con: ‘stun or stun.att.username or stun.att.ipv4-xord or stun.att.ipv4’
  6. Podemos ir examinando los paquetes mirando las direcciones IP de cada uno, esto se puede ver examinando el paquete y, en el apartado atributos, buscamos el XOR-XXXX-ADDRESS, o mirando en la dirección destino de los paquetes.
  7. 7. Vamos descartando las siguientes IPs:
    1. IP privadas como 192.168.X.X, 10.X.X.X, etc
    2. Nuestra dirección IP pública, que también aparece. Para averiguarla se puede acceder a la siguiente página o, para los fans de la terminal: dig +short myip.opendns.com @resolver1.opendns.com (esto sólo funciona sin VPN, ya que dependiendo de la VPN te cambia el resolutor DNS y tal vez no puedas acceder); otra opción por terminal es: curl -skL icanhazip.com
  8. Una vez llegados a este punto tendremos una lista de posibles direcciones IP, y para terminar de acotar, tendremos que descartar aquellas que pertenezcan a Telegram como tal. Esto se puede ver con la utilidad whois.
  9. Una vez filtradas todas las IPs nos deberían quedar una o dos, siendo una de ellas  la de nuestra víctima. 

Para proteger la privacidad de los usuarios, la opción Peer-to-peer (P2P) en las llamadas de Telegram está activada por defecto sólo para "Mis contactos". Los usuarios pueden aplicar más restricciones en este aspecto yendo a Ajustes de Telegram > Privacidad y seguridad > Llamadas.

Fuente: Cyber Hunter Academy

1 comentario:

  1. No creo que sea una vulnerabilidad: P2P será siempre de un punto a otro directo, por lo tanto, siempre tendrás la ip del otro lado.

    Pero bueno, la opción para desactivar eso existe.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!