# Безопасность систем Linux ###### tags: `PT 2nd stage` # Priveege escalation Въезжаем на тачку ![](https://i.imgur.com/OeqXjSm.png) *линпиасом пользоваться нельзя, поэтому пользуемся линписаом, только ручками.* пользуемся чек листом https://book.hacktricks.xyz/linux-hardening/linux-privilege-escalation-checklist https://book.hacktricks.xyz/linux-hardening/privilege-escalation ## Самое интересное - проверим файл sudoers, вдруг там есть привелигерованный vim или find. Не повезло, доступа нет ![](https://i.imgur.com/vASL5cr.png) ## Проверим версию системы. ![](https://i.imgur.com/epkhWRY.png) На машине стоит ubuntu 15го года. 7 лет - разница большая, с большой вероятностью у неё есть изъяны. Поищем эксплойты на эту версию ``` searchsploit "Linux Kernel" ``` ![](https://i.imgur.com/WWldmoq.png) Похоже DirtyPipe как раз то, что нужно. [![](https://i.imgur.com/bST8OyS.png)](https://dirtypipe.cm4all.com/) Эксплойт изменяет /etc/passwords и затирает пароль root, благодаря чему кто угодно может выполнять команды от его имени. Находим эксплойт https://github.com/0xIronGoat/dirty-pipe клонируем ![](https://i.imgur.com/B9M3ycN.png) следуем инструкции. Пробуем скомпилить файл о обнаруживаем, что на машине нет компиляторов. Зато на машине есть питон. Нашёл тот же эксплойт, но на питон. https://github.com/crusoe112/DirtyPipePython ![](https://i.imgur.com/zuKDJc7.png) Сплойт не работает ![](https://i.imgur.com/0NE2kOG.png) ***Хоть мне и не удалось повторить эксплойт, но версия ядра точно уязвима. Следует как можно скорее обновить его.*** ## Проверяем cron и at ![](https://i.imgur.com/Ga6maCZ.png) рутовый скрипт мы изменить не можем. Везде стоит опция test, значит крон только притворяется, что что-то запускает. ## проверяем PATH ![](https://i.imgur.com/WKPsSda.png) ![](https://i.imgur.com/n0Ye4LK.png) ## Посмотрим, какие сервисы работают на машине ![](https://i.imgur.com/yEb5P0J.png) ![](https://i.imgur.com/HocQI2F.png) nginx работает, проверим что в вебе. ничего. ![](https://i.imgur.com/ybSwwLu.png) ![](https://i.imgur.com/rVRh55p.png) Попробуем найти .service файл, в который можно будет что-то записать. ```console find / -name "*.service" 2>/dev/null -exec ls -l {} \; | grep -v "[-]>" ``` Нашлось! ![](https://i.imgur.com/8n8aycV.png) Теперь мы можем запустить любой скрипт от имени рута после перезагрузки mysql сервера. создадим такой скрипт. ![](https://i.imgur.com/YwUgAsy.png) ```console cp /bin/bash /home/petya/bash; chmod +s /home/petya/bash; chmod 777 /home/petya/bash ``` Если скрипт выполнится, то в домашней директории появится копия рутовского баша, которую кто угодно может выполнить с правами владельца. Теперь отредактируем mysql.service так, чтобы при запуске сервиса запускался наш скрипт. ![](https://i.imgur.com/eQ2RFBa.png) изменения успешно записаны ![](https://i.imgur.com/RMv8tkl.png) пробуем ребутнуть машину. ![](https://i.imgur.com/zFg1Y1D.png) нужен рут. Значит придётся ждать, пока машина перезагрузится. ***Эта уязвимость исправляется довольно просто: следует изменить права доступа к .service файлам так, чтобы доступ к ним имели только администраторы (например chmod 775)*** ## Проверим версию sudo ![](https://i.imgur.com/Hkufm2O.png) Версия вышла в январе этого года, эксплойтов пока нет. ## Enumerating binaries ![](https://i.imgur.com/7IUWWBJ.png) ## Посмотрим процессы ```console ps auxf ``` ![](https://i.imgur.com/ETZdAd5.png) ![](https://i.imgur.com/9ej9TtN.png) Ничего интересного в глаза не бросается. ## Generic Enumeration кто я? ![](https://i.imgur.com/vSgPmoV.png) юзеры с консолью ![](https://i.imgur.com/1g6DaSs.png) ## Что я могу сделать с правами root ![](https://i.imgur.com/xTsU3ZU.png) пробуем сделать ребут, а его нет! ![](https://i.imgur.com/X9Fcw8L.png) Если файла нет, попробуем сделать свой ![](https://i.imgur.com/S3HHo6Q.png) нет доступа :( ## Script/Binaries in PATH ![](https://i.imgur.com/G6kWTPY.png) ## Проверим права на домашнюю дирокторию ![](https://i.imgur.com/CzNgXeL.png) всё ок # Meme rubric ![](https://i.imgur.com/Xk4lBV1.png)