Статья Право на root. Как повышают привилегии в Linux.

Admin

Администратор

Право на root. Как повышают привилегии в Linux.​


С правами рута ты можешь делать в системе что угодно: закрепиться на будущее, оставив бэкдор, внедрить руткит или троян, забрать, изменить или уничтожить любую информацию — хоть разместить задницу на главной странице сайта, если захватил веб-сервер. Поэтому повышение привилегий в системе — один из важнейших шагов при атаках. В этой статье мы посмотрим, как это делается в системах с Linux.
В общем случае эскалация привилегий — это получение прав в системе выше, чем у тебя уже есть. Но чаще всего имеется в виду получение доступа к учетной записи root в Linux или system/administrator в Windows.

Почему становится возможным повысить права в системе, казалось бы призванной предотвращать подобное? Причин много. Вот, как мне кажется, основные:
  • уязвимости в приложениях/скриптах;
  • неверная конфигурация ОС и приложений;
  • забытые критически важные данные (пароли, логины, бэкапы и прочее);
  • уязвимости в ядре ОС.
Ну а основная причина всегда одна и та же — людские ошибки. В идеальной вселенной, скорее всего, повысить привилегии не удалось бы. Но человеческий фактор делает это возможным, поэтому наслаждаемся.


С чего начать?
Прежде чем что-то делать, нужно понять, с чем мы будем иметь дело. Конечно, кое-что мы узнаем о системе, изучив ее на этапе проникновения, но теперь нужно подробнее выяснить, что именно нам может помочь подняться до root.

Какие-то вещи мы можем узнать вручную. Например, получить сведения о ядре:
Код:
uname -a 2>/dev/null
Или о процессоре:
Код:
cat /proc/cpuinfo 2>/dev/null
Или релиз ОС:
Код:
cat /etc/*-release 2>/dev/nul
Можно, конечно, и дальше собирать информацию с помощью терминала, но это долго. Гораздо проще и эффективнее использовать специальные тулзы. Самые распространенные из них:
Все они работают примерно по одному принципу: последовательно запускают команды bash или короткие скрипты, а вывод отправляют в stdout или лог-файл в зависимости от параметров.

LinEnum

Куда смотреть?
Давай теперь разберем несколько примеров уязвимостей и посмотрим, как можно их эксплуатировать.


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


SUID/GUID
Флаги setuid и setgid позволяют пользователю запускать программы от имени владельца. Например, когда надо запускать программу от рута, а пользователь рутом не является. Чаще всего встречается SUID. Устанавливается этот бит легко:
Код:
chmod +s /bin/script

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

В первую очередь нас интересуют файлы, владелец которых — root. Найти их можно руками, такой командой:
Код:
find / -user root -perm -u=s -type f 2>/dev/null

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

Вывод таких файлов из LinEnum.sh.

Из интересных файлов — find. LinEnum

Это позволит довольно легко получить привилегии.


Linux Capabilities
Так как предыдущий способ дает избыточные права файлам, в 1997 году была придумана идея дополнительных разрешений — linux capabilities. Если коротко, то идея состоит в том, чтобы давать не полные привилегии, а только часть, необходимую для выполнения задачи.

Как это используется? Для начала найдем подобные файлы в системе.
Код:Скопировать в буфер обмена
getcap -r / 2>/dev/null


Классический пример иллюстрации — это исполняемый файл tar с разрешением cap_dac_read_search+ep, которое позволяет ему читать любой файл в системе. Это означает, например, возможность получить архив с файлом /etc/shadow, который от лица обычного пользователя недоступен на чтение. Доступ к этому файлу даст нам хеши паролей, в том числе от root, который мы можем попробовать сбрутить.

Еще встречается пустое разрешение =ep. Когда выставлено такое разрешение (есть знак «равно» в начале, и не перечислен список разрешений), это значит, что файлу предоставлены все возможные разрешения. В примере такие разрешения есть у файла openssl.

Этот пример позволит нам прочитать файл /etc/shadow.

Сгенерим ключи.

Запустим веб-сервер.

И прочитаем файл.

Далее мы можем просто сгенерить новый shadow и перезаписать им системный. Создадим новый хеш, заменим им хеш (в примере — восклицательный знак) и подготовим файл для заливки.

Копируем его в /etc/shadow и логинимся.



Cron
Cron — это служба Unix, которая используется для периодического выполнения скриптов. Действия описываются в файле /etc/crontab и в специальных каталогах (например, /etc/cron.daily).


Скрипты используются для самого широкого спектра задач — от создания бэкапа по расписанию до очистки директории /tmp.

Если у таких скриптов неаккуратно выставлены привилегии, то это может стать находкой для атакующего. Когда администратор ставит привилегии как попало, «просто чтобы работало», он вполне может написать chmod 777, что позволит нам отредактировать вызываемый по расписанию скрипт. Поскольку cron запускает файлы от имени root, ничто не мешает вызывать рутовый шелл заодно со скриптом.


Sudo
Программа sudo позволяет выполнять команды от имени суперпользователя (либо других пользователей системы). Ее конфиг находится в /etc/sudoers, и, как правило, ошибки в этом конфиге открывают возможности эскалации привилегий. Сценариев использования — множество, можно выбирать по ситуации. Один из таких вариантов ниже.

Проверяем, какие есть разрешения у sudo.


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

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

Еще один способ абьюзить sudo — возможность внедряться в процесс с действующим токеном.

Эксплоиты для ядра
Как и в любой другой программе, в ядре Linux тоже есть уязвимости. Иногда эти уязвимости позволяют подняться до рута. Как и в остальных способах, здесь не существует универсального рецепта, и успешная эксплуатация зависит от многих факторов: версии ядра, наличия необходимых разрешений или файлов и даже наличия нужного железа (например, уязвимого перед Meltdown процессора).

На скриншоте ниже — поиск эксплоитов для ядра Linux в Kali.


При многообразии вариантов эксплуатации не все они окажутся рабочими. Может не быть эксплоита под конкретное ядро, либо версия ядра правильная, но оно уже пропатчено. Некоторые эксплоиты работают нестабильно. И так далее.

Наверняка многие помнят уязвимость в ядре, известную как Dirty COW. Баг позволяет спровоцировать состояние гонки, а это приводит к тому, что пользователь без привилегий получает доступ на запись к memory mappings (хотя доступ должен быть только на чтение) и может повысить свои привилегии.

Существует несколько эксплоитов для этой уязвимости.


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

Другие примеры уязвимостей для повышения привилегий:
Конечно, это не все уязвимости. Их намного больше, и ты всегда можешь поискать их описанным выше способом или покопаться на exploit-db.com и других ресурсах.


Заключение
Способов стать рутом в Linux — множество, и я здесь прошелся только по самым очевидным и распространенным. Тем, что встречаются и в реальной жизни, и на CTF, и на экзаменах.

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

На сайте GTFOBins есть отличная подборка способов использовать разные популярные утилиты для повышения привилегий. Но помни: этот список на самом деле значительно больше, просто нам еще пока не все известно!
 
Похожие темы
Support81 Французская полиция скоро получит право легально шпионить за своими подозреваемыми Новости в сети 0
Admin Статья DDoS на Bluetooth. Разбираем трюк, который поможет отключить чужую колонку Полезные статьи 0
Admin Статья Взлом wi-fi на легке Полезные статьи 0
Admin Статья Полное Руководство по Google Dorks: Говорим с Поисковиком на Его Языке OSINT 0
Admin Интересно «Ваш пароль истекает» (на самом деле нет). Microsoft объясняет, почему нельзя верить даже письмам от собственного HR. Новости в сети 0
Admin Интересно Эксплойт уже на GitHub. Главная система защиты Cisco снова пробита. Новости в сети 0
Admin Интересно ZIP-архив и скрытый MSBuild. Из чего состоит новая атака на военных, которую пропустили антивирусы. Новости в сети 0
Admin Интересно 70000 пострадавших и 20 миллионов на кону – начались первые аресты по делу о предательстве в Coinbase. Новости в сети 0
Admin Статья Браузерные расширения — идеальный шпион: Стиллер паролей на JavaScript, который невозможно заметить Вирусология 0
Admin Интересно Казалось, что летим, а на деле — ползём. Как ИИ-помощники незаметно крадут время у профессиональных кодеров. Новости в сети 0
Admin Интересно Цифровое чудо на Рождество. Как ученым удалось восстановить UNIX V4 с ленты 1970-х годов. Новости в сети 0
Admin Интересно 0 на VirusTotal и root-доступ: хакеры смогли обмануть все антивирусы с помощью легального софта для админов. Новости в сети 0
Admin Статья Полное Руководство по Google Dorks: Говорим с Поисковиком на Его Языке OSINT 0
Admin Интересно Firebox рвут на куски прямо сейчас — критическая дыра топит корпоративные сети без пароля и удалённо. Новости в сети 0
Admin Статья XSS от Яндекс на обед Полезные статьи 0
Admin Интересно Код на GitHub, который хакеры хотели бы удалить – Agentic Threat Hunting Framework уже в сети. Новости в сети 0
Admin Интересно Ваш компьютер вам врёт: в BIOS написано «защищено», а на деле — заходи, кто хочет. Новости в сети 0
Admin Статья Сбор информации в Instagram с Osintgram на Kali Linux. OSINT 0
Emilio_Gaviriya Работа на Пабло Эскобара. Возрождение. Предоставляю работу. Ищу специалиста. 0
el_hacker Статья Удобная анонимность на практике. Анонимность и приватность 0
el_hacker Интересно Компрометированные учетные данные IAM используются для масштабной кампании по майнингу криптовалюты на AWS. Новости в сети 0
turbion0 Мошенничество на 11 миллионов рублей: в Красноярске арестовали звезд сборной России по санному спорту Новости в сети 0
Support81 Вы отключали Cloudflare во время сбоя? Срочно проверьте логи на предмет взлома Новости в сети 0
Support81 Этичный хакинг? Забудьте. США готовят рои ИИ-агентов для атаки на Китай Новости в сети 0
Support81 Один взлом — минус ВВП: убытки после атаки на JLR стали главной причиной замедления экономиики Великобритании Новости в сети 0
Support81 Перевод крупной суммы по СБП на свой же счёт будет расцениваться банком как подозрительный Новости в сети 0
Support81 12 из 13 — столько популярных антивирусов (включая ESET, Avast и Касперский) провалили тест на шпионское ПО Новости в сети 0
Support81 Резюме с сюрпризом: хакеры из APT-C-60 массово «устраиваются на работу» в японские компании Новости в сети 0
Support81 Карьера в Тбилиси не задалась. Гражданин ФРГ меняет грузинское гостеприимство на немецкую тюрьму Новости в сети 0
Support81 Хакеры больше не воруют данные — они грабят фуры. Удаленно. На кону $34 миллиарда Новости в сети 0
Support81 Чертежи «Железного луча» на продажу. Хакеры заявили о краже секретных чертежей лазерной системы ПРО Израиля Новости в сети 0
Support81 От домофона до $256 тысяч в сумке. Москвичку обманули на 28 миллионов Новости в сети 1
Support81 Миф об «одноразовом» телефоне: эксперимент на Reddit показал, почему приватности больше не существует Новости в сети 0
Support81 Главы разведки на допросе. Дело о прослушке Paragon Новости в сети 0
Support81 Шифрование — прошлый век: киберпреступники переходят на новую модель вымогательства Новости в сети 0
Support81 «Битва ИИ» на крипторынке. Китайский DeepSeek лидирует, заработав 35%. Новости в сети 0
Support81 «Ага, туннель! Придушим». Ваш VPN тоже лагает на 4G? Объясняем, как операторы видят ваш трафик (и что с этим делать) Новости в сети 0
turbion0 Мошенники похищают аккаунты на «Госуслугах» через объявления Новости в сети 0
Support81 Уязвимость в SMS на смартфоне — и АНБ захватило контроль над временем всего Китая Новости в сети 0
Support81 США конфисковали криптовалюту на сумму 15 миллиардов долларов у главаря «свиного фарма» Новости в сети 0
Support81 С виду — офис инвестиционной компании. На деле — 80 мошенников с 204 мониторами для обмана жертв Новости в сети 0
Support81 Россия — цель №1 для хакеров. На страну приходится до 72% всех кибератак в СНГ. Новости в сети 0
Support81 56 человек и 1,2 млн сим-карт. Минцифры наткнулось на армию теневых абонентов Новости в сети 0
Support81 На Украине атакована ключевая фигура, стоящая за крупным русскоязычным форумом киберпреступности Новости в сети 1
wrangler65 Атаки на беспроводные сети Уязвимости и взлом 0
Support81 Вредоносное расширение VSCode в Cursor IDE привело к краже криптовалюты на сумму 500 тысяч долларов Новости в сети 0
wrangler65 RemoteWA Охота на пользователей Whatsapp Анонимность и приватность 0
Support81 Национальное агентство по борьбе с преступностью (NCA) Великобритании арестовало четырех человек, подозреваемых в причастности к кибератакам на крупны Новости в сети 0
Support81 Идеальное оружие для киберпреступников: нейросети заставляют вас самих кликать на фишинговые ловушки Новости в сети 0
Support81 Microsoft снова сыграла на руку хакерам — корпоративные сети ломают через официальный софт Новости в сети 0

Название темы