{"id":818,"date":"2026-04-22T22:16:25","date_gmt":"2026-04-22T22:16:25","guid":{"rendered":"https:\/\/hackcuba.net\/?p=818"},"modified":"2026-04-22T22:16:50","modified_gmt":"2026-04-22T22:16:50","slug":"anonymousmail","status":"publish","type":"post","link":"https:\/\/hackcuba.net\/?p=818","title":{"rendered":"AnonymousMail"},"content":{"rendered":"\n<p>Hoy les presento un t\u00edtulo de solo 4 letras: SMTP, o si prefieres puedes llamarlo Simple Mail Transference Protocol. SMTP no es m\u00e1s que uno de los tantos protocolos que integran el inmenso TCP\/IP y es espec\u00edficamente el que nos permite enviar correos a nuestros conocidos. Para la introducci\u00f3n de este modesto art\u00edculo ten\u00eda pensado poner algo de la historia del SMTP, en que a\u00f1o surgi\u00f3 etc etc, pero la verdad no tengo tiempo ahora de copiar\/pegar informaci\u00f3n de Wikipedia, que adem\u00e1s, creo que est\u00e1 accesible para todos los lectores de esta revista. En vez de eso pienso ofrecerles informaci\u00f3n mucho m\u00e1s valiosa, y si al final del art\u00edculo logro ense\u00f1arles su funcionamiento y mejor uso, entonces habr\u00e9 logrado mi objetivo y me dar\u00e9 por complacido.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Empecemos con lo b\u00e1sico y con lo que probablemente ya conoces. SMTP o Simple Mail Transference Protocol es el protocolo que nos permite, desde cualquier parte del mundo, conectarnos a un servidor y enviar informaci\u00f3n (un correo) a otra persona que, adem\u00e1s, puede encontrarse en cualquier otra parte del planeta. A diario nosotros somos parte de este escenario: frecuentemente revisamos nuestro correo y respondemos a nuestros amigos. Nada m\u00e1s normal que sentarse al PC, conectar, abrir Outlook, leer los nuevos correos y responder.<\/p>\n\n\n\n<p>[\u00bfC\u00f3mo funciona?] SMTP funciona como cualquier protocolo cliente\/servidor. Un programa cliente (Outlook por ejemplo) conecta con nuestro servidor SMTP (smtp.sld.cu, por mencionar alguno) que se har\u00e1 cargo de satisfacer las peticiones del cliente, siempre y cuando estas sean hechas de la manera correcta.<br>\u00bfQue quiere decir hacer las peticiones de la manera correcta? Pues significa que existe un est\u00e1ndar, una forma definida, o sea, un protocolo a seguir en la manera en que el cliente y el servidor intercambian peticiones y respuestas. Como cualquier protocolo de comunicaci\u00f3n, debe existir un acuerdo en la forma en que se transmite la informaci\u00f3n, de nada sirve hablar con una persona extranjera si no conoce tu idioma. Entonces queda definido, seg\u00fan el protocolo SMTP que la comunicaci\u00f3n cliente\/servidor se har\u00e1 en forma de comandos y c\u00f3digos de respuesta, de esta manera se podr\u00e1 lograr la sincronizaci\u00f3n necesaria para que el cliente pueda especificar al servidor las particularidades del mensaje que desea enviar.<\/p>\n\n\n\n<p>[La pr\u00e1ctica] Con tanta teor\u00eda puede que alguien se pierda o aburra; la experimentaci\u00f3n es la madre de todo conocimiento, as\u00ed que, experimentemos. Asumiendo que la mayor\u00eda de los lectores de esta revista son usuarios de Infomed decid\u00ed usar su servidor SMTP para realizar las pruebas.<br>Para visualizar todo lo que hasta ahora he dicho abre una consola del sistema y estando conectado a Infomed teclea en ella \u00abtelnet smtp.sld.cu 25\u00bb. Como podr\u00e1s imaginarte con ello estar\u00e1s conectando al servidor smtp.sld.cu por su puerto 25, que adem\u00e1s es el puerto definido por defecto para el servicio SMTP. Una vez conectado podr\u00e1s leer un mensaje como el siguiente:<\/p>\n\n\n\n<p><code>220 smtp.sld.cu ESMTP ready<\/code><\/p>\n\n\n\n<p>Pues felicidades, esto quiere decir que haz logrado conectar con tu servidor SMTP y este est\u00e1 dispuesto a atenderte. Cualquier persona que lea este mensaje es capaz de captar esa idea, principalmente por la parte que dice \u00abESMTP ready\u00bb, pero \u00bfrecuerdas lo que dije antes de comandos\/c\u00f3digos de respuesta? pues es esta la interfaz que manejan los programas clientes y no es precisamente por la frase \u00abESMTP ready\u00bb por la que un programa cliente sabe que el servidor est\u00e1 listo para atenderlo. Si eres observador ver\u00e1s que los tres primeros caracteres de la cadena representan un n\u00famero (220), este es el c\u00f3digo de respuesta al que me refer\u00eda y es a partir del cual el servidor le hace entender al cliente que todo est\u00e1 bien y est\u00e1 listo para recibir o que en ese momento se encuentra temporalmente indisponible.<br>Una vez llegados aqu\u00ed tenemos a nuestra disposici\u00f3n una serie de comandos de bajo nivel con los cuales podremos darle ordenes al servidor respecto al mensaje que queremos enviar.<br>Ahora teclea en la consola<\/p>\n\n\n\n<p><code>HELO prueba<\/code><\/p>\n\n\n\n<p><code>con lo que recibir\u00e1s la siguiente respuesta:<\/code><\/p>\n\n\n\n<p><code>250 cabrera.red.sld.cu Hello prueba [201.220.205.229]<\/code><\/p>\n\n\n\n<p>Esto ha sido un peque\u00f1o saludo entre el cliente y el servidor.<br>Seg\u00fan el RTF-821 este comando es usado para identificar el sender-SMTP del receiver-SMTP. El campo argumento contiene el hostname del sender-SMTP. Como solo estamos haciendo una prueba le pasamos cualquier cosa como argumento. Este comando y su respuesta indican que tanto el cliente como el servidor est\u00e1n listos para comenzar y a\u00fan no hay transacci\u00f3n alguna en progreso. Ya habr\u00e1s notado que el c\u00f3digo de respuesta fue 250, normalmente 250 ser\u00e1 la respuesta que siempre queremos ver, el que indica que todo est\u00e1 bien hasta el momento.<br>El siguiente comando que teclearas ser\u00e1<\/p>\n\n\n\n<p><code>MAIL FROM:&lt;pepe@infomed.sld.cu&gt;<\/code><\/p>\n\n\n\n<p>teniendo en cuenta que mi usuario de infomed es \u00abpepe\u00bb se entiende perfectamente que con esto estoy definiendo que \u00abpepe@infomed.sld.cu\u00bb ser\u00e1 el buz\u00f3n desde donde se env\u00eda el mensaje. La respuesta normal deber\u00e1 ser un simple<\/p>\n\n\n\n<p><code>250 OK<\/code><\/p>\n\n\n\n<p>C\u00f3digo 250 indica que todo marcha bien. A continuaci\u00f3n teclea:<\/p>\n\n\n\n<p><code>RCPT TO:&lt;antonio@infomed.sld.cu&gt;<\/code><\/p>\n\n\n\n<p>para definir el correo a donde ser\u00e1 enviado el mensaje y la respuesta ser\u00e1<\/p>\n\n\n\n<p><code>250 Accepted<\/code><\/p>\n\n\n\n<p>Hasta aqu\u00ed hemos hecho un gran avance, hemos creado una conexi\u00f3n a nuestro servidor SMTP y a nivel de comandos hemos iniciado comunicaciones y le hemos indicado que queremos enviar un correo desde pepe@infomed.sld.cu dirigido a antonio@infomed.sld.cu. Solo nos queda definir el mensaje como tal. Volviendo a la consola nos disponemos a teclear el pr\u00f3ximo comando que ser\u00e1<\/p>\n\n\n\n<p><code>DATA<\/code><\/p>\n\n\n\n<p>la respuesta del servidor esta vez ser\u00e1<\/p>\n\n\n\n<p><code>354 Enter message, ending with \".\" on a line by itself<\/code><\/p>\n\n\n\n<p>El c\u00f3digo de respuesta ha cambiado, esta vez no hemos visto nuestro querido 250, pero que no cunda el p\u00e1nico, 354 no es un c\u00f3digo de error, este n\u00famero nos indica que el servidor est\u00e1 listo para tomar notas del mensaje que se quiere enviar. A continuaci\u00f3n presiona enter dos veces y escribe el texto que desees, est\u00e1s escribiendo el cuerpo del mensaje. Cuando termines de escribir el mensaje, para indicarle al servidor que terminaste debes presionar enter PUNTO enter. Un punto (.) s\u00f3lo en una l\u00ednea indica que se ha alcanzado el final del mensaje. Una vez tecleado el punto te aparecer\u00e1 una respuesta como la siguiente<\/p>\n\n\n\n<p><code>250 OK id=XXXXXX-XXXXXX-XX<\/code><\/p>\n\n\n\n<p>Listo. El mensaje ha sido enviado. Ya no tienes nada m\u00e1s que hacer en el servidor as\u00ed que mejor te desconectas con el comando<\/p>\n\n\n\n<p><code>QUIT<\/code><\/p>\n\n\n\n<p>respuesta:<\/p>\n\n\n\n<p><code>221 cabrera.red.sld.cu closing connection<\/code><br><br>Pues la tarea est\u00e1 terminada, hemos enviado un correo usando los comandos de bajo nivel del protocolo SMTP. En este ejemplo solo hemos visto los comandos y c\u00f3digos de respuesta m\u00e1s elementales, a continuaci\u00f3n muestro una lista de ambos seg\u00fan el RTF-821.<br><br>Si quieres saber los comandos de los que dispone tu servidor SMTP y para que sirven puedes usar el alabado HELP. A continuaci\u00f3n una lista:<\/p>\n\n\n\n<p><code>HELLO (HELO)<br>MAIL (MAIL)<br>RECIPIENT (RCPT)<br>DATA (DATA)<br>SEND (SEND)<br>SEND OR MAIL (SOML)<br>SEND AND MAIL (SAML)<br>RESET (RSET)<br>VERIFY (VRFY)<br>EXPAND (EXPN)<br>HELP (HELP)<br>NOOP (NOOP)<br>QUIT (QUIT)<br>TURN (TURN)<\/code><\/p>\n\n\n\n<p>Estos son los c\u00f3digos de respuesta con su significado:<\/p>\n\n\n\n<p><code>500 Error de sintaxis, comando no reconocido<br>501 Error de sintaxis en argumentos<br>502 Comando no implementado<br>503 Secuencia de comandos err\u00f3nea<br>504 Par\u00e1metro no implementado<br>211 Respuesta de ayuda<br>214 Mensaje de ayuda<br>220 &lt;dominio&gt; Servicio listo<br>221 &lt;dominio&gt; Servicio cerrando canal de transmisi\u00f3n<br>421 &lt;dominio&gt; Servicio no disponible<br>250 Acci\u00f3n completada, todo OK<br>251 Usuario no local<br>450 mailbox indisponible, no se ha podido proceder<br>550 mailbox indisponible, no se ha podido proceder<br>451 Acci\u00f3n abortada<br>551 Usuario no local<br>452 Memoria del sistema insuficiente<br>552 Exceso de memoria reservada<br>553 Nombre del mailbox no permitido<br>354 Comienza el mensaje; termina con &lt;CRLF&gt;.&lt;CRLF&gt;<br>554 Transacci\u00f3n fallida<\/code><\/p>\n\n\n\n<p>A estas alturas del art\u00edculo se supone que eres una persona con el privilegio de conocer el funcionamiento a bajo nivel del protocolo SMTP. \u00bfY en qu\u00e9 me beneficia dicho conocimiento? Pues para empezar ya tienes las bases para escribir tu propio cliente SMTP. Adem\u00e1s de eso&#8230; \u00bfRecuerdas el comando MAIL FROM:&lt;pepe@infomed.sld.cu&gt;? Pues claro, es el comando que define la direcci\u00f3n desde d\u00f3nde se env\u00eda el correo. \u00bfQu\u00e9 crees que pasar\u00eda si en vez de MAIL FROM:&lt;pepe@infomed.sld.cu&gt; escribi\u00e9ramos MAIL FROM:&lt;webmaster@infomed.sld.cu&gt;? \u00a1Exactamente!, el mensaje llegar\u00eda a su destino como si hubiera sido enviado desde webmaster@infomed.sld.cu.<br><\/p>\n\n\n\n<p>[\u00bfQu\u00e9 tanto puedo explotar este conocimiento?] Depende de para qu\u00e9 lo uses. La verdad, es muy \u00fatil para enviar correos an\u00f3nimos, pero ni se te ocurra usarlo con fines ilegales porque existen formas de conocer el origen verdadero del mensaje.<\/p>\n\n\n\n<p>[Conociendo el verdadero origen del mensaje.] Una persona que carezca de los conocimientos aqu\u00ed expuestos se conforma normalmente con leer el campo \u00abFrom\u00bb de su cliente de correo para identificar el origen de lo que recibe.<br>Casualmente la edici\u00f3n 28 de este bolet\u00edn cuando me llego el d\u00eda 1 de octubre fue desde la direcci\u00f3n de correo Blackhat@x.cu (me imagino que a ustedes tambi\u00e9n) cosa totalmente nueva porque siempre me llega desde el dominio gmail.com. Sabiendo que x.cu no es un dominio real es evidente que quien envi\u00f3 la revista lo hizo desde un cliente que le permit\u00eda poner la direcci\u00f3n de origen que quisiera. Normalmente los clientes de correo nos permiten una opci\u00f3n para visualizar los detalles de la cabecera del mensaje. Aqu\u00ed est\u00e1n los del mensaje en cuesti\u00f3n.<\/p>\n\n\n\n<p><code>-----------------------------------------------------------------------------<br>X-Apparently-To: hoax_ws@yahoo.es via 217.146.177.241; Mon, 01 Oct 2007 00:48:39 -0700<br>X-Originating-IP: [200.55.156.189]<br>Authentication-Results: mta431.mail.mud.yahoo.com from=x.cu; domainkeys=neutral (no sig)<br>Received: from 200.55.156.189 (EHLO mx.rimed.cu) (200.55.156.189)<br>by mta431.mail.mud.yahoo.com with SMTP; Sun, 30 Sep 2007 20:16:48 -0700<br>Received: from server-2.ipihlg.rimed.cu (unknown [192.168.157.226])<br>by mx.rimed.cu (Postfix) with ESMTP id 6FA693524B0;<br>Sun, 30 Sep 2007 21:54:38 -0400 (CDT)<br>Received: from 10.0.0.4 (server-4.ipihlg.rimed.cu [10.0.0.4])<br>(Authenticated sender: rnapoles)<br>by server-2.ipihlg.rimed.cu (Postfix) with SMTP id 4E1151F11CB;<br>Sun, 30 Sep 2007 19:17:53 -0400 (CDT)<br>Received: from phpmailer ([10.0.0.3])<br>by 10.0.0.4 with HTTP (phpmailer);<br>Sun, 30 Sep 2007 23:11:58 -0500<br>Date: Sun, 30 Sep 2007 23:11:58 -0500<br>To: undisclosed-recipients:;<br>From: Blackhat4all@x.cu<br>Subject: BlackHat<\/code><br><code>Message-ID: &lt;652edaf27edbbf25ae3173eb00c3b50a@10.0.0.4&gt;<br>X-Priority: 3<br>X-Mailer: phpmailer [version 1.65]<br>MIME-Version: 1.0<br>Content-Type: multipart\/mixed;<br>boundary=\"b1_652edaf27edbbf25ae3173eb00c3b50a\"<br>------------------------------------------------------------------------------<\/code><br><br>Sin duda alguna las l\u00edneas m\u00e1s informativas son las siguientes:<\/p>\n\n\n\n<p><code>Received: from 10.0.0.4 (server-4.ipihlg.rimed.cu [10.0.0.4])<br>(Authenticated sender: rnapoles)<\/code><\/p>\n\n\n\n<p>Seg\u00fan la primera l\u00ednea, \u00abserver-4.ipihlg.rimed.cu\u00bb ha sido el verdadero servidor desde el cual ha sido enviado el mensaje y seg\u00fan la segunda l\u00ednea \u00abrnapoles\u00bb es el usuario en dicho servidor que lo envi\u00f3. Con lo cu\u00e1l me atrevo a afirmar, sin temor a la pena de equivocarme que mi buen amigo Reinier Napoles (tambi\u00e9n colaborador de esta revista) es el actual responsable de la ardua tarea de enviar las ediciones a la creciente lista de subscriptores, tarea ya no tan ardua considerando que parece estar usando un script PHP para automatizar el env\u00edo (\u00abby 10.0.0.4 with HTTP(phpmailer);\u00bb).<\/p>\n\n\n\n<p>[Concluyendo.] Para finalizar, y porque dicen que un c\u00f3digo vale m\u00e1s que mil im\u00e1genes, he desarrollado un cliente SMTP en C++ que pone en pr\u00e1ctica todo lo aqu\u00ed expuesto, adem\u00e1s de brindar la posibilidad de falsear la direcci\u00f3n origen de los correos. Tanto la aplicaci\u00f3n como los c\u00f3digos fuentes completos estan en foro <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy les presento un t\u00edtulo de solo 4 letras: SMTP, o si prefieres puedes llamarlo Simple Mail Transference<\/p>\n","protected":false},"author":2,"featured_media":819,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59,18,36],"tags":[88,98,58,38],"class_list":["post-818","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigos","category-programacion","category-proyecto-blackhat","tag-codigos","tag-email","tag-programacion","tag-proyecto-blackhat"],"_links":{"self":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/818","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=818"}],"version-history":[{"count":1,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/818\/revisions"}],"predecessor-version":[{"id":820,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/818\/revisions\/820"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/media\/819"}],"wp:attachment":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}