Análisis Profundo de Cabeceras de Correo Electrónico para Analistas de Ciberseguridad

Módulo 1: Introducción a las Cabeceras de Correo Electrónico

Las cabeceras (headers) son metadatos invisibles que registran el viaje completo del email: remitente real, servidores intermediarios, autenticación y timestamps.

Son clave para ciberseguridad porque revelan spoofing (falsificación), rutas sospechosas y fallos en SPF/DKIM/DMARC[1][2].

Por qué importan para analistas:

  • Detectar phishing/spoofing: IPs maliciosas, dominios falsos o reenvíos inesperados

  • Verificar autenticación: SPF (remitente autorizado), DKIM (firma criptográfica), DMARC (política de alineación)

  • Rastrear incidentes: Cuellos de botella, servidores proxy o geolocalizaciones anómalas

Paso 1.1: Obtén las cabeceras (común a todos los clientes):

  1. Abre el email sospechoso.

  2. En Gmail: Menú > “Mostrar original” > Copia todo el texto.

  3. En Outlook: Archivo > Propiedades > Copia “Cabeceras de Internet”.

  4. En Thunderbird: Ver > Cabeceras > Todos > Copia el bloque RAW[1][2][7].

  5. Pega en un editor de texto (Notepad++) para documentar: guarda como email headers.txt.

Módulo 2: Análisis Manual (Sin Herramientas) - Paso a Paso

Analiza el texto RAW línea por línea. Las cabeceras van de abajo hacia arriba (última “Received” es el origen real)

Paso 2.1: Identifica campos básicos (5-10 min):

  1. Busca From/To/Subject/Date: Verifica si “From” coincide con el dominio real (puede falsificarse)

{width=“3.901042213473316in” height=“1.1354385389326334in”}

  1. Revisa Message-ID: Único por email; busca duplicados en incidentes masivos.

{width=“6.267716535433071in” height=“0.3611111111111111in”}

Único, de SendGrid (geopod-ismtpd-11).

Paso 2.2: Analiza la cadena “Received” (ruta del email):

{width=“6.267716535433071in” height=“0.5555555555555556in”}

  • Cada línea “Received: from [IP/servidor] by [servidor] with [protocolo]” muestra un salto.
  1. Lee de abajo hacia arriba: Primera línea = origen real (IP del remitente).

{width=“6.267716535433071in” height=“0.6111111111111112in”}

  1. Extrae IPs: Usa formato IPv4/IPv6. Ej: Received: from mail.example.com ([192.0.2.1]).

Received: from o4.m.fontawesome.com (o4.m.fontawesome.com. [159.183.29.246])

  1. Verifica geolocalización manual: Busca WHOIS de IP (¿coincide con dominio? ¿Tor/VPN?).

{width=“6.267716535433071in” height=“3.611111111111111in”}

  1. Detecta anomalías:

    • Saltos excesivos (>5-7): Posible proxy o spam.

    • IPs en países inesperados: Rojo para phishing.

    • “ESMTP id” o “HELO/EHLO” falsos: Spoofing

    • En Notepad++: Ctrl+F > “Received:” > Lista todo > Lee de abajo arriba. Marca IPs en verde.

{width=“6.267716535433071in” height=“0.9305555555555556in”}

Paso 2.3: Verifica autenticación manual:

  1. Busca SPF: Received-SPF: [pass/fail/softfail/none]. “Fail” = spoofing

{width=“6.267716535433071in” height=“0.7361111111111112in”}

  1. Busca DKIM: DKIM-Signature: v=1; a=rsa-sha256; d=dominio.com; s=selector;. Verifica si “d=” coincide con From.

{width=“6.267716535433071in” height=“0.75in”}

{width=“6.267716535433071in” height=“0.3611111111111111in”}

  1. Busca DMARC: Authentication-Results: dmarc=pass (p=quarantine). “Fail” o “none” = riesgo

{width=“6.267716535433071in” height=“0.75in”}

{width=“6.267716535433071in” height=“0.4305555555555556in”}

  1. Chequea alineación: Dominio From vs. dominio SPF/DKIM debe coincidir.

