Existen vulnerabilidades de nivel de kernel para una variedad de versiones del kernel de Linux. Un ejemplo muy conocido es Dirty COW (CVE-2016-5195). Estas vulnerabilidades aprovechan las vulnerabilidades del kernel para ejecutar código con privilegios de root. Es muy común encontrar sistemas que son vulnerables a vulnerabilidades del kernel. Puede resultar difícil realizar un seguimiento de los sistemas antiguos, y pueden quedar excluidos de la aplicación de parches debido a problemas de compatibilidad con determinados servicios o aplicaciones.
La escalada de privilegios mediante un exploit del kernel puede ser tan sencilla como descargarlo, compilarlo y ejecutarlo. Algunos de estos exploits funcionan de inmediato, mientras que otros requieren modificaciones. Una forma rápida de identificar los exploits es emitir el comando uname -ay buscar la versión del kernel en Google.
Nota: Las vulnerabilidades del kernel pueden causar inestabilidad en el sistema, por lo que se debe tener cuidado al ejecutarlas en un sistema de producción.
Explotación del kernel
Comencemos por verificar el nivel del kernel y la versión del sistema operativo Linux.
afsh4ck@htb$ uname -a
Linux NIX02 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Podemos ver que estamos en Linux Kernel 4.4.0-116 en una caja Ubuntu 16.04.4 LTS. Una búsqueda rápida en Google de "PoC" linux 4.4.0-116-generic exploit nos muestra este exploit. A continuación, lo descargamos al sistema mediante wget u otro método de transferencia de archivos. Podemos compilar el código del exploit mediante gcc y configurar el bit ejecutable mediante chmod +x.