Показаны сообщения с ярлыком повышение привилегий. Показать все сообщения
Показаны сообщения с ярлыком повышение привилегий. Показать все сообщения

вторник, 26 ноября 2019 г.

Повышение привилегий: systemctl (некорректные права доступа для sudo/SUID).


 Systemctl в linux системах используется для запуска различных служб, таких как apache, bind9 и любой другой. Из-за того уровня возможностей, который systemctl может оказать на систему, он обычно зарезервирован для использования только привилегированным пользователям, таким как системный администратор(root). В некоторых случаях, когда права для запуска systemctl настроенные неверно это можно использовать для повышения привилегий. Для примера, там где настройки в /etc/sudoers файле разрешают пользователям с низким уровнем доступа выполнять systemctl с правами root, или SUID systemctr настроен с правами разрешающими пользователям с низким уровнем доступа запускать его.

Создание system unit files.

 

 Первое что необходимо сделать – создать system unit file где systemctl ссылается на запуск сервиса. Формат такого файла хорошо описан на сайте RedHat: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files
На целевой системе необходимо найти директорию с доступом на запись и сохранить там созданный unit file. В моем случае я использую пользовательскую директорию, назвав файл root.service. Содержание файла:
https://miro.medium.com/max/1438/1*cr6cGCsiyKh6xxB7XaBYCA.png
 Обратите внимание на параметр User, значение этого параметра устанавливает с правами какого пользователя systemctl запустит описываемый сервис. Моя цель получить root, для чего указан соответствующий пользователь. В параметре ExecStart указываем наш payload. Я использую bash реверс шелл.

Запуск payload.

Всё что нам необходимо сделать, это включить созданный нами сервис root.service и запустить его:
https://miro.medium.com/max/2232/1*rQDlk5KWmzDlbd5LPZnzUQ.png 
 После того как сервис запустился, мы можем подключиться к целевой системе и увидим, bash окружение работает из под root:
https://miro.medium.com/max/1764/1*wsTv_UgeZdxexrz4DK9PCQ.png

понедельник, 6 ноября 2017 г.

Обход ограничений выполнения команд Linux.

Обход ограничения на выполнение ls или отсутствие ls:

yar1k@zero:~$ echo /home/yar1k/Downloads/*
/home/yar1k/Downloads/2000 Eighth Star (lossless) /home/yar1k/Downloads/CentOS-7-x86_64-DVD-1611.iso /home/yar1k/Downloads/debian-8.7.0-i386-CD-1.iso /home/yar1k/Downloads/firefox /home/yar1k/Downloads/HackDay-Albania.ova /home/yar1k/Downloads/kali-linux-xfce-2016.2-amd64 /home/yar1k/Downloads/mrRobot.ova /home/yar1k/Downloads/photo_2017-02-20_09-37-15.jpg /home/yar1k/Downloads/SkyDogConCTF2016VBoxV10.ova /home/yar1k/Downloads/Telegram Desktop /home/yar1k/Downloads/tor-browser_en-US
yar1k@zero:~$

Переход из rbash(служит для ограничения пользователей в командной строке) в bash при доступности редактора vim:



:set shell=/bin/bash
:shell

При доступной консоли python перейдем в bash:

$ /usr/bin/python
Python 2.7.9 (default, Jun 29 2016, 13:08:31)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os;
>>> os.system('/bin/bash')
yar1k@zero:~$