header.from=m.fontawesome.com

En Notepad++: Busca “SPF:”, “DKIM-Signature:”, “dmarc=” → Todo verde/PASS. Rojo solo si “fail”.

Paso 2.4: Detecta indicadores de compromiso (IoCs):

  • X-Originating-IP: IP real del cliente.

  • User-Agent: Cliente usado (ej: Outlook vs. script malicioso).

  • Reply-To/Return-Path: Diferentes a From = BEC/phishing

{width=“6.267716535433071in” height=“0.4861111111111111in”}

  • Documenta en Tabla simple en Excel: | Campo | Valor | Sospechoso? | Razón |.

  • ARC-Seal

{width=“6.267716535433071in” height=“0.3611111111111111in”}

{width=“6.267716535433071in” height=“1.25in”}

Ejemplo práctico: Si “Received” muestra IP rusa pero From es “banco@españa.com” + SPF=fail → Phishing confirmado.

Análisis Headers:

Secret’s out! (ID: e8jVnyj-QACGkZEVmZ95_Q@geopod-ismtpd-11) Fecha: 03/03/2026

1. Ruta Received: - Origen: 159.183.29.246 (o4.m.fontawesome.com, SendGrid USA) - Saltos: 5 (normal)

2. Autenticación: SPF=PASS | DKIM=PASS (2 firmas) | DMARC=PASS

3. IoCs: Ninguno (IP legítima, alineación OK)

4. Veredicto: LIMPIO (Email marketing legítimo)

5. Recomendaciones: Ninguna (archivar) Herramienta manual: Notepad++

Módulo 3: Análisis con Herramientas - Paso a Paso

Paso 3.1: Análisis guiado con herramienta (ej: MX Toolbox):

  1. Copia headers completas.

  2. Pega en la herramienta.

  3. Interpreta salida:

    • Ruta visualizada: Línea temporal con IPs geolocalizadas.

    • SPF/DKIM/DMARC: Verde=pass, Rojo=fail → Reporta como IoC.

    • Blacklists: Si IP en RBL → Bloquea[1][4].

  4. Exporta reporte: Screenshot + notas para ticket (SIEM/Jira).

Paso 3.2: Integración avanzada:

  • Combina con VirusTotal para IPs/dominios de headers.

  • Usa Wireshark si capturas tráfico (para forense profunda)[8].

Módulo 4: Casos Prácticos y Documentación para Analistas

Caso 1: Phishing BEC:

  • Headers: From falsificado, SPF=none, IP en Nigeria.

  • Acción: Manual → Ruta sospechosa.

  • Herramienta → DMARC=fail. Documenta: “Bloquear IP, elevar a IR”.

Caso 2: Email legítimo fallido:

  • DKIM=pass pero alineación fail → Configuración interna rota[1].

Plantilla de documentación

Análisis Headers: [Asunto/ID]

Fecha: [DD/MM/YY]

1. Ruta Received: [Lista IPs + países]

2. Autenticación: SPF=[ ], DKIM=[ ], DMARC=[ ]

3. IoCs: [IPs, dominios sospechosos]

4. Veredicto: [Limpio/Sospechoso/Malicioso]

5. Recomendaciones: [Bloquear, reportar]

Herramienta usada: [Nombre]

Módulo 5: Mejores Prácticas y Recursos Avanzados

  • Siempre analiza headers completas (no parciales).

  • Automatiza con scripts Python (usa email.parser para parseo).

.

Headers Found


Header Name Header Value


Delivered-To intermedia360.es@gmail.com

X-Received by 2002:a05:6214:27e2:b0:89a:78e:50ac with SMTP id 6a1803df08f44-89a0a8907f4mr44370726d6.15.1772562714623; Tue, 03 Mar 2026 10:31:54 -0800 (PST)

