Volver

Análisis forense de red

Se analiza un archivo PCAP para detectar actividad maliciosa, reconstruir cadena de eventos, extraer IoCs y mapear técnicas MITRE ATT&CK.

Introducción

En este proyecto se realizó un análisis de tráfico de red extraído de https://malware-traffic-analysis.net/2020/09/30/index.html.

Objetivos

El trabajo se centró en reconstruir la cadena de ataque, identificar servidores C2, obtener indicadores de compromiso y distinguir también el tráfico legítimo del malicioso.

Escenario del incidente

El archivo de análisis proviene de malware-traffic-analysis.net y fue extraído de un caso real que sucedió el 30 de septiembre de 2020.
En la captura se puede observar tráfico de una máquina Windows durante una infección.
La intención del proyecto es reconstruir el incidente utilizando solo el tráfico de red.
No existe acceso al equipo comprometido ni registros de sistema. Toda la investigación se basa en el .pcap.
Inspeccionando el tráfico local (protocolo NetBIOS y DNS), se obtuvieron los datos del host:
  • IPv4 interna: 10.9.30.101
  • Dirección MAC: 00:08:08:1C:47:AE
  • Hostname: DESKTOP-USER1PC
  • Entorno de red: WORKGROUP (sin dominio)
  • Gateway: 10.9.30.1

Herramientas utilizadas

La herramienta principal utilizada fue Wireshark. La captura mostró un total de 6708 paquetes.
Se utilizó también VirusTotal como complemento del análisis para verificaciones durante la investigación.

Metodología

Como primer paso se observaron las estadísticas de la captura. El objetivo de esto es tener un panorama completo acerca de lo que tenemos entre manos y además ofrece indicios para saber dónde enfocar el principio de la investigación.
Luego se comenzó a analizar los primeros paquetes HTTP para entender cómo era el flujo de datos y qué sucedía entre la comunicación.

Análisis de tráfico

En los primeros paquetes se puede observar la consulta DNS para conocer la IP de brightnetworktv[.]com. Tras recibir su respectiva IP se abre la petición HTTP GET hacia el host.
La primera actividad relevante sucede en el paquete 6 donde observamos una petición GET del cliente hacia un servidor aparentemente de WordPress pero apuntando a una dirección sospechosa: /wp-content/Pages/ia3jAonYBM3f3SCDQ/
image.png
Al hacer un seguimiento HTTP se puede ver con mejor detalle lo que sucede. El cliente utiliza Windows NT 10.0 y hace la petición a través de un navegador Edge a un dominio llamado brightnetworktv[.]com que apunta a 3.23.235.182.
La respuesta del servidor es un 200 OK y envía por attachment un archivo llamado FILE-2020_09_30-493847.doc.
image.png
Lo que se realizó a continuación fue la extracción de ese documento a través de la cadena de paquetes TCP y se obtuvo el archivo Word.
image.png
Al obtener la huella digital se utilizó VirusTotal para verificar el archivo en cuestión.
https://www.virustotal.com/gui/file/d170d4853313c3d42e35cf2c19593158ef3d0bb0070faad32f65ddefabed67fchttps://www.virustotal.com/gui/file/d170d4853313c3d42e35cf2c19593158ef3d0bb0070faad32f65ddefabed67fc
Observamos entonces que la reputación obtenida por VirusTotal asocia al archivo extraído de la captura (archivo Word) con Emotet.

Comunicaciones posteriores

El enfoque fue puesto en peticiones HTTP GET por lo tanto utilizamos http.request.method == "GET" para filtrar los paquetes.
image.png
La mayoría de los paquetes son consultas legítimas a servidores de Microsoft pero podemos observar además el paquete 341 diferente al que ya vimos que también está dirigido hacia una página de WordPress pero con IP destino diferente a la anterior: 45.159.115.191.
image.png
Observamos algo interesante. El cliente realiza una petición hacia un recurso en HTTP y el servidor responde con 301 haciendo referencia a que debe buscar con HTTPS esa misma ruta. Esto es sospechoso: la petición es hacia una ruta poco común.
image.png
Cuando recibe la redirección, el host abre una conexión TCP en 443 (observemos el paquete 344). Luego inicia el handshake donde el campo SNI confirma la conexión hacia pershel[.]com.
Una vez realizado, posteriormente observamos que a partir del paquete 357 inicia una transmisión cifrada de datos.
Para tener el flujo completo HTTP vamos a buscar con http.request en la captura para filtrar tanto los GET como los POST.
image.png

Servidores C2

Vemos múltiples HTTP POST 682-2356 hacia distintas IPs con URIs aleatorias. Esto es el cliente enviando datos hacia destinos desconocidos. Las direcciones no tienen estructuras coherentes como páginas convencionales.
Entonces dado esto último podemos decir que el patrón muestra consistencia en una comunicación con el cliente infectado hacia servidores C2.
Si nos fijamos en la cronología de la investigación tiene sentido: descarga de archivo malicioso - segundos después aparece comunicación extraña en paquete 341 - luego termina enviando POST repetitivos hacia diferentes servidores.
Mas abajo observamos nuevamente los GET a los servidores de Microsoft que ya vimos anteriormente y luego siguen un par de HTTP POST adicionales.
image.png
Con lo observado en esta parte podemos destacar varios cosas clave:
  • Al filtrar consultas DNS del archivo, se aprecia que no hay conexiones previas para las direcciones IP 80.87.201.221, 62.210.90.75, 202.22.141.45. Este es un comportamiento de servidores C2 con una lista dentro del malware ya establecida.
  • Todos los servidores C2 respondieron a las peticiones POST con HTTP/1.1 200 OK. Esto quiere decir que hubo comunicación entre cliente-servidor y por ende, recibió la víctima respuestas del atacante.
  • Se detectó también una consulta DNS a ident[.]me para obtener IP pública del host comprometido (173.66.4[.]97) y consultas a listas de reputación de servidores de correo (zen.spamhaus[.]org y cbl.abuseat[.]org).
image.png

IOCs

  • Dominios
    DominioDescripción
    brightnetworktv.comDominio por donde se descargó el documento Word.
    pershel.comDominio que fue observado en comunicaciones posteriores a la infección.
  • Direcciones IP
    IPObservación
    3.23.235.182Servidor asociado a la descarga inicial del documento.
    45.159.115.191Servidor correspondiente a pershel.com.
    80.87.201.221Destino de múltiples solicitudes HTTP POST.
    62.210.90.75Destino de múltiples solicitudes HTTP POST.
    202.22.141.45Destino de solicitudes HTT POST (C2 contactado).
  • Archivos
    NombreSHA-256
    FILE-2020_09_30-493847.docd170d4853313c3d42e35cf2c19593158ef3d0bb0070faad32f65ddefabed67fc
  • User-Agent
    RutaUser-Agent
    GET /wp-content/Pages/ia3jAonYBM3f3SCDQ/Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 Edg/85.0
    POST /9E4lXP65j9LF9Y7R/ HTTP/1.1Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0

Mapeo MITRE ATT&CK

TácticaTécnicaIDObservación
Initial AccessDrive-by CompromiseT1189Descarga del documento Word inicial desde un servidor comprometido usando navegador Edge.
ExecutionUser Execution: Malicious FileT1204.002La actividad posterior al paquete 6 es consistente con la ejecución de macros por parte del usaurio. De todas formas esto se infiere. No existen registros del endpoint donde podamos evaluar esta técnica.
Command and ControlIngress Tool TransferT1105Segunda etapa del malware desde pershel.com usando canal HTTPS/TLS.
DiscoverySystem Network Configuration DiscoveryT1016Consulta DNS a ident.me para obtener IP pública del host y verificar en listas Spamhaus/Abuseat.
Command and ControlApplication Layer Protocol: Web ProtocolsT1071.001Tráfico hacia C2 mediante peticiones HTTP POST con URls aleatorias y con respuestas 200 OK.