Злоупотребление 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/nullGTFOBins
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/vimSudo для редактора или просмотрщика
Если Вы можете выполнить 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 — локальная установка не требуется.
Все уроки этого курса
- Перечисление
- Злоупотребление SUID и Sudo
- Задания Cron и PATH
- Эксплойты ядра