Servidor de hackers expuesto revela cómo WP-SHELLSTORM infectó miles de sitios WordPress

Un servidor olvidado

Un grupo de ciberdelincuentes dejó uno de sus propios servidores expuesto en internet durante tres semanas, revelando el funcionamiento interno de su operación: herramientas de hacking, registros de actividad y listas de objetivos con más de 1,4 millones de sitios web. Aunque muchos menos fueron realmente vulnerados, los archivos expuestos mostraron a los investigadores cómo opera una operación masiva de violación de sitios desde dentro.

La operación, rastreada como WP-SHELLSTORM, es lo que SOCRadar denomina un corretaje de acceso webshell: un grupo que viola sitios a gran escala, planta una puerta trasera oculta (webshell) en cada uno y empaqueta ese acceso para su reventa. La actividad más fuerte se centró en sitios WordPress con plugins desactualizados. Si usas WordPress o Joomla, las dos vulnerabilidades más importantes estaban en el plugin de caché Breeze y en el editor JCE de Joomla.

Un servidor olvidado

Dos equipos investigaron la misma carpeta expuesta. El equipo de inteligencia de amenazas de SOCRadar la detectó el 11 de junio de 2026 en un servidor alquilado en EE. UU. (137.175.93[.]126) sin contraseña. Dentro había aproximadamente 800 MB en 434 archivos: webshells, scripts de explotación, resultados de escaneo, el historial de comandos del operador y configuraciones de comando y control. Ctrl-Alt-Intel también había analizado el mismo directorio, encontrándolo en la plataforma Hunt.io, y publicó el 22 de junio, semanas antes del informe de SOCRadar del 9 de julio. La exposición se debió a un error básico: el operador inició un servidor web Python simple para mover archivos y lo dejó funcionando durante 22 días.

El grupo tomó vulnerabilidades públicas en plugins de sitios web, la mayoría en WordPress, y creó escáneres automatizados para ejecutar esos exploits contra listas masivas de objetivos obtenidas de FOFA, un motor de búsqueda chino para sistemas conectados a internet. Cuando un sitio ejecutaba una versión vulnerable, el exploit podía cargar una webshell: un pequeño script que permite al atacante ejecutar comandos en el servidor, leer archivos, robar contraseñas y moverse por la red.

El conjunto de herramientas cubría 27 vulnerabilidades conocidas, aunque unas pocas hicieron la mayor parte del trabajo. La que más produjo fue una vulnerabilidad en el plugin Breeze (CVE-2026-3844), que el grupo lanzó contra más de 45,000 objetivos y, según su propio recuento, infectó a más de 17,000. Esta vulnerabilidad tiene una salvedad: solo funciona cuando está activa la opción no predeterminada 'Host Files Locally – Gravatars', por lo que la mayoría de las instalaciones de Breeze nunca estuvieron expuestas.

Las cifras en términos claros

La cifra principal necesita una aclaración. El recuento de 1,4 millones es cuántos dominios estaban en las listas de objetivos, no cuántos fueron violados, y esas listas abarcaban WordPress, Joomla y otras plataformas. El archivo más grande era una lista de 587,034 objetivos de Joomla. El número realmente comprometido fue mucho menor, y los dos equipos de investigación lo midieron de manera diferente: Ctrl-Alt-Intel encontró 25,195 sitios con evidencia de compromiso confirmada o validada, mientras que SOCRadar, contando webshells activas, situó la cifra en más de 5,700.

Una vulnerabilidad muestra la diferencia claramente: un error de Joomla se lanzó contra más de 560,000 objetivos pero solo infectó a 77. Estar en la lista de escaneo de alguien no es lo mismo que ser hackeado. Tenlo en cuenta cuando un informe encabece con una cifra de objetivos aterradora.

Las herramientas y una campaña anterior

La puerta trasera principal, un archivo llamado down.php, estaba fuertemente ofuscada, con cuatro capas de profundidad, y parece derivar de una webshell china de código abierto llamada BestShell. Una vez activa, podía gestionar archivos, ejecutar comandos, abrir shells inversos, escanear la red y comprobar qué software de seguridad ejecutaba el anfitrión. Para su acceso remoto, el grupo usó un dropper SNOWLIGHT para instalar VShell, una puerta trasera sigilosa que disfraza su nombre de proceso como [kworker/0:2] para mezclarse con los hilos del kernel.

Estas dos herramientas tienen historia: en abril de 2025, Sysdig vinculó esta cadena SNOWLIGHT a VShell con el presunto grupo estatal chino UNC5174. Sin embargo, VShell en sí es una herramienta común en círculos criminales de habla china, por lo que su presencia por sí sola no apunta a un actor estatal. El servidor también contenía rastros de un trabajo anterior muy diferente. SOCRadar encontró que antes de la ruidosa campaña contra WordPress, el mismo grupo realizó una campaña más silenciosa a principios de mayo de 2026 contra sistemas Java corporativos. Obtuvo 613 archivos de configuración de 11 sistemas en nueve empresas de fintech, comercio electrónico, logística, juegos y electrónica.

