Este repositorio contiene una prueba de concepto (PoC) para la vulnerabilidad CVE-2024-37081 en VMware vCenter.
La vulnerabilidad se debe a una mala configuración en el archivo /etc/sudoers
que permite la preservación de variables ambientales peligrosas al ejecutar comandos sudo
.
Esto puede ser aprovechado por atacantes para ejecutar comandos arbitrarios con privilegios de root.
Vulnerabilidad
- ID: CVE-2024-37081
- Descripción: La mala configuración del parámetro
Defaults env_keep
en el archivo/etc/sudoers
permite la propagación de variables ambientales peligrosas (PYTHONPATH
,VMWARE_PYTHON_PATH
,VMWARE_PYTHON_BIN
, etc.) durante la ejecución de comandossudo
, lo que posibilita la ejecución de código arbitrario con privilegios de root. - Usuarios/Gruppos Afectados:
%operator
(grupo)%admin
(grupo)infraprofile
(usuario)vpxd
(usuario)sts
(usuario)pod
(usuario)
Requisitos
- Python 3.x
- Permisos de sudo
Instrucciones
- Clona este repositorio:
git clone https://github.com/Mr-r00t11/CVE-2024-37081.git
cd CVE-2024-37081
2. Ejecuta el script PoC:
python3 poc.py
Contenido Del Repositorio
poc.py
: Script en Python que demuestra la explotación de la vulnerabilidad.README.md
: Este archivo.
Detalles Del Script
El script poc.py
realiza los siguientes pasos:
- create_malicious_code(): Crea un archivo Python malicioso en el directorio
/tmp/malicious/__init__.py
que ejecuta el comandoid
y guarda la salida en/tmp/pwned
. - execute_with_pythonpath(): Establece la variable ambiental
PYTHONPATH
a/tmp/malicious
y ejecuta un comando sudo para importar un módulo Python como el usuariooperator
. - execute_with_vmware_python_path(): Similar a
execute_with_pythonpath()
, pero usa la variable ambientalVMWARE_PYTHON_PATH
y ejecuta el comando como el usuariopod
. - execute_with_vmware_python_bin(): Crea un script shell malicioso, establece la variable ambiental
VMWARE_PYTHON_BIN
a este script, y ejecuta un comando sudo como el usuarioadmin
. - execute_with_sendmail(): Ejecuta un comando sudo como el usuario
vpxd
para leer el archivo/etc/shadow
usandosendmail
. - check_exploit_success(): Verifica si el archivo
/tmp/pwned
ha sido creado, lo que indicaría que el código malicioso se ejecutó con éxito.
Notas De Seguridad
Este script debe usarse únicamente en un entorno controlado y con fines educativos. La explotación de vulnerabilidades en sistemas sin autorización es ilegal y está penada por la ley.
Asegúrate de tener permisos adecuados y de comprender completamente las implicaciones de ejecutar este tipo de código.