Зачем? Статистика не врет – бо́льшая часть проломов с внешки начинается с дырявого веба. Веб же, в основном, крутится на *NIX-ах, и чаще всего, на
sudo -l правила найти удается далеко не всегда, а залутаться от рута ой как хочется. Следовательно, если сходу не взлетает PwnKit, linPEAS (по секрету) запускать никто не будет, ведь ядерным сплоитом проще и быстрее.Однако, предвосхищая контраргументы на тему небезопасности их применения, ядерные уязвимости требуют бережного использования в проде. Обычно под этим подразумевается предварительное тестирование оных на подготовленном стенде с продовым сетапом (ревизия ОС, версия ядра). На примере Убунты покажем, как быстро задеплоить такой стенд.
1. Смотрим ОС и ядро на таргете:
$ cat /etc/os-release2. Идем на old-releases.ubuntu.com и хватаем нужный ISO-шник торрентом, разворачиваем на ВМ.
$ uname -a
3. Меняем репозитории системных пакетов на архивные:
$ sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
$ sudo apt-get update
4. Накатываем нужное ядро:$ sudo apt-get install linux-image-$(uname -r)5. Правим настройки GRUB, чтобы при загрузке иметь возможность свичнуть ядро:
$ gksudo gedit /etc/default/grub6. Ставим метапакеты компиляции и gcc-multilib на случай, если древний сплоит будет собираться с
--> GRUB_TIMEOUT=-1
--> #GRUB_HIDDEN_TIMEOUT=0
$ sudo update-grub
$ sudo reboot # (on boot select the kernel from "Previous Linux versions")
-m32:$ sudo apt-get install build-essential gcc-multilibВ среднем процесс занимает не более 15 минут вместе с загрузкой образа и адаптацией команд выше под тестируемый дистрибутив.
P. S. Если версия ОСи достаточно старая, чтобы libssl не дал скачать сорцы с Гитхаба с помощью wget/curl (i. e., не поддерживает хотя бы TLSv1.2), репозитории можно клонировать, отключив в клиенте гита проверку SSL-ей (для гетов/курлов такое не прокатит – все равно обосрутся):
$ export GIT_SSL_NO_VERIFY=1
$ git clone https://github.com/<EXP_AUTHOR>/<EXP_REPO>