El correo electrónico (e-mail) es omnipresente. La comunicación regular se lleva a cabo a través del correo, el spam se envía por correo, los ataques de phishing se realizan por correo y los estafadores envían cartas.
Además de la información que se muestra (el texto de la carta, los campos “Para”/”To” y “De” /”From”), los correos electrónicos también contienen encabezados con información técnica y meta información. Los correos electrónicos pueden pasar por varios nodos de correo antes de llegar al destinatario. Como regla general, cada nodo de correo agrega sus propios encabezados, por lo que el análisis del correo puede proporcionar información interesante, hasta llegar a la dirección IP del remitente.
- Cómo Averiguar la IP por Correo Electrónico
- Dirección de Correo Electrónico Falsa del Remitente
- Estructura del Correo Electrónico
- Encabezados de Correo Electrónico
- "Received" en Correo Electrónico
- Encontrar la Dirección IP de Origen de Correos Electrónicos Fraudulentos
- Cómo Extraer Archivos de Correos Electrónicos
- Descripción de los Encabezados del Correo Electrónico
- Servicio en Línea para el Análisis de Correos Electrónicos
- Conclusión
Cómo Averiguar la IP por Correo Electrónico
De hecho, cada nodo de correo registra la dirección IP de donde proviene la carta. Es decir, ¡también se registra la dirección IP del remitente! Esto funciona bien si se utilizan clientes de correo de escritorio (por ejemplo, Thunderbird, The Bat!).
Pero ahora muchos usuarios prefieren la interfaz web para acceder al correo (por ejemplo, mail.google.com, mail.yahoo.com, mail.yandex.ru, etc.). Al usar la interfaz web, el navegador web pasa los datos (por ejemplo, una carta enviada) al programa de correo, y este programa envía la carta al destinatario (o al host de correo intermedio), y el destinatario ve la dirección IP del servidor (por ejemplo, el servidor de mail.google.com); en este caso, la dirección IP real del remitente no se incluye en los encabezados. La mala noticia es que las interfaces web se han vuelto bastante populares.
La buena noticia es que los atacantes (spammers y estafadores) no siempre utilizan la interfaz web: necesitan enviar muchas cartas, y la interfaz web es simplemente inconveniente en este caso. Otra buena noticia es que, dependiendo de la estructura de la red del remitente, incluso la IP de la red local puede aparecer en los encabezados.
Ejemplo:
Un correo puede incluir el nombre del ordenador:
Información sobre el cliente de correo del remitente:
Dirección de Correo Electrónico Falsa del Remitente
Es importante saber que se puede especificar cualquier cosa como la dirección del remitente, absolutamente cualquier cosa. Incluyendo tu propia dirección de correo electrónico. Es decir, la dirección de correo electrónico del remitente puede falsificarse fácilmente. Algunos ataques de phishing se basan en esto.
Falsificación de la dirección IP del remitente
La dirección IP y el nombre de host del nodo de correo anterior son registrados por cada nodo sucesivo. Por lo tanto, si confías en el nodo de correo (por ejemplo, la carta ya ha sido entregada al servidor de Google), entonces la información sobre la IP del nodo anterior puede considerarse confiable. He visto correos electrónicos de estafadores (uno de los cuales manipularemos más adelante) que pasaron por uno o dos hosts no confiables antes de ser entregados a un host confiable. Por ejemplo:
Nodo no confiable 1 → Nodo no confiable 2 → Nodo confiable 1 → Nodo confiable 2
La información sobre cada nodo está contenida en el encabezado. En este caso, solo se puede confiar en la información sobre la IP del host designado como “Nodo no confiable 2“. La información sobre la dirección IP del “Nodo no confiable 1” también está en los encabezados, pero si es verdadera, y en general, si hubo servidores de reenvío de correo al segundo host no confiable, ya no es posible decirlo. Por lo tanto, los que están marcados en amarillo, podemos considerar que sus IPs son confiables. Todos los demás datos sobre los que están antes en la cadena pueden estar falsificados (forjados).
Estructura del Correo Electrónico
La estructura del correo electrónico no es rígida y son posibles variaciones. En cualquier caso, los encabezados vienen primero. En el caso más simple, un correo electrónico consta de encabezados y un mensaje de texto simple:
Por cierto, como en el caso del protocolo HTTP, no se deben confundir los encabezados con la etiqueta en el código HTML o con los encabezados en la página (por ejemplo, decorados con etiquetas <h1>, <h2>, etc.). En este caso, los encabezados son metainformación, que es parte del protocolo (Protocolo Simple de Transferencia de Correo (SMTP)).
Las cartas modernas suelen tener una estructura más compleja. Los encabezados se utilizan para separar partes de una carta:
Content-Type: ...; boundary="..."
El valor de boundary es una cadena única que actúa como delimitador para las partes de la carta. Este separador generalmente va seguido de encabezados:
Content-Type: ...; charset=...
Content-Transfer-Encoding: ...
Estos establecen:
- tipo de contenido
- codificación
- codificación de transmisión
El Content-Type: …; boundary="…"
se puede usar más de una vez estableciendo diferentes delimitadores. Resulta algo parecido a elementos estructurales anidados.
Aquellas partes que están separadas por una cadena delimitadora única son a veces texto simple. A veces es código HTML, que en realidad también es texto. Los archivos (por ejemplo, un documento, una foto) pueden adjuntarse a la carta. En este caso, se utiliza una codificación que permite traducir datos binarios a texto. Más adelante te mostraré cómo extraer archivos de un correo electrónico.
El texto plano o el código HTML también se pueden traducir a codificación: todo depende de quién esté enviando y de su cliente de correo electrónico.
Dado que incluso los archivos binarios (si están adjuntos a la carta) se convierten en una forma de “texto”, el archivo fuente del mensaje electrónico es un archivo de texto que se puede ver en cualquier editor de texto.
Encabezados de Correo Electrónico
Cada mensaje de correo electrónico debe contener encabezados. La dirección del destinatario y del remitente están registradas en los encabezados. Dependiendo del programa de correo, una carta puede contener un conjunto diferente de encabezados. Algunos están necesariamente presentes en las cartas, otros se usan muy raramente.
Generalmente, los clientes de correo electrónico no muestran los encabezados, para verlos, por ejemplo, en Gmail, debes seleccionar el elemento de menú “Mostrar original“:
También puedes hacer clic en el botón “Descargar mensaje” para obtener el correo electrónico original en el disco duro de tu computadora.
En Thunderbird, selecciona la carta que te interesa, haz clic en el botón “Más” (ubicado en el área que separa la lista de cartas y el contenido de la carta seleccionada), y luego selecciona “Ver fuente“.
Es importante saber que casi todo en los encabezados puede ser falso, es decir, todos los datos pueden ser ficticios, excepto la línea Received:
, que es agregada por tu computadora o por computadoras en las que confías absolutamente.
Algunos encabezados populares de correo electrónico se discutirán en detalle al final. Ahora nos detendremos en el encabezado Received
en detalle:
“Received” en Correo Electrónico
Ya se ha dicho que solo debes confiar en los registros que son agregados por nodos confiables, esto se aplica específicamente al encabezado Received. Es decir, cada vez debes decidir si este registro merece confianza o no.
En la parte superior del correo electrónico están los encabezados más “frescos”, cuanto más abajo esté el encabezado Received, más “antiguo” es, es decir, fue agregado antes.
La estructura típica de este encabezado es:
Received: from ... by ... for ...
Es decir, al principio, después de “from“, está la dirección IP y el nombre de host de donde se recibió el mensaje; luego, después de “by“, está la información sobre quién recibió el mensaje; y después de “for“, información sobre la dirección de correo electrónico a la cual está destinado finalmente este mensaje.
Ejemplo de encabezado completo:
Received: from ns39859.ip-91-121-26.eu (prestashopitaliano.it [10.10.10.1]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.example.es (Postfix) with ESMTPS id 28E667A00BD for al@mi-al.es; Tue, 8 Jan 2019 01:26:51 +0100 (CET)
Se deduce que un mensaje fue recibido del host ns39859.ip-91-121-26.eu. Entre paréntesis está el nombre del host (obtenido por resolución inversa de la dirección IP, así como la dirección IP en corchetes). Este mensaje fue recibido por el host mail.example.es que ejecuta el programa Postfix. Finalmente, este mensaje está destinado a la dirección al@mi-al.es.
Encontrar la Dirección IP de Origen de Correos Electrónicos Fraudulentos
Todos tenemos correos en nuestra carpeta de SPAM con los que podemos practicar. Decidí elegir el más interesante, una carta con el asunto:
Your system has been hacked.
(Tu sistema ha sido hackeado.)
La esencia de la carta es que fui hackeado y me robaron todas mis cosas. No leí mucho, pero según esta carta, definitivamente necesito enviar Bitcoins a la dirección proporcionada. Oh sí, lo divertido es que, para demostrar que realmente fui hackeado, esta carta “fue enviada desde mi dirección”…
Sería muy gracioso si, según las transacciones recientes (puedes consultar la dirección aquí), casi XXX dólares no hubieran llegado a esta billetera… Y hay muchas direcciones de billeteras diferentes en estos correos. Un usuario informó que le enviaron su contraseña de correo y de router en un correo. Algunas personas toman estas amenazas (de enviar datos capturados dañinos) en serio.
Debemos tener en cuenta de inmediato que las direcciones IP de las computadoras hackeadas, dispositivos y servidores fueron casi con seguridad utilizadas. Por ejemplo, hay bastantes reseñas aquí de quienes recibieron esta carta con la misma dirección de billetera. Algunos citan información de los encabezados: es diferente en todas partes. También es diferente para mí. Muchos encontraron la inscripción “Detective” con números en los encabezados; aparentemente, esta es una característica del software utilizado:
- Detective26583 (unknown ), loft9675.serverprofi24.eu
- Detective82182 IP address 113.160.165.88
- Detective51686, via mail.inspectraperu.com
- from 171.224.231.144 by mail.uos.net.ua with esmtpsa
- Received: from Detective54508 ()
- (mail.suspicious.org ) Detective70638 () (Auth. sender: tidepool)
- Received: from Detective31682 (unknown )
- Detective06782 () by smtpcmd06.ad.aruba.it
- X-Source-Sender: (Detective71582) :37299
- X-Source-Auth: mark@nmclippers.com
Estamos aprendiendo a analizar los encabezados; en este caso, las IP encontradas no pertenecen al estafador, eso es casi seguro. Mira los encabezados del correo:
Como recordamos, los primeros encabezados están en la parte inferior; el encabezado más bajo es:
Received: from [192.168.0.3] (helo=Detective20033) by ns39859.ip-91-121-26.eu for contact@esgeeks.com
Es decir, inicialmente la carta fue enviada desde la dirección IP 192.168.0.3; no es sorprendente, revisé ese router y no hay opción en el menú para cambiar la contraseña de fábrica. Además, el router admite VPN, por lo que podría haberse usado como un nodo intermedio. El router podría haber sido hackeado desde Internet, o la contraseña Wi-Fi del router podría haber sido comprometida. Alguien se está conectando constantemente al router; guardé el registro de conexiones aproximadamente en el momento en que se envió la carta.
Encabezado siguiente:
Received: from ns39859.ip-91-121-26.eu (prestashopitaliano.it [10.10.10.1]) (using ILSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate
requested) by sendmai18.hostland.ru (Postfix) with ESMTPS id 28E667A00BD for contact@esgeeks.com; Tue,
02 Sep 2024 01:26:51 +0300 (MSK)
Limpiemos lo innecesario:
Received: from ns39859.ip-91-121-26.eu (prestashopitaliano.it [10.10.10.1]) by sendmail8.hostland.ru (Postfix) for <contact@esgeeks.com>
Aquí, sendmail8.hostland.ru es el servidor en el que confío. Así que esta línea “Received:” puede considerarse válida. Puedes estar seguro de que este correo realmente pasó por el nodo de correo ns39859.ip-91-121-26.eu con la dirección IP 10.10.10.1. Volviendo a la primera línea con el encabezado “Received:”, puede ser real o falsificada (falsa).
Encabezados adicionales:
Received: from sendmai18.hostland.ru (sendmai18.hostland.ru. [172.16.0.2]›
by mx.google.com with ESMTPS id 9-v6si510018891jo.136.2019.01.07.14.26.50
for ‹proghoster@gmail.com>
(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);|
Mon, 02 Sep 2024 14:26:50 -0800 (PST)
Luego:
X-Received: by 2002:a2e:58b:: with SMTP id 133-v6mr62350121jf.127.1546900010472;
Mon, 02 Sep 2024 14:26:50 -0800 (PST)
Finalmente, el correo es entregado:
Received: by 2002:a19:6750:0:0:0:0:0 with SMTP id e16csp41717581fj;
Mon, 02 Sep 2024 14:26:50 -0800 (PST)
Pero solo muestran el camino del correo a través de nodos de correo confiables; es decir, no hay nada interesante allí.
Conclusiones
La fuente de la carta fue la dirección IP 192.168.0.3 o el host ns39859.ip-91-121-26.eu (10.10.10.1). Aunque la carta estaba destinada a una dirección de correo en el dominio *@contact@esgeeks.com, finalmente llegó al servidor de correo de Gmail (mx.google.com), y para la dirección proghoster@gmail.com, es decir, el correo fue reenviado.
Cómo Extraer Archivos de Correos Electrónicos
A veces es simplemente imposible descargar un archivo adjunto a un correo, por ejemplo, un archivo reconocido por Gmail como malicioso; simplemente no permite descargarlo desde la interfaz web. Para obtener archivos en tales casos (por ejemplo, para análisis), puedes descargar el correo completo con encabezados y extraer los archivos adjuntos. Por defecto, cuando se muestran los encabezados, Gmail trunca correos largos, por lo que para extraer archivos, haz clic en el enlace “Descargar original”:
La forma más sencilla de extraer los archivos y ver el correo es guardarlo con la extensión .eml
y abrirlo con cualquier cliente de correo (por ejemplo, Thunderbird, The Bat!). Puedes explorar y extraer archivos adjuntos manualmente. Un ejemplo de encabezados que describen un archivo adjunto:
Content-Type: text/plain; name="Lista-webs.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Lista-webs.txt"
El nombre del archivo adjunto es “Lista-webs
”, está codificado en base64. Para decodificar base64, puedes usar la utilidad base64 de Linux. Para ello, guarda las cadenas que codifican el archivo adjunto en un archivo separado, por ejemplo, llamado ARCHIVO_DE_ADJUNTO. Luego ejecuta un comando como:
echo cat ARCHIVO_DE_ADJUNTO | base64 --decode > ARCHIVO_EXTRAIDO
Pero la codificación base64 no siempre se usa y el método descrito requiere análisis y acciones manuales, por lo que es más fácil usar el programa mu. Para instalar mu en Kali Linux, Debian, Ubuntu, Linux Mint y sus derivados:
sudo apt install mu
Para instalar mu en Arch Linux, BlackArch, Manjaro y sus derivados:
sudo pacman -S mu
Para mostrar los archivos adjuntos del correo sin extraerlos, ejecuta un comando como este:
mu extract LETTER
En el que, en lugar de LETTER, especifica la ruta al archivo de correo. Por ejemplo, si el archivo se llama original_msg.txt, entonces el comando es:
mu extract original_msg.txt
Salida de muestra:
MIME-parts in this message:
1 <none> text/plain [< none >] (0,4 kB)
2 <none> text/html [< none >] (0,6 kB)
3 Auditorias fiscales 2024.docx application/msword [attach] (75,0 kB
Las líneas con muestran los archivos adjuntos del correo electrónico. En este caso, el archivo se llama “Auditorias fiscales 2024.docx”, su tipo es application/msword, es decir, es un documento MS Word y su tamaño es de 75.0 kB.
Las otras dos líneas se refieren a los elementos del correo electrónico, cuyo tipo es text/plain (texto plano) y text/html (código HTML) – es decir, el texto que se muestra como mensaje, el propio correo electrónico.
Para extraer los archivos adjuntos del correo (los marcados con ), usa el comando:
mu extract original_msg.txt -a
Sustituye original_msg.txt
por la ruta a tu correo guardado.
Si deseas guardar todo: tanto los archivos adjuntos al correo como el texto del propio correo, usa la opción --save-all
:
mu extract original_msg.txt --save-all
Descripción de los Encabezados del Correo Electrónico
Veamos algunos encabezados comunes del correo electrónico. Nuevamente, todos estos pueden ser falsificados, por lo que solo las cadenas Received: generadas por un servicio en tu computadora o un servidor confiable pueden ser completamente confiables.
From
Muestra quién envió el mensaje. Puede ser fácilmente falsificado, es el menos confiable.
Subject
Aquí es donde el remitente pone el asunto del correo electrónico.
Date
Muestra la fecha y hora en que se creó el correo electrónico.
To
Muestra a quién está dirigido este mensaje, pero puede no incluir la dirección del destinatario.
Return-Path
La dirección de correo electrónico para la respuesta. Es la misma que “Reply-To:”.
Envelope-To y Envelope-From:
Estos encabezados, como To y From, indican el destinatario y el remitente del correo electrónico. Pero los encabezados To y From son para la persona que lee el correo o para el correo electrónico. El protocolo SMTP, que se usa para enviar mensajes, usa ciertos comandos con direcciones de destinatario y remitente, y la información de estos comandos puede añadirse a los encabezados Envelope-To y Envelope-From.
Delivery Date:
Muestra la fecha y hora en que el correo electrónico fue recibido por el servicio de correo o cliente de correo.
Received:
Received es la parte más importante del encabezado del correo electrónico, y generalmente la más confiable. Estas líneas forman una lista de todos los servidores/computadoras por los que el mensaje viajó para llegar a ti. Las líneas received se leen mejor de abajo hacia arriba. Es decir, la primera línea “Received:
” es tu propio sistema o servidor de correo. La última línea “Received:
” es de donde proviene el correo electrónico. Cada sistema de correo tiene su propio estilo de cadena “Received:”. Cada “Received:” individual generalmente indica la máquina desde la que se recibió el correo y la máquina que recibió el correo.
DKIM-Signature y DomainKey-Signature
La información en estos encabezados se usa para la autenticación del correo electrónico y el control de spam. Lee sobre Seguridad Correo Electrónico: SPF, DKIM y DMARC para Principiantes
Citas de Wikipedia:
- DomainKeys Identified Mail (DKIM) es un método de autenticación de correo electrónico diseñado para detectar mensajes falsificados enviados por correo electrónico. El método permite al destinatario verificar que el mensaje fue realmente enviado desde el dominio declarado. DKIM facilita la lucha contra direcciones de remitente falsas que a menudo se usan en correos electrónicos de phishing y spam.
- DomainKeys Identified Mail (DKIM) combina varias técnicas existentes de anti-phishing y anti-spam para mejorar la clasificación e identificación del correo electrónico legítimo. En lugar de una dirección IP tradicional, DKIM agrega una firma digital asociada con el nombre de dominio de la organización para determinar el remitente de un mensaje. La firma se verifica automáticamente en el lado del destinatario, después de lo cual se aplican “listas blancas” y “listas negras” para determinar la reputación del remitente.
- DomainKeys usa nombres de dominio para autenticar a los remitentes. DomainKeys usa el Sistema de Nombres de Dominio (DNS) existente para comunicar claves de cifrado públicas.
- DomainKeys es un sistema de autenticación de correo electrónico diseñado para verificar el nombre de dominio del remitente y la validez del correo electrónico. La especificación DomainKeys hereda aspectos del Internet Mail Identified para crear un protocolo extendido llamado DomainKeys Identified Mail (DKIM). Estas especificaciones combinadas sirvieron como base para el grupo de trabajo de la IETF para desarrollar el estándar. DomainKeys está obsoleto hoy en día.
Message-id
Una cadena única asignada por el sistema de correo cuando el mensaje es creado por primera vez. Puede ser fácilmente falsificado.
Mime-Version
MIME (Multipurpose Internet Mail Extensions) es un estándar que describe la transmisión de varios tipos de datos a través de correo electrónico, así como, en general, una especificación para codificar información y formatear mensajes para que puedan enviarse por Internet.
Content-Type
Usualmente te indicará el formato del mensaje, como html o texto plano.
X-Spam-Status
Muestra la calificación de spam generada por tu servicio o cliente de correo electrónico.
X-Spam-Level
Muestra el puntaje de spam generado típicamente por tu servicio o cliente de correo electrónico.
Message Body
Este es el contenido de la carta que se muestra al destinatario.
X-Received
X-Received es un encabezado no estándar (a diferencia de Received) añadido por algunos agentes de usuario o agentes de reenvío de correo como el servidor SMTP de Google Mail.
X-PHP-Originating-Script
Si el correo electrónico es enviado por un script PHP, este encabezado puede contener el nombre de este script PHP. Ejemplo:
X-PHP-Originating-Script: 6603:class-phpmailer.php
X-Mailer
El encabezado que el script PHP puede añadir contiene información sobre el programa que envió el correo electrónico. Ejemplo:
X-Mailer: PHPMailer 5.2.22 (https://github.com/PHPMailer/PHPMailer)
X-Originating-IP
Contiene la dirección IP de la computadora que envió este correo electrónico. Si no puedes encontrar el encabezado X-Originating-IP, entonces navega a través de los encabezados Received para encontrar la dirección IP de origen como se mostró arriba.
Servicio en Línea para el Análisis de Correos Electrónicos
Un servicio de análisis de correos electrónicos bastante simple. Debes insertar una fuente de correo completa con encabezados en él, y mostrará la cadena de nodos de correo por los que ha pasado este correo electrónico, y también mostrará una lista de archivos adjuntos.
Dirección del servicio: https://suip.biz/?act=email
Ejemplo de análisis:
Si tienes sugerencias para el servicio, por ejemplo, qué otros encabezados importantes e interesantes deberían añadirse a este informe breve, entonces escribe abajo en los comentarios.
Conclusión
En este artículo, aprendimos a entender los encabezados de correo electrónico. Aunque muchas personas ahora usan la interfaz web, que generalmente no contiene información tan interesante como la IP del remitente, en un entorno corporativo es bastante común usar programas de correo instalados en una computadora. Hablando de la dirección IP, conoce ¿Qué Podría Hacer Alguien con tu Dirección IP?
El análisis de tales cartas puede revelar información más interesante. Generalmente, los correos electrónicos de listas de spam y diversas listas de correo maliciosas también se envían sin usar la interfaz web, lo que también hace que el análisis de tales correos electrónicos sea más interesante.
En este artículo, también aprendimos cómo extraer archivos maliciosos de correos electrónicos si los servicios de correo basados en web no permiten su descarga.