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.
Содержание файла:
Обратите
внимание на параметр User,
значение этого параметра устанавливает
с правами какого пользователя systemctl
запустит описываемый сервис. Моя цель
получить root, для чего
указан соответствующий пользователь.
В параметре ExecStart указываем
наш payload. Я использую bash
реверс шелл.
Запуск payload.
Всё что нам
необходимо сделать, это включить
созданный нами сервис root.service
и запустить его:
После того
как сервис запустился, мы можем
подключиться к целевой системе и увидим,
bash окружение работает из
под root:
Комментариев нет:
Отправить комментарий