ARC-Seal i=1; a=rsa-sha256; t=1772562714; cv=none; d=google.com; s=arc-20240605; b=NWF30o/eoOaCh7kK9ZqAU8tURBl9HxhUlZRSmsTaCwzF6SwnJUc0ppdRc4ZJTgceVH WL9haPDtUTmeXh/MsWSIWrUVKwDLelB5MlxJU97SJygnO1wfbu0kPXag9EUjKanoqHzk v9fK6p461Bf+YNuTRCQ47Zion8vTfBWKq+NuEpxo00YtRRm2LkmquhYq96ak45ZIGPm9 w7FVceAIUd6wDo3XavIT2i2+UX4VepPpfLjxpef56UjCbwm9z9UvOpDX3XSsAF8UQxII Z7X8XxPmxqC/zY+mQFs4f9SvqgPLldpVB2i2iylWQb32tddjeewMqif5koCWq3IRVGLU /h9A==

ARC-Message-Signature i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:list-unsubscribe-post:list-unsubscribe:reply-to:subject :message-id:mime-version:from:date:dkim-signature:dkim-signature; bh=qggViXflS+iFcGQzD4pGzSP5HxcRxorUD4rfzM36hEc=; fh=HaDtzfZgfkm+Ivqpbh6S1nBRYerzsZJDnvVE9pGSGjc=; b=KTETo5UNt73wuZZ9fPciHwy9UNdk8ptxtJM1Q4dbrbes81x0G/ZJXITy8LTMjfnHbb M2qsyJEbeCQFkkQsph3Mbq1TAKGu0pc8lTUEYfmX8QpPt0J/a8+FahEmLrXadqe/OSrN MvPvJgoB4WgCl2jqjTcCeNHihCs/qm1mPpMwfhdVKvRgER8Nqi3r0jHvuXtayG7yMEzF js8/DUq57BukmaklKJ2W6VsjytcOlImf05kKQWe6Kw82L53D8F17EIJiQQ8UtQqmlE4e awXPzZJqQjXZyGjMopxEQLNtK2IqBPagxX3Ubh1X8cZjfE25o45xaNhXrUik4zP5ZEOj 4QVA==; dara=google.com

ARC-Authentication-Results i=1; mx.google.com; dkim=pass header.i=@m.fontawesome.com header.s=s1 header.b=eWWwol2J; dkim=pass header.i=@sendgrid.info header.s=smtpapi header.b=sS+XeSuG; spf=pass (google.com: domain of bounces+24655962-40f9-intermedia360.es=gmail.com@em5786.m.fontawesome.com designates 159.183.29.246 as permitted sender) smtp.mailfrom=“bounces+24655962-40f9-intermedia360.es=gmail.com@em5786.m.fontawesome.com”; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=m.fontawesome.com

Return-Path <bounces+24655962-40f9-intermedia360.es=gmail.com@em5786.m.fontawesome.com>

Received-SPF pass (google.com: domain of bounces+24655962-40f9-intermedia360.es=gmail.com@em5786.m.fontawesome.com designates 159.183.29.246 as permitted sender) client-ip=159.183.29.246;

Authentication-Results mx.google.com; dkim=pass header.i=@m.fontawesome.com header.s=s1 header.b=eWWwol2J; dkim=pass header.i=@sendgrid.info header.s=smtpapi header.b=sS+XeSuG; spf=pass (google.com: domain of bounces+24655962-40f9-intermedia360.es=gmail.com@em5786.m.fontawesome.com designates 159.183.29.246 as permitted sender) smtp.mailfrom=“bounces+24655962-40f9-intermedia360.es=gmail.com@em5786.m.fontawesome.com”; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=m.fontawesome.com

DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=m.fontawesome.com; h=content-type:date:from:mime-version:subject:reply-to:list-unsubscribe: list-unsubscribe-post:to:cc:content-type:date:feedback-id:from:subject:to; s=s1; bh=qggViXflS+iFcGQzD4pGzSP5HxcRxorUD4rfzM36hEc=; b=eWWwol2Jp5D/3K4kWokkNW2hWqAGqjQU21AgZvnyDgPy6bxGcYRWbkHVW8Ttui4q9WKR wmtE0KtzdViJ3GmqXrQSsuGNOfxZaKDAoNWwogGzbQKsk/tIqeaYJrSFS2YGAqBOfMNjDb 0Omf3PmUgKDC702WwwxymDUtQCZhdiilQrNWP4Wg4vJPBTWdVxXlfB/zctIf/VAwb6h6CU mPDr8RY4vpD4/uJCCqhib6xpZaCv/0pAZia7hvYNCyMh469Gr+5TWrdkgQgj/cmYM/XSVv 6jkCuEmBxzP9YvkGgJWVP6xLJaTUtdrSWb7NRWFkSFVyIHkCSxW25KRqrUyMIxQw==

