sábado, 9 de enero de 2010

Enviar mails anonimos

Hola esta vez les hablare sobre otro error de configuración que encontré en un servidor de la universidad. Se trata de un SMTP Open Relay. Es decir la posibilidad de enviar mails anónimos o falsificados usando el servidor de correo de la universidad.

Vamos a aclarar como va esto. Le llamo correo anónimo o falsificado aun mensaje de correo electrónico en donde la dirección del remitente ha sido manipulada y en su lugar aparece una dirección inexistente o falsificada. Por ejemplo: alguien@algo.com, gbush@whitehouse.gob, etc.

Bien esto es algo serio. Estamos hablando de la posibilidad de suplantar la identidad de otras personas por medio de mensajes de correo electrónico. Alguien podria hacerce pasar por otro alumno, profesor, decano, rector, etc y enviar correos comprometedores o difamatorios causando malentendidos si no problemas mayores.

Si bien acá en Perú los delitos informáticos aun no están bien tipificados esto no significa que no te vayan a denunciar si cruzas la raya así que mucho cuidado con lo que haces.

Bueno empecemos... no aún no. Primero seria bueno que lean algo sobre el protocolo SMTP. Aqui hay muy buena información:

http://ditec.um.es/laso/docs/tut-tcpip/3376c46.html

¡Ahora si, a la acción!

Primero debemos averiguar la dirección IP del servidor de correo electronico. Para esto usaremos el protocolo DNS-MX. Abrimos una consola y ejecutamos el "nslookup".

C:\>nslookup
*** No se puede encontrar el nombre de servidor para la dirección 192.168.3.1: Non-existent domain
*** Los servidores predeterminados no están disponibles
Servidor predeterminado: UnKnown
Address: 192.168.3.1

>


Luego asignamos el tipo de consulta a MX (Mail eXchange (intercambio de correo)) para pedir las direcciones de los servidores de intercambio de correo (servidores SMTP).

>set type=mx
>


Pedimos las ips de los servidores SMTP del dominio "unmsm.edu.pe".

>unmsm.edu.pe
Servidor: UnKnown
Address: 192.168.3.1

unmsm.edu.pe MX preference = 1, mail exchanger = abancay.unmsm.edu.pe
abancay.unmsm.edu.pe internet address = 172.16.156.9
abancay.unmsm.edu.pe internet address = 172.16.156.8
>


Finalmente ejecutamos "exit" para cerrar nslookup.

>exit
C:\>

Bien las IPs de los servidores SMTP son 172.16.156.9 y 172.16.156.8. Para esta practica yo escogí la primera. Ahora conectaremos con "telnet" a 172.16.156.9 por el puerto 25 (puerto por donde atienden normalmente los servidores SMTP).

C:\>telnet 172.16.156.9 25

Ya conectados veremos un saludo como el siguiente:

220 abancay.unmsm.edu.pe ESMTP Postfix UNMSM Mail Server

Nosotros también saludaremos:

helo localhost

A lo que el servidor responde con:

250 abancay.unmsm.edu.pe

Ahora toca decir quien es el remitente:

mail from: [REMITENTE]

Donde [REMITENTE] se debe reemplazar por la dirección de correo que aparecerá como remitente. Aquí esta el detalle, podemos poner cualquier dirección de correo y el servidor la aceptara.

250 2.1.0 Ok

Esta orden asigna el destinatario:

rcpt to: [DESTINATARIO]

Igualmente debemos reemplazar [DESTINATARIO] por la dirección de correo que recibirá el mail falso.

Lo normal es que un servidor SMTP solo admita que el destinatario sea un correo de su dominio es decir @unmsm.edu.pe en nuestro caso. Sin embargo si acepta otros dominios como destino entonces decimos que este servidor SMTP es Open Relay o que admite Relay. Es este defecto de configuración el que permite enviar correos falsificados.

El servidor aceptara el destinatario y respondera:

250 2.1.0 Ok

Ahora para iniciar la redacción del mensaje ejecutamos la orden data:

data

El servidor responde con:

354 End data with <CR><LF>.<CR><LF>

Significa que desde ahora todo lo que escribamos formara parte del mensaje y que el final del mensaje se indicara con una linea conteniendo únicamente un punto.

En el mensaje podemos añadir algunas cabeceras para los campos de asunto, nombre del remitente, nombre del destinatario, etc.

From: "Nombre remitente" <correo@remitente>
To: "Nombre destinatario" <correo@destinatario>
Subject: "Asunto"
Saludo...
Cuerpo del mensaje.
despedida.
.

Nuestro mensaje consta de 3 cabeceras From, To y Subject para llenar los campos de remitente, destinatario y asunto respectivamente, luego sigue un mensaje de tres lineas y el fin del mensaje se marca con un punto.

Terminada la redacción del mensaje el servidor responderá indicando que el mensaje ha sido puesto en la cola de salida:

250 2.0.0 Ok: queued as [CODIGO]

Finalmente terminamos la conexión con la orden quit:

quit

El servidor se despide...

221 2.0.0 Bye

Y ya hemos terminado de mandar el correo falsificado. ¿Sencillo verdad?

Ahora les dejo un vídeo demostrativo:



Bueno espero que les haya gustado. Cualquier duda o sugerencia solo comentenla. Gracias por leer, sera hasta la próxima.

Todo lo explicado aquí es solo con fines didácticos. El autor no se hace responsable por el uso que se le pueda dar a esta información.

2 comentarios:

  1. je ta chevre el nuevo estilacho , enviare un email a ver que tal sale

    ResponderEliminar
  2. xk no acepta telnet windows

    ResponderEliminar