Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-5736-Custom-Runtime — CVE-2019-5736 implementado en un runtime de contenedores escrito a medida para comprender el exploit. | Kitploit
Herramientas/GitHubGitHub/giverofgifts/cve-2019-5736-custom-runtime
Análisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónEscape de ContenedoresExplotación de Binarios
GitHubgiverofgifts/cve-2019-5736-custom-runtime

CVE-2019-5736-Custom-Runtime

CVE-2019-5736 implementado en un runtime de contenedores escrito a medida para comprender el exploit.

Ver Repositorio
14hace 6 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2019-5736-Custom-Sandbox

General

CVE-2019-5736 implementado usando un runtime de contenedores sencillo y propio para entender el exploit.

El exploit se basa en el runc-poc de twistlock (y casi todo está copiado de él): https://github.com/twistlock/RunC-CVE-2019-5736/tree/master/malicious_image_POC

Runtime de contenedor (quarantine)

Consulta la documentación del código para más detalles.

root@kitploit:~
Usage: quarantine [OPTIONS] [BINARY and its ARGS]

--rootfs: (mandatory) Specify a rootfs for the container.
--urange: Specify a urange start_host:end_host,start_guest.
--grange: Specify a grange start_host:end_host,start_guest.
--uid:    Specify the desired UID in the container.
--ugd:    Specify the desired GID in the container.
--supp:   Append supplementary groups from the specified grange to the process running in the container.

Desvincula (unshare) todos los namespaces excepto el namespace de usuario. El namespace de usuario se desvincula (unshare) bajo circunstancias especiales, es decir, cuando se especifican urange, , y/o .

grange
uid
gid

Configuración para el exploit

Esto fue probado y realizado en Ubuntu 18.04.

  1. Obtén un rootfs (por ejemplo, bionic)
    • mkdir rootfs
    • sudo debootstrap bionic ./rootfs
  2. Obtén el código fuente de libcap
    • git clone https://github.com/mhiramat/libcap
  3. Modifica libcap
    • cat exploit_code_for_shared_lib.c >> <any cap*.c, I used cap_alloc.c>
    • make
  4. Haz chroot en el rootfs e instala libcap-dev para poder enlazar simplemente con el libcap.so modificado
    • sudo chroot rootfs
    • apt install libcap-dev
  5. Copia el archivo libcap.so.2.25 creado en el directorio adecuado del rootfs -sudo cp libcap.so.2.25 rootfs/lib/x86_64-linux-gnu
    • Nota: En mi caso, ya había un enlace simbólico que apuntaba exactamente a esa versión del archivo libcap, así que no tuve que crearlo.
    • Nota: Esta ruta puede cambiar; mira siempre dónde espera el quarantine compilado que esté libcap: ldd quarantine
  6. Compila y copia los otros archivos en el rootfs
    • sudo cp shebang_exploit rootfs/
    • sudo gcc -o rootfs/root/payload payload.c
    • sudo gcc -o rootfs/overwrite_sndbx_runtime overwrite_sndbx_runtime.c

Ejecutar el exploit

Por ejemplo: sudo ./quarantine --rootfs rootfs /shebang_exploit o ./quarantine --rootfs rootfs --uid 1 /shebang_exploit.

Funciona siempre que conserves CAP_DAC_OVERRIDE o CAP_SYS_ADMIN en el host, es decir, no hagas unshare del namespace de usuario al usar sudo (ya que esto elimina las capabilities en el namespace padre), o que poseas el archivo en el host.

Descargar herramienta