Content-Type multipart/alternative; boundary=41be394331ec5cfde28f432eac37affed391b58b963a0edae890d9f9265c

Date Tue, 03 Mar 2026 18:31:53 +0000 (UTC)

From Font Awesome <hello@m.fontawesome.com>

Mime-Version 1.0

Message-ID <e8jVnyj-QACGkZEVmZ95_Q@geopod-ismtpd-11>

Subject Secret’s out! (And there’s never been a better time to go Pro)

Reply-To Font Awesome <marketing@fontawesome.com>

List-Unsubscribe <https://fontawesome.com/email/preferences/?token=a87a62be-4a3f-45a9-81e9-540bf8b4b243\>

List-Unsubscribe-Post List-Unsubscribe=One-Click

X-SG-EID u001.kAOz2HoDUJdSMqokLmodbsMNzvk6Ta/y7wDGg3sbEoVKhRewpsMTTn7OzZCnhJ6XARQbINbCmY8Tte7JBf525nr/j7it0s/Od8gfkKTbVIzN9D0XX/O3a7Vz9qldQHi/2M2DnVID4UZJfvs+IdRY1IoPDdr3P7cr3MBvYaUG+WxIU/4VnfZQtDEQpq2hYrugcbtQL4pcdq1trRIWwvo4JCcuobEAFYr5xTe2CvacrZJC3iW0rHzrVqRWS2W3y3z2

To intermedia360.es@gmail.com

X-Entity-ID u001.yS0LsFxv2yIs9DptPwJNpg==

Email Headers mediante CLI

1. Resumen Ejecutivo

En entornos de SOC (Security Operations Center), la velocidad y la privacidad son críticas. El uso de herramientas web externas para analizar cabeceras de correo expone evidencia a terceros y ralentiza el triaje. La filosofía LOTL (Living Off The Land) ---usar PowerShell y herramientas nativas del sistema--- garantiza velocidad, automatización y OPSEC.

2. Metodología Paso a Paso

Fase A: Extracción de Evidencias

  1. Obtención del código fuente (RAW) del email sospechoso.

  2. Almacenamiento en un archivo local: email_headers.txt.

Fase B: Filtrado de IoCs (Indicadores de Compromiso)

En lugar de revisar cientos de líneas manualmente, aplicamos un filtro para extraer solo los campos de autenticación y la ruta de red.

Comando utilizado (PowerShell):

Get-Content “email_headers.txt” | Select-String -Pattern “From:”,“Received:”,“Authentication-Results:”,“SPF”,“DKIM”,“DMARC”

{width=“6.267716535433071in” height=“3.4027777777777777in”}

Fase C: Identificación del Origen y Validación DNS

[Escenario] Email sospechoso recibido → [Hipótesis] La IP de origen podría no corresponder al dominio declarado → [Acción LOTL] Identificamos la IP en el último salto (Received) y verificamos su reputación mediante resolución inversa de DNS (PTR) con Resolve-DnsName → [Veredicto] Se confirma o descarta spoofing.

Comando utilizado (PowerShell):

Resolve-DnsName 159.183.29.246

{width=“6.267716535433071in” height=“1.4305555555555556in”}

3. Resultados del Análisis (Caso de Estudio)

  • IP Identificada: 159.183.29.246

  • Autenticación: * SPF: PASS (IP autorizada por el dominio).

    • DKIM/DMARC: PASS (Firma válida y alineada).
  • Validación PTR: La IP resuelve a o4.m.fontawesome.com, coincidiendo con la infraestructura de envío legítima (SendGrid/FontAwesome).

