Análisis de malware

TeamTNT evade la detección con nuevo malware utilizando la técnica ld_preload

21 de abril de por Pedro Tavares

Un nuevo malware del grupo de amenazas TeamTNT utiliza una técnica Unix diferente para evadir la detección e instalar un bot en las máquinas comprometidas creando persistencia a través del servicio systemd. Describiremos el modus operandi de este criptominero y prescribiremos algunas medidas para prevenir incidentes de esta naturaleza.

¡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

La nueva amenaza

El grupo de amenazas TeamTNT lanzó a su arsenal un nuevo malware de evasión de detección para comprometer un gran volumen de máquinas eludiendo las defensas contra amenazas.

El grupo TeamTNT realizó varios ataques a servicios basados ​​en la nube, incluido el objetivo de credenciales de Amazon Web Services (AWS) para ingresar a la nube y usarla para extraer la criptomoneda Monero. El grupo también apuntó a instancias de nube de Docker y Kubernetes en el pasado.

Este nuevo malware utiliza un conocido script de GitHub denominado libprocesshider con capacidades para ocultar un proceso en Linux usando el precargador ld.

1: código y uso de libprocesshider de la página de GitHub.

Con esta técnica, los delincuentes pueden ocultar el proceso malicioso en el árbol de procesos de Linux y crear persistencia en las máquinas afectadas.

Desembalaje del cargador minero

El cargador de malware se lanza al mercado empaquetado para impedir su análisis y proteger su código fuente contra la ingeniería inversa. Como se observa en la 2, varias partes están protegidas con alta entropía (lado izquierdo). Después de descomprimirlo, invierta y analice el código fuente del malware tanto como sea posible. También es interesante notar que en el lado derecho, la muestra todavía parece empaquetada, pero eso se debe a una carga útil codificada incrustada dentro del cargador y que se detalla a continuación.

2: Entropía del código empaquetado del minero cargador frente al código desempaquetado.

Al analizar el código fuente del cargador después de descomprimirlo, se revela una carga base64 dentro del binario.

3: Script Bash codificado dentro del cargador de minero utilizado para realizar la operación maliciosa.

Este es un script bash responsable de ejecutar la siguiente etapa y realiza las siguientes tareas:

Profundizando en los detalles del minero

La carga útil de bash comienza modificando los servidores de nombres del archivo /etc/resolv.conf. Creemos que este paso se realiza para garantizar la comunicación con el servidor malicioso disponible en Internet.

Después de eso, la persistencia se logra agregando un nuevo archivo de configuración al servicio NetworkManager. Como se observó, el nuevo archivo está codificado en base64 y se coloca dentro del archivo “/lib/systemd/system/NetworkManager-wait.service”. Finalmente, el nuevo servicio está habilitado e iniciado.

4: Persistencia del minero utilizando el servicio systemd Linux 1/2.

5: Persistencia del minero utilizando el servicio systemd Linux 2/2.

Después de este paso, se decodifica una nueva carga útil en base64 y se coloca en el disco como un archivo tar.gz oculto. Las cargas útiles lo escriben en ‘/usr/local/lib/systemhealt.so’ y luego agregan su precarga a través de ‘/etc/ld.so.preload’. En detalle, el sistema utiliza este archivo para precargarlo antes que otras bibliotecas del sistema, lo que permite que el malware anule algunas funciones populares.

La siguiente muestra la carga útil base64 almacenada en la variable SOFILE, colocada en la carpeta /tmp, descomprimida y movida a la carpeta del sistema /usr/local/lib. Finalmente, se eliminan los artefactos de malware y se crea el archivo /usr/local/lib/systemhealt.so.

6: técnica libprocesshider utilizada para ocultar el proceso malicioso debajo del árbol de procesos.

La precarga permite cargar una biblioteca compartida personalizada antes de que se carguen otras bibliotecas del sistema. Cuando una biblioteca compartida personalizada exporta una llamada con la misma firma que la ubicada en las bibliotecas del sistema, la versión personalizada (la maliciosa) anulará la original.

Como se detalla en la 7, la actividad general de esta carga útil es ocultar el bot TeamTNT del árbol de procesos, que utiliza /usr/bin/sbin para realizar la ejecución y la función “SETUP_IRCBOT” para obtener la configuración de un dominio malicioso de La Internet.

7: Ejecución del bot y adquisición de configuración del dominio malicioso.

Finalmente, este malware invoca la llamada CLEANUP_TRACES, eliminando rastros al eliminar el historial de bash.

¡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

Combatir nuevas amenazas

Los grupos de amenazas añaden constantemente nuevas herramientas a su arsenal. De esta forma, TeamTNT amplía sus capacidades basadas en herramientas de código abierto con el uso de la técnica libprocesshider.

La monitorización a nivel de host debe verse como un primer paso para detectar y bloquear amenazas, así como líneas y artefactos relacionados con libprocesshider. Con esta nueva funcionalidad, los delincuentes logran persistencia y evaden la detección, una señal clara a considerar cuando buscan actividad maliciosa a nivel de host.

Fuentes

Análisis de malware, Equipo TNT

Muestra de malware (gracias a @JAMESWT_MHT ), Bazaar

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *