Obtener IP Real mediante Telegram

¡Hola, Cyber Hunters!
Vamos a ver cómo podemos, a través de las llamadas de Telegram, obtener la IP real o, en su defecto, la de la VPN/Proxy que esté utilizando nuestro objetivo.

Aquí podéis ver el artículo original

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:
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. Vamos descartando las siguientes IPs:
a) IP privadas como 192.168.X.X, 10.X.X.X, etc
b) 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:
a) Por consola de comandos: whois IP

Y vemos que el netname pertenece a Telegram
Podemos filtrar un poco más la consulta por si nos resulta molesto con: whois IP | grep netname

Y de esta manera averiguamos si la IP es de Telegram y, por tanto, no es la que buscamos.

b) Por navegador mediante la página https://whois.domaintools.com

Se mete la dirección IP y nos saca un resultado parecido al de por consola

9. Una vez filtradas todas las IPs nos deberían quedar una o dos, siendo una de ellas  la de nuestra víctima. En este caso, después de filtrar nos quedaba la siguiente IP perteneciente a una VPN:


Si le hacemos un Whois, obtenemos lo siguiente:

Y si queremos asegurarnos podríamos buscarla en buscadores tipo Shodan, que nos confirmaría que es una VPN.

PRO TIP: se pueden sacar todas las direcciones a las cuales se han hecho consultas con el protocolo stun mediante wireshark sin mirar los paquetes a mano haciendo lo siguiente:

1. En la barra de herramientas pulsamos Statistics -> Endpoints
2. Nos aparecerá la siguiente ventana

3. Seleccionamos el tick de Limit to display filter (con el filtro de stun en wireshark), y nos debería mostrar solo las Ips que se han utilizado durante la comunicación con stun y, a partir de ahí, podemos seguir el proceso de filtrado anteriormente descrito.

Para terminar, recordaos que:

– Nada es tan seguro como nos hacen creer.
– Usa VPN para estar lo más protegido posible.
– Y, sobre todo, nunca hables con extraños (puedes configurar en los ajustes de Telegram quién puede llamarte).

El autor del post original (Denis Simonov) ha publicado un su GitHub un script para facilitar la explotación:
https://github.com/n0a/telegram-get-remote-ip

ACTUALIZACIÓN – 25/01

Agradecemos a Víctor Espinoza, de Telegram Messenger, quien nos hace llegar una aclaración sobre este post:

Para proteger la privacidad de nuestros 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.

Ahí puedes seleccionar si usas P2P con todos, tus contactos o con nadie.
Si la opción está configurada para “Mis contactos”, quiere decir que las personas que no estén en tus contactos no usarán el modo P2P.

👉🏾 Únete al canal @cyberhunteracademy en Telegram para aprender más OSINT

POC Desarollada y Traducida por CyberRonin y Jézer Ferreira
Redacción y revisión: Ana Isabel Corral García