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.
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 comandos sudo
, lo que posibilita la ejecución de código arbitrario con privilegios de root.%operator
(grupo)%admin
(grupo)infraprofile
(usuario)vpxd
(usuario)sts
(usuario)pod
(usuario)git clone https://github.com/Mr-r00t11/CVE-2024-37081.git
cd CVE-2024-37081
2. Ejecuta el script PoC:
python3 poc.py
poc.py
: Script en Python que demuestra la explotación de la vulnerabilidad.README.md
: Este archivo.El script poc.py
realiza los siguientes pasos:
/tmp/malicious/__init__.py
que ejecuta el comando id
y guarda la salida en /tmp/pwned
.PYTHONPATH
a /tmp/malicious
y ejecuta un comando sudo para importar un módulo Python como el usuario operator
.execute_with_pythonpath()
, pero usa la variable ambiental VMWARE_PYTHON_PATH
y ejecuta el comando como el usuario pod
.VMWARE_PYTHON_BIN
a este script, y ejecuta un comando sudo como el usuario admin
.vpxd
para leer el archivo /etc/shadow
usando sendmail
./tmp/pwned
ha sido creado, lo que indicaría que el código malicioso se ejecutó con éxito.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.
Introduction to the Model Context Protocol (MCP) The Model Context Protocol (MCP) is an open…
While file extensions in Linux are optional and often misleading, the file command helps decode what a…
The touch command is one of the quickest ways to create new empty files or update timestamps…
Handling large numbers of files is routine for Linux users, and that’s where the find command shines.…
Managing files and directories is foundational for Linux workflows, and the mv (“move”) command makes it easy…
Creating directories is one of the earliest skills you'll use on a Linux system. The mkdir (make…