
Laboratorio pratico che riproduce la CVE-2019-11043, una RCE di PHP-FPM dietro nginx, dimostrando la persistenza tramite reverse tunnel, l'analisi forense della memoria e l'analisi del traffico di rete.
Nell'ottobre 2019, i ricercatori Emil Lerner e Andrew Danau del Debian Security Advisory hanno pubblicato un avviso per mettere in guardia la community Debian su una vulnerabilità critica in PHP-FPM. A causa di una validazione insufficiente nel codice di gestione dei percorsi di PHP-FPM, gli attaccanti potevano manipolare richieste appositamente costruite per ottenere esecuzione arbitraria di codice remoto in determinate configurazioni NGINX + PHP-FPM.
Questo laboratorio dimostra lo sfruttamento di:
Una vulnerabilità che colpisce PHP-FPM in esecuzione dietro NGINX che, quando innescata, può consentire agli attaccanti di eseguire codice arbitrario e stabilire una persistenza tramite tunneling inverso.
Il progetto ricrea un ambiente vulnerabile, esegue la catena di exploit e valuta come gli avversari ottengono la persistenza tramite tecniche di tunneling in scenari reali.
Questa catena d'attacco si allinea direttamente con diverse tecniche MITRE ATT&CK ad alto impatto:
| MITRE ID | Nome Tecnica |
|---|---|
| T1071 | Tunneling a livello applicativo |
| T1572 | Tunneling di protocollo |
| T1090 | Proxy / Reverse Proxy |
| T1505 | Componenti lato server (PHP-FPM) |
| T1574 | Dirottamento del flusso di esecuzione |
Il tunneling inverso per la persistenza è una TTP (Tattica, Tecnica, Procedura) ad alta frequenza usata da gruppi APT, botnet e operatori di ransomware. PHP-FPM rimane ampiamente distribuito negli ambienti di produzione e le configurazioni errate sfruttate da CVE-2019-11043 sono ancora osservate nel mondo reale.
Non sono astrazioni teoriche — rispecchiano esattamente i comportamenti documentati in campagne di sfruttamento attive che coinvolgono attori statali e gruppi ransomware.
Anche se CVE-2019-11043 ha diversi anni, la vulnerabilità continua a essere rilevante a causa delle seguenti realtà della sicurezza moderna:
Le applicazioni PHP legacy sono ancora ovunque. Molte organizzazioni continuano a eseguire stack PHP 5.x/7.x obsoleti a causa di dipendenze applicative web a lungo termine, debito tecnico o timore di rompere i sistemi di produzione. Questi ambienti restano spesso senza patch e vulnerabili.
NGINX + PHP-FPM è una delle architetture di hosting più comuni al mondo. Questo rende le vulnerabilità in PHP-FPM estremamente attraenti per gli attaccanti che cercano superfici di attacco ampie e di lunga durata.
Il tunneling inverso è una tecnica di persistenza fondamentale nelle minacce moderne. Gruppi come Lazarus, APT29, FIN11 e numerosi operatori di ransomware usano tunnel SSH inversi, tunnel WebSocket e persino reverse shell basate su PHP per mantenere un accesso a lungo termine senza fare affidamento su porte in ingresso esposte.
Le configurazioni errate restano la causa #1 delle violazioni. Anche quando le patch esistono, i blocchi NGINX "location" configurati male e le variabili PATH_INFO scarsamente validate continuano a esporre gli ambienti allo sfruttamento.
I kit di automazione degli exploit hanno ancora come bersaglio questa CVE. Strumenti come scanner automatizzati, botnet e malware IoT sondano regolarmente configurazioni PHP-FPM vulnerabili perché l'exploit porta a un'esecuzione di codice affidabile.
Gli ambienti cloud stanno espandendo la superficie d'attacco. Contenitori poco sicuri, configurazioni di hosting condiviso e immagini Docker obsolete contengono spesso versioni PHP-FPM senza patch, portando a un rapido movimento laterale nelle reti cloud.
Gli attaccanti amano i "frutti a portata di mano" (low hanging fruit). Una vulnerabilità che consente esecuzione remota di codice + persistenza tramite tunnel con competenze minime richieste resterà sempre un bersaglio di alto valore.
Nel panorama delle minacce odierno, dove accesso persistente, tunneling furtivo e debolezze della supply chain dominano i titoli della cybersecurity, comprendere e dimostrare come viene sfruttata CVE-2019-11043 fornisce una visione critica sui modelli di attacco moderni e sulle lacune difensive.
L'obiettivo di questo laboratorio era simulare uno sfruttamento reale di CVE‑2019‑11043, una vulnerabilità critica di esecuzione remota di codice che colpisce PHP‑FPM dietro nginx in determinate configurazioni. L'obiettivo era analizzare la vulnerabilità, riprodurre l'exploit in un ambiente virtuale controllato e dimostrare i rischi associati a un'infrastruttura web configurata in modo errato.
Sono state usate due macchine virtuali: entrambe con nome utente username e password password.
| Ruolo | Macchina | Indirizzo IP | Scopo |
|---|---|---|---|
| Target / Vittima | Ubuntu Server | 192.168.56.102 | Server PHP-FPM vulnerabile con CVE-2019-11043 |
| Attaccante | Ubuntu Server | 192.168.56.103 | Esegue exploit, reverse shell e persistenza |
Aggiorna apt
sudo apt update && sudo apt -y upgrade
Creazione del contenitore per l'exploit della vulnerabilità.
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
Aggiorna Apt e installa pacchetti base di php, python e altri