__________________________________________________________________________________

  Falsificando Correo Electrónico 

La siguiente Guía cubre las bases de la falsificación de correo electrónico.

La primera convención de hackers a la que asistí fue Def Con III, en el hotel Tropicana de Las Vegas, en agosto de 1995. Me traje un portátil de pocas prestaciones con Windows 3.11 y un módem. El salón de baile tenía una conexión telefónica activada con la que al parecer nadie hacía nada, así que la ocupé. Hice telnet a las diferentes máquinas Unix en las que tenía cuentas shell y entretuve a montones de hackers mostrándoles cómo podían falsificar correo electrónico en casi cualquier ordenador conectado a Internet.

Gregory Gillis, del Dis Org Gang, lo encontró tan genial que me hizo escribir las instrucciones sobre cómo falsificar correo electrónico, las copió en disquetes y se las vendió a la gente de la Def Con.

Hoy en día es mucho más difícil falsificar correo que cuando publiqué esta Guía. La razón es que los spammers falsifican el correo electrónico para enviar correos basura. Esta práctica carga enormemente la máquina empleada para enviar el correo falso, no permitiéndole realizar sus tareas normales. ¡También hace que toda esa gente que recibe correos del estilo "fotos calientes XXX" se vuelva totalmente loca! Así pues, sólo los más despistados dejan sus servidores de correo abiertos al público.

Todavía es fácil falsificar correo electrónico: simplemente tienes que saber más que los spammers. En la Guía que sigue he añadido instrucciones sobre cómo encontrar, en menos de diez minutos, un ordenador en el que poder falsificar correo. Claro que si lo que quieres son instrucciones actualizadas, real y seriamente detalladas acerca de cómo falsificar correo, echa un vistazo a mi libro *The Happy Hacker*, que está en la mayoría de las estanterías de las librerías Barnes & Noble

Carolyn Meinel.


En este capítulo vamos a aprender cómo falsificar correo electrónico y cómo detectar falsificaciones. ¡Lo prometo, estos trucos son espectacularmente fáciles!

Hacking osado en media hora. ¿Cómo te gustaría dejar alucinados a tus amigos? Bien, ¿cuál es la cosa más flipante que has oído que hacen los hackers?

Conseguir acceso a un ordenador sin tener autorización para ello, ¿no?

Así que ¿te gustaría ser capaz de acceder y ejecutar un programa en casi cualquiera de los millones de ordenadores conectados a Internet? ¿Te gustaría acceder a todos esos ordenadores de la misma forma que lo hizo el hacker más notorio de la historia: ¡Robert Morris!?

El Gusano de Morris fue el que desmontó Internet en 1990. Desde luego, el fallo que aprovechó para llenar el 10% de los servidores de Internet con su virus de autoenvío ha sido arreglado ya en la mayoría de los servidores.

Pero esa misma característica de Internet tiene todavía montones de fallos y diversión por descubrir. De hecho, lo que vamos a aprender es el primer paso de varias de las maneras más comunes que los hackers usan para introducirse en las zonas privadas de ordenadores desprevenidos.

Pero no te voy a enseñar a meterte en esos sitios. Suena demasiado mal. Además, soy alérgica a la cárcel.

Así que lo que vas a aprender es legal e inofensivo, pero la mar de divertido. Nada de vendas en los ojos ni juramentos de sangre con los colegas que te vean hacer estas cosas.

Pero, para probar estas técnicas vas a necesitar un servicio de conexión que te permita hacer un telnet a un puerto específico de un servidor conectado a Internet. Netcom, por ejemplo, te dejará salirte con la tuya.

Sin embargo Compuserve, America Online y la mayoría del resto de proveedores de acceso a Internet son tan buenas niñeras que te evitarán que caigas en la tentación.

¡La mejor forma de hacer esto es con una CUENTA SHELL! ¡Hazte ya con una si no la tienes todavía!


