
Laboratório prático reproduzindo CVE-2019-11043 PHP-FPM RCE por trás de nginx, demonstrando persistência por túnel reverso, forense de memória e análise de tráfego de rede.
Em outubro de 2019, os pesquisadores do Debian Security Advisory Emil Lerner e Andrew Danau publicaram um aviso alertando a comunidade Debian sobre uma vulnerabilidade crítica no PHP-FPM. Devido à validação insuficiente no código de tratamento de caminho do PHP-FPM, atacantes poderiam manipular requisições especialmente elaboradas para alcançar execução remota arbitrária de código sob determinadas configurações de NGINX + PHP-FPM.
Este laboratório demonstra a exploração de:
Uma vulnerabilidade que afeta o PHP-FPM executado atrás do NGINX que, quando acionada, pode permitir que atacantes executem código arbitrário e estabeleçam persistência por meio de tunelamento reverso.
O projeto recria um ambiente vulnerável, executa a cadeia de exploração e avalia como adversários alcançam persistência por meio de técnicas de tunelamento em cenários do mundo real.
Esta cadeia de ataque está diretamente alinhada com várias técnicas de alto impacto da MITRE ATT&CK:
| MITRE ID | Technique Name |
|---|---|
| T1071 | Application Layer Tunneling |
| T1572 | Protocol Tunneling |
| T1090 | Proxy / Reverse Proxy |
| T1505 | Server-Side Components (PHP-FPM) |
| T1574 | Hijacking Execution Flow |
O tunelamento reverso para persistência é um TTP de alta frequência (Tática, Técnica, Procedimento) usado por grupos APT, botnets e operadores de ransomware. O PHP-FPM continua amplamente implantado em ambientes de produção, e as más configurações exploradas pela CVE-2019-11043 ainda são observadas na natureza.
Não se trata de abstrações teóricas — elas refletem exatamente os comportamentos documentados em campanhas ativas de exploração envolvendo atores estatais e grupos de ransomware.
Mesmo que a CVE-2019-11043 tenha vários anos, a vulnerabilidade continua relevante devido às seguintes realidades modernas de segurança:
Aplicações PHP legadas ainda estão em toda parte. Muitas organizações continuam executando pilhas desatualizadas de PHP 5.x/7.x devido a dependências de aplicações web de longo prazo, dívida técnica ou medo de quebrar sistemas em produção. Esses ambientes muitas vezes permanecem sem correção e vulneráveis.
NGINX + PHP-FPM é uma das arquiteturas de hospedagem mais comuns do mundo. Isso torna as vulnerabilidades no PHP-FPM extremamente atraentes para atacantes que procuram superfícies de exploração grandes e duradouras.
O tunelamento reverso é uma técnica central de persistência em ameaças modernas. Grupos como Lazarus, APT29, FIN11 e numerosos operadores de ransomware usam túneis SSH reversos, túneis WebSocket e até reverse shells baseadas em PHP para manter acesso de longo prazo sem depender de portas de entrada expostas.
As más configurações continuam sendo a causa nº 1 de violações. Mesmo quando existem correções, blocos “location” do NGINX mal configurados e variáveis PATH_INFO mal validadas continuam expondo ambientes à exploração.
Kits de automação de exploits ainda têm como alvo esta CVE. Ferramentas como scanners automatizados, botnets e malware de IoT sondam rotineiramente configurações vulneráveis de PHP-FPM porque o exploit resulta em execução confiável de código.
Os ambientes de nuvem estão expandindo a superfície de ataque. Contêineres mal protegidos, configurações de hospedagem compartilhada e imagens base Docker desatualizadas frequentemente contêm versões sem correção do PHP-FPM, levando a movimentação lateral rápida dentro de redes em nuvem.
Os atacantes adoram "fruta fácil". Uma vulnerabilidade que permite execução remota de código + persistência baseada em túnel com o mínimo de habilidade exigida sempre permanecerá um alvo de alto valor.
No atual cenário de ameaças, onde acesso persistente, tunelamento furtivo e fraquezas na cadeia de suprimentos dominam as manchetes de segurança cibernética, entender e demonstrar como a CVE-2019-11043 é explorada fornece uma visão crítica sobre os padrões modernos de ataque e lacunas defensivas.
O objetivo deste laboratório foi simular uma exploração no mundo real da CVE-2019-11043, uma vulnerabilidade crítica de execução remota de código que afeta o PHP-FPM atrás do nginx em determinadas configurações. A meta foi analisar a vulnerabilidade, reproduzir o exploit em um ambiente virtual controlado e demonstrar os riscos associados à infraestrutura web mal configurada.
Duas máquinas virtuais foram usadas: ambas com nome de usuário username e senha password.
| Função | Máquina | Endereço IP | Finalidade |
|---|---|---|---|
| Alvo / Vítima | Ubuntu Server | 192.168.56.102 | Servidor PHP-FPM vulnerável executando CVE-2019-11043 |
| Atacante | Ubuntu Server | 192.168.56.103 | Executa exploit, reverse shell e persistência |
Atualize o apt
sudo apt update && sudo apt -y upgrade
Criando o container para o exploit da vulnerabilidade.
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
Atualize o Apt e instale php, python e pacotes básicos adicionais