
Exploit PoC de ACE para glibc cpio 2.13 mediante corrupción de metadatos de chunk mmap (CVE-2021-38185)
Esta es una POC (Prueba de Concepto) de tipo ACE (Ejecución de Código Arbitrario) de un error de desbordamiento de enteros en cpio. Este exploit evita todas las protecciones binarias excepto RELRO completo. Este exploit usa cpio 2.13 y libc 2.31. Video demo: https://youtu.be/F0yKJhu7Vak
Hemos proporcionado un Dockerfile de Kali para ejecutar el exploit. El mismo exploit debería funcionar fuera del contenedor Docker, pero los offsets pueden ser diferentes.
sudo docker build -t cpiopwn .sudo docker run --mount type=bind,source=$(pwd),destination=/cpiopwn -it cpiopwn /bin/bashcd cpiopwndocker_fengshui.py y llamará a cpio con un gran número de argumentos de línea de comandos.
python3 exploit.py¡Y eso es todo! Después de construir el archivo de patrón malicioso, aparecerá un prompt y comenzará a procesar comandos después de un poco de tiempo.
El exploit puede tardar alrededor de un minuto después de que aparezca el prompt antes de empezar a responder a los comandos. Hemos proporcionado un video de su ejecución para mostrar lo que debería suceder.
Adicionalmente, el exploit puede funcionar solo en computadoras con al menos 12 GB de RAM, ya que obliga a cpio a leer gigabytes de entrada. Tuvimos algunos problemas con servidores quedándose sin RAM con versiones anteriores del exploit; la versión actual ha sido probada en computadoras con 12 y 16 GB de RAM, pero no en las más pequeñas.
|\__/,| (`\
_.|o o |_ ) )
-(((---(((--------