Privilege Escalation — это повышение привилегий: когда пользователь получает доступ выше своего текущего уровня. В Linux это одна из самых важных тем и для пентестеров, и для администраторов, и для DevOps. Понимание техник помогает не только атаковать в лаборатории, но и закрывать реальные риски в инфраструктуре.
Что обычно ищут при повышении привилегий в Linux
- неправильные права на файлы и каталоги
- опасные настройки
sudo - SUID/SGID-бинарники
- уязвимые сервисы и cron-задачи
- переменные окружения и PATH hijacking
- capabilities Linux
- слабые пароли, ключи, токены и конфиги с секретами
1. Ошибки в sudo ⚙️
Команда:
sudo -l
Показывает, что пользователь может запускать от имени root. Опасно, если разрешены редакторы, интерпретаторы или утилиты вроде vim, less, find, python, bash.
Пример: если разрешён запуск vim через sudo, внутри можно выполнить shell-команду и получить root-доступ.
2. SUID-бинарники 🧩
SUID-файл выполняется с правами владельца, часто root. Поиск:
find / -perm -4000 -type f 2>/dev/null
Если среди них нестандартные или уязвимые бинарники — это частая точка эскалации. Особенно опасны плохо написанные внутренние утилиты.
3. Небезопасные cron-задачи ⏰
Планировщик cron запускает команды по расписанию. Если root выполняет скрипт, который может изменить обычный пользователь, это прямой путь к повышению привилегий.
Проверяют:
cat /etc/crontab
ls -la /etc/cron.*
4. PATH hijacking 🛠️
Если root-скрипт запускает команду без полного пути, например backup вместо /usr/bin/backup, злоумышленник может подменить бинарник через PATH. Это классическая ошибка в самописных скриптах.
5. Linux capabilities
Capabilities дают процессам отдельные привилегии без полного root. Проверка:
getcap -r / 2>/dev/null
Если, например, python или tar имеют опасные capabilities, это может привести к чтению защищённых файлов или запуску привилегированных действий.
6. Конфиги, секреты, ключи 🔑
Часто root-доступ получают не через эксплойт, а через найденные данные:
- приватные SSH-ключи
- пароли в
.env,config.php, backup-файлах - токены CI/CD
- доступы к БД и облаку
Базовый алгоритм проверки
- определить пользователя:
id,whoami - изучить sudo:
sudo -l - найти SUID:
find / -perm -4000 -type f 2>/dev/null - проверить cron, systemd, скрипты
- просмотреть capabilities
- искать секреты и неправильные права
- анализировать версии ядра и сервисов на известные уязвимости
Как защититься 🛡️
- минимизировать права в
sudoers - не использовать SUID без необходимости
- задавать полные пути в root-скриптах
- защищать cron и systemd unit-файлы
- регулярно аудитить права, capabilities и секреты
- обновлять ОС и сервисы
- включать логирование и мониторинг изменений
Privilege Escalation в Linux почти всегда строится не на “магии”, а на ошибках конфигурации, избыточных правах и забытых артефактах. Поэтому лучшая защита — регулярный аудит и принцип наименьших привилегий. ✅
📌 Ниже — мягкая рекомендация: посмотрите подборку каналов про IT, где публикуют практику по Linux, DevOps, безопасности и администрированию.