LIMB
Вход Регистрация

тема

LPE linux from SUID-bits

praxys · · 0 ответов · 794 просмотров

Всем привет! Вижу что тема не освещалась, поэтому позволю себе затронуть её: повышение привилегий на linux-хосте через SUID-биты.

Итак, начнём с того, что же такое SUID-биты. :alien:

SUID-бит или Set User ID бит - это специальный бит прав в Unix-подобных системах, который позволяет пользователю запускать исполняемый файл с правами владельца этого файла. Это полезно для программ, которым для выполнения требуются права администратора, но которые должны запускаться обычными пользователями.

В моём случае я буду использовать неправильно настроенный бинарный файл редактора nano с SUID-битом, чтобы обойти механизм безопасности, получить оболочку sh с правами владельца nano (обычно root), и затем бессрочно закрепить за собой права, суперпользователя, изменив /etc/sudoers файл.

chmod u+s /bin/nano позволит нам получить желаемый SUID-бит на nano, но выполнение этой команды для пользователя является грубой ошибкой и нарушением безопасности системы. Никакие текстовые редакторы не должны иметь SUID-бит. :alien:

Первый этап - получение shell-оболочки через выполнение команд в самом текстовом редакторе.
Запускаем /bin/nano и процесс уже работает с правами корневого пользователя, после чего нажимаем сочетания клавиш для достижения данного результата: ^R^X - это сочетание клавиш в nano является комбинацией вставки содержимого файла и его выполнения.

reset; sh 1>0& 2>&$ :alien:

reset здесь очищает терминал, sh вызывает оболочку, первый дескриптор перенаправляет команды на стандартный вывод, второй - на вывод ошибок (stdout и stderr) 
Это нужно чтобы оболочка sh унаследовала ваш текущий терминал для ввода и вывода.

Как итог вы получаете дочерний процесс sh унаследованный от root, следовательно эта оболочка имеет привилегии root.

Второй этап - альтернативный способ через вызов
/bin/nano -s /bin/sh :alien:
^T :alien:


Снова получаем root-shell. :ghost:

Третий этап - закрепление прав через изменение файла /etc/sudoers

nano /etc/sudoers :alien:

user ALL=( ALL) NOPASSWORD: ALL :alien:


Это означает:
user - ваш пользователь
ALL= - на любом хосте
(ALL) - может запускать команды от имени любого пользователя
NOPASSWD: - без запроса пароля
ALL - любые команды


После сохранения файла sudoers выполняем команду 
sudo su
И получаем привилегии. :ghost:
👍48 🔥7 👏12 💯11

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.