Что нового

Cheat Sheet [0] Linux Privilege Escalation

Vander 0

Vander

Команда форума
10.11.2019
432
953
1596994669874.png

Поиск правильного вектора для повышения ваших привилегий может оказаться головной болью. Я собираюсь поделиться некоторыми методами, которые необходимо освоить для поиска уязвимого вектора, чтобы повысить уровень привилегий в системе Linux.

Enumeration scripts

Есть много скриптов перечисления и они могут быть очень полезными, но в то же время достаточно сложными. Пример, LinEnum, я думаю, что это должен быть наиболее часто используемый скрипт перечисления в контексте CTF, потому что он показывает всю необходимую информацию о системе, такую как сетевая информация, запущенные процессы, двоичные файлы с привилегиями и т. Д.

Есть пара моментов в которых LinEnum может быть не совсем удобен:
  • Результат ошеломляющий, но могут возникнуть сложности с выполнением.
  • Хотелось бы, чтобы присутствовала подсветка критически важных обнаружений.
Как альтернативу, можно использовать jalesc, он очень похож на LinEnum, но основной смысл его использования заключался в том, что он выделяет все вещи, которые могут считаться важными, например, если есть какой-то необычный SUID или если ядро слишком старое, что могло бы быть выделено в выводе, и затем легко проверить.

Как помогает скрипт перечисления

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

Вы можете запустить python -m http.server на своем компьютере, а затем загрузить свой скрипт перечисления в папку /tmp, изменить его и запустить.

Searching GTFObins

Иногда вы обнаруживаете некоторые suid или некоторые права sudo для определенных двоичных файлов, которые можно использовать для простого повышения привилегий, и вы можете напрямую искать эти двоичные файлы на gtfobins. Если вам нравится искать это в своем терминале, вы можете использовать инструмент под названием gtfo. Что бы вы ни использовали для поиска в двоичных файлах на gtfobins, это очень важно для упрощения процесса эскалации.

Sudo rights

Способ перечисления прав sudo пользователя выполняется следующим образом:

Код:
sudo -l
Результат может выглядеть так:

1596997456740.png

Это означает, что текущий пользователь pi может запускать любые приложение как root без пароля. На многих машинах sudo right - это способ эскалации, и в основном на машинах с горизонтальной и вертикальной эскалацией привилегий.

Что такое горизонтальная и вертикальная эскалация привилегий?

Когда вы переходите от одного пользователя к другому. Например, скажем, если на компьютере есть пользователь pi, и у вас есть оболочка как www-data, когда вы повышаете привилегии с www-data до pi, это горизонтальное повышение привилегий, а когда вы повышаете привилегии с pi до root, это вертикальное повышение привилегий.

SUIDs

Это файлы, которые обладают особой силой, которая заключается в том, что всякий раз, когда мы запускаем эти файлы, они будут выполняться от имени пользователя root. Эти файлы в основном помечаются скриптами перечисления, но если вы хотите искать их отдельно, вы можете сделать это, запустив:

Код:
find / -perm -u=s -type f 2>/dev/null
Using pspy

Иногда, когда вы ничего не находите с помощью скрипта перечисления или SUID, вам нужно отследить процессы, работающий в фоновом режиме, тогда в игру вступает pspy.

Вы можете просто перенести двоичный файл на машину, а затем запустить его:

Код:
$ ./pspy
Затем подождите некоторое время, чтобы увидеть, захватит ли он какой-либо запущенный процесс. Чаще всего полезно видеть, запущено ли задание cron или есть ли какие-то настраиваемые скрипты.

Using Find command

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

Допустим, вы получили оболочку в виде www-data сейчас, после поиска suid, прав sudo и заданий cron вы ничего не нашли, тогда лучше всего будет выполнить любую из следующих команд:

Код:
find / -type f -user www-data 2>/dev/null
или:

Код:
find / -type d -user www-data 2>/dev/null
Эти команды просто находят любой файл или каталог, который дает доступ для чтения/записи пользователю www-data и перенаправляет все ошибки в /dev/null.

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

Спасибо за внимание, материал подготовлен специально для protey.net.​
 
Vander 0

Vander

Команда форума
10.11.2019
432
953
Да, и этим можно дополнить. В следующих статьях будет более подробно рассмотрена эта тема.
 
Верх Низ