Nota para principiantes nº1: Una cuenta shell es una cuenta de Internet que te deja ejecutar comandos Unix. Unix se parece mucho a DOS. Tienes un símbolo de sistema en tu pantalla y tecleas órdenes. Unix es el lenguaje de Internet. Si quieres ser un hacker en serio, tienes que aprender Unix.

Este hack es muy simple, incluso si nunca te habías conectado por telnet antes. De hecho, incluso aunque lo que vas a aprender te parezca de lo más osado, lo puedes dominar en media hora, o menos. Y sólo tienes que memorizar *dos* órdenes.

Para comprobar si tu proveedor de acceso a Internet te permite hacer este tipo de cosas, prueba con:

telnet callisto.unm.edu 25

Este es un ordenador de la Universidad de Nuevo México. Mi cuenta de Compuserve se cuelga cuando lo pruebo. Simplemente corta la sesión de telnet sin decir siquiera "tch, tch".

Pero, al menos hoy, Netcom todavía me permite usar esta orden. Y casi todas las cuentas shell ofrecidas por un proveedor de acceso a Internet cutre también lo harán. Muchas cuentas de la universidad también te dejarán salirte con la tuya.


Nota para principiantes nº2: Cómo conseguir cuentas shell.

Busca en las páginas amarillas. Mira en Internet. Llama y pídela.

Lo normal es que te digan "Claro que podemos". Pero la mayoría de las veces te están mintiendo. Creen que eres demasiado tonto como para saber lo que es una verdadera cuenta shell. O el tío mal pagado con el que hablas no tiene ni idea.

La mejor manera es pedir una cuenta temporal de invitado. Cualquier proveedor de acceso a Internet que merezca la pena te dejará una de prueba gratis. Con esto ya puedes probar el truco del día.


De acuerdo, supongamos que tienes una cuenta seria que te deja hacer telnet a algún sitio. Así que volvamos a probar:

telnet callisto.unm.edu 25

Si ya habías hecho algún telnet antes, lo más probable es que pusieras sólo el nombre del ordenador al que te querías conectar, sin añadir ningún número detrás. Esos números marcan la diferencia entre el ciudadano bueno y aburrido de Internet y alguien que se desliza por la resbaladiza pendiente que conduce al reino de los hackers.

Con ese 25 le estás diciendo al telnet que quieres conectarte a un puerto específico de tu víctima...digo, ordenador.


Nota para principiantes nº3: Puertos

Un puerto de un servidor es un sitio por el que la información entra y sale. En el ordenador de tu casa, ejemplos de puertos podrían ser: el monitor, que envía información hacia fuera; el teclado y el ratón, que envían información hacia dentro, y el módem, que transmite información en ambos sentidos.

Pero un servidor conectado a Internet como callisto.unm.edu tiene muchos más puertos que el típico ordenador casero. Estos puertos se identifican mediante números. Estos puertos ya no son puertos físicos, como un teclado o un puerto serie RS232 (para un módem): son puertos virtuales (software).


Hay mucha diversión en el puerto 25. Muchísima diversión. Mira, cuando te conectes al puerto 25 de un ordenador obtendrás a veces, un mensaje diciendo "acceso denegado" (cuando te encuentres con un cortafuegos); pero muchas más veces te encontrarás con algo como esto:

Trying 129.24.96.10...
Connected to callisto.unm.edu.
Escape character is '^]'.
220 callisto.unm.edu Smail3.1.28.1 #41 ready at Fri, 12 Jul 96 12:17 MDT

¡Eh, mira esto! No nos ha pedido que nos identifiquemos. Simplemente dice... ¡listo! Fíjate que está ejecutando Smail3.1.28.1, un programa empleado para componer y enviar correo electrónico.

¡Oh, Dios mío! ¿Qué hacemos ahora? Bien, si de verdad quieres parecer sofisticado, lo siguiente que tienes que hacer es pedirle a callisto.unm.edu que te diga las órdenes que puedes usar. Por norma general, cuando entras en un ordenador ajeno, "help", "?" o "man" te dará información. En este caso yo tecleo:

help

...y me aparece esto:

250 The following SMTP commands are recognized:
250
250 HELO hostname startup and give your hostname
250 MAIL FROM:<sender address> start transaction from sender
250 RCPT TO:<recipient address> name recipient for message
250 VRFY <address> verify deliverability of address
250 EXPN <address> expand mailing list address
250 DATA start text of mail message
250 RSET reset state, drop transaction
250 NOOP do nothing
250 DEBUG [level] set debugging level, default 1
250 HELP produce this help message
250 QUIT close SMTP connection
250
250 The normal sequence of events in sending a message is to state the
250 sender mail with a MAIL FROM command, give the recipients with
250 as many RCPT TO commands as are required (one address per command)
250 and then to specify the mail message text after the DATA command.
250 Multiple messages may be specified. End the last one with a QUIT.

Es decir:

250 Se reconocen las siguientes órdenes:
250
250 HELO nombre comenzar y dar el nombre de tu ordenador
250 MAIL FROM:<dirección> comenzar transacción desde el remitente
250 RCPT TO:<dirección> indicar destino para el mensaje
250 VRFY <dirección> verificar la disponibilidad del destino
250 EXPN <dirección> expandir las direcciones de las listas de correo
250 DATA comenzar a escribir el mensaje
250 RSET reiniciar conexión, abandonar la transacción
250 NOOP no hacer nada
250 DEBUG [nivel] especificar el nivel de depuración
250 HELP produce este mensaje de ayuda
250 CLOSE cerrar la conexión SMTP
250 La secuencia normal de eventos cuando se manda un mensaje es:
250 especificar la dirección del remitente con MAIL FROM,
250 indicar los destinos con tantas órdenes RCPT TO como sean necesarias
250 (una dirección en cada una), y luego especificar el texto del mensaje
250 con DATA. Se pueden mandar varios mensajes.
250 El último se indica con un QUIT.

Conseguir esta lista queda la mar de bien. Te hace parecer realmente de los buenos, porque sabes cómo hacer que la máquina te diga cómo usarla. Y eso significa que lo único que tienes que memorizar es "telnet <ordenador>" y "help". El resto puedes mirarlo mientras estés conectado. Así que, incluso si tu memoria es tan mala como la mía, puedes aprender y recordar este truco en sólo media hora. Rayos, puede que en medio minuto.

Bien, ahora...¿qué hacemos? Bien, ya te lo imaginabas, este es un programa de correo muy, pero que muy primitivo. ¿Y sabes por qué nos ha dejado entrar sin identificarnos? ¿Sabías que éste era el punto vulnerable que permitió a Robert Morris hacer saltar Internet?

El puerto 25 envía correo de un nodo al siguiente a través de Internet. Automáticamente acepta todo el correo entrante y, si el mensaje no pertenece a alguien con la dirección de ese ordenador, lo manda al siguiente ordenador de la red, haciendo que llegue al final hasta el ordenador de la persona indicada.

Algunas veces el correo va directamente del remitente al destino, pero si mandas un correo electrónico a alguien que esté bastante lejos, el mensaje puede atravesar varios ordenadores.

Hay millones de ordenadores en Internet que redirigen correo. ¡Y puedes tener acceso a casi todos ellos sin contraseña! Mejor aún, como pronto aprenderás, es fácil conseguir la dirección de Internet de todos esos ordenadores.

Algunos de estos ordenadores están muy bien protegidos, por lo que es difícil pasárselo realmente bien con ellos. Pero otros no tanto. Una de las diversiones del hacking es explorar ordenadores buscando aquellos que nos vayan bien.

Bien, ahora ya estamos en el país del Gusano de Morris...¿qué podemos hacer?


Nota para genios malignos: Morris empleó el comando "DEBUG". No pruebes esto en casa. Hoy en día, si encuentras un programa que use el puerto 25 y que acepte el comando DEBUG, es una trampa. Fíate de mí.