4. Conclusión Técnica (Valor para el Portfolio)

El análisis demuestra una alineación total entre la capa de red y la de aplicación.

  • Decisión de Analista: Marcar como Falso Positivo / Legítimo.

  • Eficiencia: Tiempo de ejecución < 2 minutos sin dependencia de herramientas de terceros.

El Peligro de las URLs Ofuscadas

Los atacantes usan acortadores (bit.ly), redirecciones o caracteres homógrafos (letras que parecen iguales pero no lo son) para engañar al usuario. Extraerlas por CLI (PowerShell LOTL) te permite ver la URL real sin riesgo de ejecución accidental y sin exponer las evidencias a servicios web externos.

2. Acción Técnica: PowerShell + Regex (LOTL)

Vamos a usar una expresión regular (Regex) básica para buscar todo lo que empiece por http o https dentro de tu archivo de evidencias.

El Comando: Copia y pega esto en tu terminal (ajusta el nombre del archivo si es necesario):

$regex = ‘https?://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}(?:/[^\s”<>]*)?’

Get-Content “email headers.txt” | Select-String -Pattern $regex -AllMatches | ForEach-Object { $_.Matches.Value } | Sort-Object -Unique

¿Qué hace este “oneliner”?

  1. $regex: Define el patrón de una URL.

  2. Select-String -AllMatches: Busca todas las coincidencias en cada línea.

  3. ForEach-Object { $_.Matches.Value }: Limpia el output para mostrar solo la URL, no la línea completa.

  4. Sort-Object -Unique: Elimina duplicados (muy común en emails).

Quoted-Printable

{width=“6.267716535433071in” height=“2.6805555555555554in”}

¿Ves los =3D o las URLs que parecen cortadas con un = al final?

  • Concepto: Eso es codificación Quoted-Printable. El estándar de email (MIME) usa =3D para representar el signo = y el = al final de una línea para indicar que la URL continúa en la siguiente.

  • Tu Skill: Un analista junior ignoraría esas URLs. Un analista senior sabe que la decodificación de =3D (normalización Quoted-Printable) es un paso PREVIO y obligatorio antes de cualquier escaneo de reputación de URLs (VirusTotal, urlscan.io). Sin este paso, las consultas devolverán falsos negativos.

2. Identificación de IoCs de Red

En tu lista veo tres tipos de URLs:

  1. Legítimas/Técnicas: schema.org, w3.org, fonts.googleapis.com. (Ruido).

  2. Del Negocio: fontawesome.com, kickstarter.com. (Contenido del correo).

  3. De Infraestructura: u24655962.ct.sendgrid.net. (Rastreo de clics del proveedor).

3. Documentación para tu Portfolio (Parte 2)

Añade esto a lo que ya tienes:

Sub-Proyecto: Extracción y Normalización de URLs

Objetivo: Identificar todos los destinos de red del mensaje para detectar redirecciones maliciosas o dominios de Typosquatting.

Técnica: Filtrado mediante Expresiones Regulares (Regex) sobre el cuerpo RAW del mensajes

Hallazgo Crítico: Se detectó el uso de sendgrid.net para el tracking de clics. PASO PREVIO OBLIGATORIO: Normalizar el encoding Quoted-Printable (eliminar =3D, reconstruir líneas partidas con =) ANTES de consultar cualquier base de datos de reputación (VirusTotal, urlscan.io, AbuseIPDB). Sin normalización, las URLs quedan malformadas y los motores de reputación no las reconocen.

4. Verificación

No vamos a hacer clic. Primero, normalizamos las URLs (paso previo: decodificar =3D). Después, usamos herramientas de reputación en modo sandbox.

Tarea: 1. Copia esta URL (ya limpia de =3D): https://www.kickstarter.com/projects/fontawesome/build-awesome

2. Ve a urlscan.io o VirusTotal.

{width=“4.328125546806649in” height=“1.4379155730533684in”}

{width=“6.267716535433071in” height=“2.9305555555555554in”}