El botín incluía claves de inicio de sesión en la nube para AWS, Alibaba Cloud, Oracle, Tencent y DigitalOcean, contraseñas de bases de datos y claves privadas RSA de Alipay. Se basó en una vulnerabilidad antigua y conocida en Nacos (CVE-2021-29441), que permite al atacante saltarse el inicio de sesión falsificando una única cabecera web. SOCRadar interpreta la secuencia como: primero obtener credenciales corporativas de alto valor, y semanas después pasar al trabajo de puertas traseras de alto volumen, una ronda de financiación antes de escalar.

Técnicas descuidadas

Ambos equipos evalúan con confianza media-alta que el operador es chino o de habla china. Señalan el chino simplificado fluido en todo el código y el historial de comandos, la dependencia de FOFA (que requiere un número de teléfono chino para registrarse) y las herramientas Godzilla y VShell favorecidas en foros de habla china. SOCRadar va más allá y considera que el grupo está motivado financieramente, no dirigido por un estado. Los nombres en los archivos (tance, chen-kk, chenyk) se tratan como pistas sueltas, no pruebas.

Un cabo suelto destaca: una única dirección IP en Taiwán realizó más de 42,000 solicitudes descargando las propias herramientas del grupo. Podría ser un segundo operador, un cliente u otro investigador. Los registros no pueden resolverlo. Para un grupo con una cadena de herramientas realmente capaz, el equipo fue descuidado. Dejó el servidor abierto, dejó un archivo de configuración de FOFA que FOFA puede rastrear a través de su canal de aplicación de la ley, y dejó un historial de comandos sin editar que lo exponía todo. Cuando finalmente notó que había sido detectado, entre el 2 y el 4 de julio, eliminó un lote de líneas de registro. Tres semanas demasiado tarde.

El error es familiar. En marzo de 2026, el mismo equipo de investigación descubrió a Fancy Bear (APT28) de Rusia de la misma manera: un directorio abierto olvidado derramó las herramientas de phishing y los registros del grupo, en una campaña que Hunt.io llamó Operation Roundish.

Qué hacer ahora

Si usas alguno del software objetivo, revísalo hoy. No son errores oscuros: dos de ellos están siendo explotados activamente en otros lugares. Wordfence rastreó decenas de miles de ataques bloqueados contra la vulnerabilidad de Everest Forms Pro (CVE-2026-3300) esta primavera, y el error de Joomla JCE (CVE-2026-48907) es de severidad máxima y ha sido añadido por CISA a su lista de vulnerabilidades explotadas conocidas.

  • WordPress y Joomla, primero: parchea Breeze (CVE-2026-3844, corregido en 2.4.5) si la opción no predeterminada 'Host Files Locally – Gravatars' está activada; fue la que más puertas traseras produjo aquí. Trata también como urgente el error de Joomla JCE (CVE-2026-48907, corregido en 2.9.99.5), ya que es de severidad máxima y está en la lista de explotación activa de CISA, aunque apenas impactó en esta campaña.
  • WordPress y Joomla, revisa también: ThemeREX Addons (CVE-2026-1969), Simple File List (CVE-2020-36847), Custom CSS JS PHP (CVE-2026-6433), BerqWP (CVE-2025-7443), Ninja Forms uploads (CVE-2026-0740), WavePlayer (CVE-2025-12057), WPBookit (CVE-2025-7852) y WP File Manager (CVE-2020-25213). Ambos informes listan Simple File List bajo CVE-2025-34085, un duplicado rechazado; el ID válido es CVE-2020-36847.
  • Nacos: actualiza a 2.2.1 o posterior y activa la autenticación (nacos.core.auth.enabled=true). Si tu instancia estuvo expuesta alguna vez, rota cada credencial que residiera en ella, no solo las obvias.
  • XXL-Job y Spring Boot: cierra los endpoints de ejecutor no autenticados y deshabilita /actuator/heapdump en producción.
  • Busca las puertas traseras: busca los patrones de nombres de archivo webshell del grupo, como .bd.php, .wp-log.php y .brq-*.php. Luego verifica cualquier proceso llamado [kworker/X:Y]. Un hilo real del kernel no ejecuta ningún programa propio, por lo que su /proc/<pid>/exe apunta a nada. Tampoco tiene línea de comandos ni sockets de red. Un [kworker] que muestre algo de esto es un impostor. Bloquea la infraestructura conocida: 137.175.93[.]126, 43.108.17[.]80 y el dominio xs.xxooonline[.]eu[.]cc.

Lo que hace que WP-SHELLSTORM merezca atención no es lo avanzado que es, sino lo común. Exploits públicos, escaneo automatizado y una lista de objetivos de un millón de líneas fueron suficientes para comprometer sitios a gran escala, sin necesidad de un día cero. Los detalles son públicos solo porque el grupo olvidó cerrar su propio servidor.

Cybersecurity
Cybersecurity
Cybersecurity
Cybersecurity

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *