jueves, noviembre 6, 2025

LinkPro Linux Rootkit utiliza eBPF para ocultarse y activarse mediante paquetes Magic TCP

TecnologíaLinkPro Linux Rootkit utiliza eBPF para ocultarse y activarse mediante paquetes Magic TCP

Una investigación sobre el compromiso de una infraestructura alojada en Amazon Web Services (AWS) ha llevado al descubrimiento de un nuevo rootkit GNU/Linux denominado Enlace Prosegún los hallazgos de Synacktiv.

«Esta puerta trasera presenta funcionalidades que se basan en la instalación de dos módulos eBPF (extended Berkeley Packet Filter), por un lado para ocultarse y, por otro, para activarse de forma remota al recibir un ‘paquete mágico'», afirmó el investigador de seguridad Théo Letailleur.

La infección, según la empresa francesa de ciberseguridad, implicó que los atacantes explotaran un servidor Jenkins expuesto vulnerable a CVE-2024-23897 (puntuación CVSS: 9,8) como punto de partida, tras lo cual se implementó una imagen maliciosa de Docker Hub llamada «kvlnt/vv» (ahora eliminada) en varios clústeres de Kubernetes.

La imagen de Docker consta de una base de Kali Linux junto con una carpeta llamada «aplicación» que contiene tres archivos:

  • start.sh, un script de shell para iniciar el servicio SSH y ejecutar los dos archivos restantes
  • link, un programa de código abierto llamado vnt que actúa como un servidor VPN y proporciona capacidades de proxy al conectarse a vnt.wherewego(.)top:29872, lo que permite al atacante conectarse al servidor comprometido desde cualquier lugar y usarlo como proxy para llegar a otros servidores.
  • app, un descargador basado en Rust denominado vGet que recibe una carga útil VShell cifrada de un depósito S3, que luego procede a comunicarse con su propio servidor de comando y control (C2) (56.155.98(.)37) a través de una conexión WebSocket.

También se entregaron a los nodos de Kubernetes otras dos cepas de malware, un gotero que incorpora otra puerta trasera vShell y LinkPro, un rootkit escrito en Golang. El malware sigiloso puede operar en modo pasivo (también conocido como inverso) o activo (también conocido como avance), dependiendo de su configuración, lo que le permite escuchar comandos del servidor C2 solo al recibir un paquete TCP específico o iniciar contacto directamente con el servidor.

Mientras que el modo directo admite cinco protocolos de comunicación diferentes, incluidos HTTP, WebSocket, UDP, TCP y DNS, el modo inverso solo utiliza el protocolo HTTP. La secuencia general de eventos se desarrolla de la siguiente manera:

  • Instale el módulo eBPF «Ocultar», que contiene programas eBPF de los tipos Tracepoint y Kretprobe para ocultar sus procesos y actividad de red.
  • Si la instalación del módulo «Ocultar» falla, o si se ha deshabilitado, instale la biblioteca compartida «libld.so» en /etc/ld.so.preload
  • Si se utiliza el modo inverso, instale el módulo eBPF «Knock», que contiene dos programas eBPF de los tipos eXpress Data Path (XDP) y Traffic Control (TC) para garantizar que el canal de comunicación C2 se active solo al recibir el paquete mágico.
  • Logre la persistencia configurando un servicio systemd
  • Ejecutar comandos C2
  • En caso de interrupción (señales SIGHUP, SIGINT y SIGTERM), desinstale los módulos eBPF y elimine el /etc/libld.so modificado y restáurelo a su versión original.

Para lograr esto, LinkPro modifica el archivo de configuración «/etc/ld.so.preload» para especificar la ruta de la biblioteca compartida libld.so integrada en él con el objetivo principal de ocultar varios artefactos que podrían revelar la presencia de la puerta trasera.

«Gracias a la presencia de la ruta /etc/libld.so en /etc/ld.so.preload, la biblioteca compartida libld.so instalada por LinkPro es cargada por todos los programas que requieren /lib/ld-linux.so14», explicó Letailleur. «Esto incluye todos los programas que utilizan bibliotecas compartidas, como glibc».

«Una vez que libld.so se carga durante la ejecución de un programa, por ejemplo /usr/bin/ls, enlaza (antes de glibc) varias funciones de libc para modificar resultados que podrían revelar la presencia de LinkPro».

El paquete mágico, según Synacktiv, es un paquete TCP con un valor de tamaño de ventana de 54321. Una vez que se detecta este paquete, el módulo Knock guarda la dirección IP de origen del paquete y una fecha de vencimiento asociada de una hora como su valor. Luego, el programa está atento a paquetes TCP adicionales cuya dirección IP de origen coincida con la de la IP ya guardada.

En otras palabras, la funcionalidad principal de LinkPro es esperar a que se envíe un paquete mágico, después del cual el actor de la amenaza tiene una ventana de una hora para enviar comandos al puerto de su elección. El módulo Knock también está diseñado para modificar el encabezado del paquete TCP entrante para reemplazar el puerto de destino original con el puerto de escucha de LinkPro (2333) y alterar el paquete saliente para reemplazar el puerto de origen (2233) con el puerto original.

«El propósito de esta maniobra es permitir al operador activar la recepción de comandos para LinkPro a través de cualquier puerto autorizado por el firewall frontal», dijo Synacktiv. «Esto también hace que la correlación entre los registros del firewall frontal y la actividad de red del host comprometido sea más compleja».

Los comandos admitidos por LinkPro incluyen ejecutar /bin/bash en un pseudo-terminal, ejecutar un comando de shell, enumerar archivos y directorios, realizar operaciones con archivos, descargar archivos y configurar un túnel proxy SOCKS5. Actualmente no se sabe quién está detrás del ataque, pero se sospecha que los actores de la amenaza tienen motivaciones financieras.

«Para ocultarse a nivel del kernel, el rootkit utiliza programas eBPF de tipo tracepoint y kretprobe para interceptar las llamadas al sistema getdents (ocultar archivos) y sys_bpf (ocultar sus propios programas BPF). En particular, esta técnica requiere una configuración de kernel específica (CONFIG_BPF_KPROBE_OVERRIDE)», dijo la compañía.

«Si este último no está presente, LinkPro recurre a un método alternativo cargando una biblioteca maliciosa a través del archivo /etc/ld.so.preload para garantizar la ocultación de sus actividades en el espacio del usuario».

Artículos más populares