0Pricing
Ethical Hacking Academy · Урок

Злоупотребление SUID и Sudo

Ошибки конфигурации

«Злоупотребление SUID и Sudo» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.

Бит SUID

Бит разрешений SUID заставляет файл выполняться с привилегиями его владельца, а не пользователя, который его запустил. Если владелец — root, двоичный файл SUID выполняется с правами root. Это полезно для таких инструментов, как passwd, но опасно при злоупотреблении.

-rwsr-xr-x  1 root root  /usr/bin/passwd
# the s in rws = SUID bit

Поиск двоичных файлов SUID

Перечислите все файлы SUID и сравните их с известным безопасным набором. Любой необычный файл — текстовый редактор, интерпретатор или пользовательский двоичный файл — является кандидатом.

find / -perm -4000 -type f 2>/dev/null

GTFOBins

GTFOBins — это каталог с примерами злоупотребления стандартными двоичными файлами Unix для выхода из ограничений, повышения привилегий или чтения и записи файлов при наличии прав SUID или sudo. Всегда сверяйте обнаруженный двоичный файл с GTFOBins.

# gtfobins.github.io -> search the binary name

Злоупотребление SUID у find

Если у find установлен бит SUID, его параметр -exec запускает команды от имени root, мгновенно предоставляя оболочку root.

find . -exec /bin/sh -p \; -quit
# -p preserves the elevated privileges

Выход в оболочку через SUID

Многие интерпретаторы и постраничные просмотрщики запускают оболочки. SUID-версии vim, less, awk или python могут предоставить Вам оболочку root.

awk "BEGIN {system(\"/bin/sh -p\")}"
# or in less:  !/bin/sh

Ошибки настройки Sudo

Запустите sudo -l, чтобы вывести список разрешённых команд. Записи, позволяющие запускать пригодный для эксплуатации двоичный файл от имени root или использовать NOPASSWD, дают немедленный доступ. Команда не обязательно должна быть оболочкой — GTFOBins показывает способы выхода для многих программ.

sudo -l
# (ALL) NOPASSWD: /usr/bin/vim

Sudo для редактора или просмотрщика

Если Вы можете выполнить sudo vim (или варианты less, more, man, nano), то из самой программы можно запустить оболочку от имени root.

sudo vim -c ":!/bin/sh"
# inside less:  sudo less file  ->  !/bin/sh

Приём с LD_PRELOAD

Если sudo сохраняет LD_PRELOAD (через env_keep), можно загрузить вредоносную динамическую библиотеку, которая запустится от имени root при запуске команды sudo.

sudo -l  # look for env_keep+=LD_PRELOAD
sudo LD_PRELOAD=/tmp/evil.so program

Уязвимости версий Sudo

В определённых версиях sudo есть уязвимости — например, переполнение кучи Baron Samedit (CVE-2021-3156) и обход с помощью -u#-1 (CVE-2019-14287). Сравните результат sudo --version с известными CVE.

sudo --version
# vulnerable < 1.9.5p2 -> Baron Samedit

Пользовательские двоичные файлы SUID

Иногда разработчики поставляют пользовательские помощники SUID, которые вызывают другие программы по имени без абсолютного пути. Если Вы управляете PATH, то можете перехватить такой вызов — это связано с методами злоупотребления PATH, которые рассматриваются далее.

Защита и этика

Защитникам следует свести количество двоичных файлов SUID к минимуму, использовать абсолютные пути, заранее отказываться от привилегий и поддерживать sudo в актуальном состоянии со строгими правилами. Специалист по тестированию должен эксплуатировать такие ошибки только в пределах разрешённой области.

Быстрая проверка

Проверьте свои знания о SUID и sudo.

Итоги

Вы изучили злоупотребление SUID и sudo:

  • SUID запускает двоичный файл от имени его владельца (часто root)
  • Проверяйте обнаруженные двоичные файлы по каталогу GTFOBins
  • Выход в оболочку возможен через SUID/sudo для find, vim, awk, less
  • LD_PRELOAD и CVE в sudo (Baron Samedit) также позволяют повысить привилегии

Далее: задания cron и злоупотребление PATH.

Часто задаваемые вопросы

Урок «Злоупотребление SUID и Sudo» бесплатный?

Да — полный текст урока «Злоупотребление SUID и Sudo» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.

Чему я научусь в уроке «Злоупотребление SUID и Sudo»?

Ошибки конфигурации Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?

Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Злоупотребление SUID и Sudo»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?

Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Перечисление
  2. Злоупотребление SUID и Sudo
  3. Задания Cron и PATH
  4. Эксплойты ядра
← Назад к Ethical Hacking Academy