Análisis de malware

Malware Pingback: cómo funciona y cómo prevenirlo

29 de septiembre de por Pedro Tavares

Recientemente, los investigadores descubrieron un nuevo malware llamado pingback que utiliza ICMP para comunicarse con su servidor C2. En este artículo entenderemos cómo este malware puede eludir su detección aprovechando el ICMP, conoceremos su modus operandi y también brindaremos algunas medidas para detectar amenazas de esta naturaleza.

Como mencionó el equipo de investigación, el archivo malicioso (una DLL de Windows) llamado oci.dll se coloca en la carpeta del sistema de Windows a través de otros vectores maliciosos explorados tempranamente por los delincuentes o incluso por otro proceso malicioso que se ejecuta en la máquina de destino. En este caso, la DLL no se carga en la memoria mediante la utilidad rundll32.exe, sino mediante la técnica de carga lateral/secuestro de DLL. Esta técnica es muy popular en el panorama del malware y varios tipos de malware, como el troyano Javali , la utilizan para realizar sus operaciones.

1 : Detalles del archivo malicioso oci.dll (malware de pingback).

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Curiosamente, el origen del nombre del malware está asociado con la ruta presente en la PDB “pingbackservice0509.pdb”. En detalle, esta DLL imita una DLL legítima que se carga en la memoria, aprovechando los archivos binarios presentes en esta lista de más de 300 ejecutables de Windows que son candidatos perfectos para el secuestro de DLL.

El malware Pingback utiliza el servicio Microsoft Distributed Transaction Control ( msdtc ) para cargar el archivo oci.dll como se presenta a continuación.

2: Lista de posibles candidatos utilizados muchas veces para el secuestro de DLL.

Modus Operandi del malware Pingback

El primer desencadenante ocurre cuando el servicio msdtc se inicia en la etapa inicial o utiliza otro vector de ataque. El servicio legítimo busca 3 archivos DLL ODBC de Oracle para cargar: archivos oci.dll, SqlLib80.dll y xa80.dll.

3: El servicio msdtc carga indirectamente el oci.dll malicioso ( fuente ).

El oci.dll legítimo es una biblioteca de interfaz de llamada de Oracle responsable de comunicarse con las bases de datos de Oracle. No obstante, esa DLL no forma parte de las DLL de Windows (normalmente disponibles en system32). El atacante debe copiarlo manualmente en la carpeta del sistema o utilizar una etapa inicial, un vector de ataque o incluso un gotero de malware.

“Entonces, en teoría, un atacante con privilegios del sistema puede colocar una DLL maliciosa y guardarla usando uno de los nombres de archivo DLL que carga MTxOCI ” , explican los investigadores .

Si existe el malware oci.dll, entonces el servicio legítimo puede cargar la DLL maliciosa utilizando la tabla de exportación de DLL mantenida por los delincuentes.

4: DLL malicioso cargado en la memoria mediante el binario legítimo msdtc.exe utilizando la técnica de secuestro de DLL ( fuente ).

Túnel ICMP para comunicación con el servidor C2

Cada vez que el ejecutable legítimo ejecuta la DLL maliciosa, aprovecha el protocolo ICMP para comunicarse con el servidor C2.

La razón por la que los delincuentes utilizan este protocolo es porque no hay puertos y no se ejecuta a través de TCP y UDP: el tráfico a menudo es inspeccionado por dispositivos de seguridad para detectar actividades de malware.

“La sección de datos ICMP es donde un atacante puede aprovechar datos arbitrarios para enviarlos a un host remoto. El host remoto responde de la misma manera, [aprovechando] una respuesta en otro paquete ICMP y enviándolo de regreso”, dijeron Macrohon y Méndez .

5: paquete ICMP. El tamaño de los datos ICMP enviados por el atacante es siempre de 788 bytes ( fuente ).

En detalle, el malware pingback escucha los paquetes ICMP entrantes y los analiza en función de los números de secuencia: 1234, 1235, 1236. Un paquete ICMP entrante con la secuencia 1234 indica que la solicitud contiene una carga útil o comandos para ejecutar. Por el contrario, 1235 y 1236 son sólo pingbacks, una forma de realizar un seguimiento y comprender si se ha recibido una solicitud específica.

Este malware puede realizar algunas operaciones, que incluyen (i) ejecutar un shell, (ii) descargar y cargar archivos utilizando protocolos TCP/ICMP para evitar las defensas internas y (iii) ejecutar comandos arbitrarios en la máquina infectada.

La esencia de estos comandos es transmitir datos entre el servidor C2 y las máquinas infectadas y permitir que un atacante remoto ejecute cargas útiles adicionales en la máquina de destino.

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Comprender las amenazas ICMP

Las amenazas que aprovechan los túneles ICMP para evitar la detección no son nuevas. Los delincuentes utilizan muchas veces este protocolo para enmascarar su actividad, transferir información confidencial entre las máquinas infectadas y el servidor C2, recibir comandos, cargas útiles, etc. Dado que el protocolo ICMP se utiliza normalmente con fines de diagnóstico, puede descartarse para algunos dispositivos de seguridad en situaciones particulares.

Desde el punto de vista de seguridad, se podría implementar una regla simple para validar si un paquete ICMP es maligno, buscando un bloque de datos con un tamaño de 788 bytes o mayor y con números de secuencia: 1234, 1235 y 1236. Además , los comandos como download, upload, shell y exec presentes en un paquete de datos ICMP deben considerarse objeto de análisis y marcarse como sospechosos desde el principio.

Por último, pero no menos importante, ¡sea proactivo y empiece a tomarse en serio la protección contra malware!

Fuentes