Análisis de Malware con Wireshark
Descripción
En este laboratorio analicé una captura de paquetes maliciosa conocida sobre el exploit Log4J. Comencé mi investigación con el mismo manual que uso para el análisis de capturas de paquetes, que consiste en examinar las estadísticas y ver cuántos y qué endpoints se están comunicando. Al notar la gran cantidad de direcciones IP, quise mapear las direcciones en el globo, así que instalé y configuré la base de datos GEOIP de Max Mind, que resuelve las direcciones IP a su país y ciudad. Esta cantidad de direcciones IP indica un posible ataque de una botnet para el exploit Log4J u otro escaneo malicioso. Debido a que el tráfico de la captura usa http y no https (cifrado), pude identificar el exploit en texto claro filtrando por "jndi", que es la interfaz Java Naming and Directory Interface. El primer paquete de este filtro fue una solicitud HTTP POST y, al examinar el campo User-Agent, reveló una solicitud ldap hacia una IP seguida de texto codificado. Decodificar el texto en CyberChef mostró que el código era un wget hacia una IP para descargar un script de shell, usar el comando chmod para otorgarle permisos de ejecución y luego ejecutar el script. Además, para descubrir si la máquina anfitriona realizó intentos de conexión saliente a IP públicas que indiquen un servidor de comando y control, filtré por ella como dirección de origen y por paquetes TCP SYN para el inicio de conexiones TCP, y confirmé que no hubo conexiones. Esto podría ser el resultado de que la máquina esté parcheada o de una regla implícita del firewall que bloquee las conexiones salientes. Una vez que quedó claro que el ataque no tuvo éxito, realicé más inteligencia de amenazas sobre la IP del comando wget y descubrí que la IP era conocida como maliciosa y, en la pestaña de la comunidad en VirusTotal, la IP estaba vinculada a ataques Log4shell, lo que confirmó aún más el ataque. Mi enfoque fue ver inicialmente quién se estaba comunicando con el servidor objetivo. Luego fue crucial determinar si el servidor atacado (198.71.247.91) inició alguna nueva conexión saliente.
Herramientas utilizadas
- Wireshark
- Virus Total
- CyberChef
- Base de datos GEOIP de Max Mind
Entornos utilizados
- Kali Linux a través de Oracle Virtual Box
Resumen del laboratorio:
Al abrir el PCAP, lo primero que me gusta hacer es ver cuántos dispositivos están presentes/comunicándose (Statistics -> Endpoints)
Después de notar una cantidad inusual de tráfico y diferentes conversaciones IPv4 originadas desde diferentes países, exporté los endpoints para mostrarlos en un mapa global usando la base de datos GEOIP de Max Mind. (Endpoints -> Map -> Open in Browser)
Al saber que estaba tratando con un PCAP de exploit Log4J, el exploit aprovecha la vulnerabilidad de la interfaz Java Naming and Directory Interface (jndi), así que pensé que sería un buen filtro para comenzar (ip contains "jndi")
El filtro para "jndi" funcionó bien, y expandí el primer paquete, que era una solicitud HTTP POST, y examiné el campo User-Agent, que mostraba una solicitud ldap con una IP seguida de texto codificado en base-64.
Decodificar el final de la solicitud POST inicial del ataque muestra un wget, que es una solicitud web a una IP para descargar lh[.]sh, un script de shell, y el comando chmod, que cambia los privilegios para agregar x, que es el permiso de ejecución. Por último, iniciaría el script de shell
Luego determiné si el servidor anfitrión en 198.71.247.91 realizó alguna conexión a servidores externos, específicamente a la dirección IP del wget en la cadena decodificada. Filtré los paquetes SYN, que establecen una conexión TCP, y descubrí que el servidor no se había conectado con direcciones externas, lo que probablemente significa que el servidor estaba parcheado y, por lo tanto, el exploit falló.
Con el script decodificado, investigué más a fondo usando VirusTotal para aprender más sobre la IP a la que llamaba el script y descubrí que era maliciosa
En la sección Comunidad de VirusTotal, había más evidencia de que se trataba de un ataque Log4J, ya que se sabía que esa IP había intentado el exploit en el pasado.

Reflexiones
Este laboratorio brindó experiencia práctica en el análisis de una captura de paquetes (archivo .pcapng) en lugar de un análisis en vivo en la red. Obtener una captura de paquetes real de un intento de ataque malicioso y analizarla fue increíblemente interesante, especialmente porque estaba en texto claro a través de http en el puerto 80, en lugar de cifrado. Aunque he usado VirusTotal y CyberChef en laboratorios y tutoriales anteriores, saber que los artefactos extraídos del pcap eran reales me hizo aún más curioso por profundizar en los recursos que otros miembros de la comunidad de ciberseguridad han recopilado en torno a la dirección IP atacante y al exploit en sí. Además, ya había usado Wireshark anteriormente, pero esta fue la primera vez que configuré la base de datos GEOIP de Max Mind para resolver ubicaciones a partir de direcciones IP y luego poder exportarlas como un mapa, lo que fue otro punto destacado de este laboratorio.