En este post vamos a ver cómo disfrazar un correo electrónico para obtener la IP de un usuario con el simple hecho de que lo abra y vea su contenido, o mejor dicho, una imagen.

Lo que haremos, en pasos sencillos, será enviar una imagen de un perro (no es broma) la cual será servida a través de PHP con readfile. La IP se registrará con el código que vimos aquí.

Este método funciona correctamente en correos de dominio personal (es decir, .com, .me, .io, etcétera) y en hotmail; pero no en gmail, ya veremos por qué.

Recuerda que esto se hace con fines didácticos y que no me hago responsable de lo que se pueda hacer con esto.

Una explicación de cómo funciona

Recordemos que es posible enviar HTML en los correos. Así que basta con enviar una imagen y ya está.

La imagen se va a descargar cuando el usuario abra el correo, por lo que su IP quedará registrada.

Para registrar la IP y servir la imagen al mismo tiempo, el atributo src de nuestra imagen será un archivo PHP que mostrará la imagen pero antes registrará la IP.

Nota: todo el código que se usa está en GitHub.

Paso 1: preparar archivo que registra IP y sirve imagen

El archivo queda como se ve a continuación.

Así, aunque la extensión sea php, será servida una imagen, y eso es totalmente válido.

Relacionado:  Codificar y decodificar JSON con Go/GoLang

Por cierto, la imagen en cuestión es esta.

Ese archivo debe estar en internet, puedes usar un hosting gratuito y subirlo por FTP.

Cuando esté subido (no olvides subir también la foto) copia su ruta absoluta; por ejemplo:

http://sitio.com/perro.php

En mi caso es este enlace:

https://www.parzibyte.me/apps/obtener_ip/perro.php

 

Paso 2: preparar HTML

Ahora hay que crear un archivo HTML con el contenido del correo. No olvides colocar la imagen:

Se ve así:

Página HTML para enviar correo

Paso 3: enviar correo

Ahora hay que copiar ese HTML y enviarlo por gmail o por otro lugar, pero asegúrate de enviar el HTML.

Nota: recuerda que con PHP también se puede enviar un correo con HTML.

Tip: si lo vas a enviar por Gmail selecciona todo el contenido, copia y pega:

Armar HTML

Enviando correo

Lo enviamos y listo. Ahora esperamos que la víctima lo abra.

Paso 4: víctima

Me ha llegado el correo a Thunderbird, y Thunderbird sabe que estas cosas existen así que me pregunta si deseo ver el contenido remoto:

Contenido remoto

Al aceptarlo, se loguea la IP:

Ip obtenida

¿Por qué en Gmail no funciona?

Como lo dije, en mis pruebas no funcionaba con gmail, no sé si fue cosa mía o que realmente no funciona.

Bueno, decir que no funciona no es correcto. Quise decir que no se registró mi IP, sino una IP de lo que parece ser un proxy.

Así que puedo decir que parece que gmail sirve el contenido a través de un proxy para prevenir justamente cosas como estas.

En cambio, probé enviarme el correo al de mi sitio (contacto@parzibyte.me) y al de hotmail; en ambos casos funcionó.

Relacionado:  Correo electrónico con adjunto en PHP - Enviar archivo

Conclusión

Con esto queda demostrado que debemos ser cuidadosos al mostrar el contenido remoto de un correo de un desconocido.

Cabe mencionar que si el usuario no permite el contenido remoto, no se logueará nada. Depende de las aplicaciones que use y de sus hábitos.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 574 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: