12 способов перечислить Linux для повышения привилегий

9
и технологии 2.webp.webp

Последнее обновление 17.06.2023 — Иван Катанаев

Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Перечисление — один из ключевых этапов тестирования на проникновение. Это первое, что нужно сделать, когда вы скомпрометировали целевую систему в качестве тестера на проникновение. Хотя существует множество инструментов для автоматизации этого процесса, всегда рекомендуется вручную просмотреть и перепроверить систему на наличие потенциальных векторов повышения привилегий.

Давайте рассмотрим различные способы ручного перечисления системы Linux для повышения привилегий.

По теме:  Глубокая сеть против даркнета: в чем разница и что наиболее опасно?

Почему перечисление важно для повышения привилегий?

Повышение привилегий, также известное как Повышение привилегий (EOP), является основным компонентом тестирования на проникновение и методологии тестирования на проникновение. Как следует из названия, это этап, когда вы пытаетесь повысить свои привилегии до администратора или, в системах Linux, до пользователя root.

Чтобы получить root-права, нужно сначала найти уязвимость в системе. Здесь в игру вступает перечисление. Хотя существуют инструменты для автоматизации перечисления, чаще всего ручное и тщательное перечисление может выявить неправильные конфигурации и другие уязвимости, которые не обнаруживаются инструментами.

1. Перечисление системы

Первое, что вы должны сделать после того, как закрепитесь, — это узнать о системе, к которой вы установили доступ. Это поможет вам оптимизировать полезные нагрузки в соответствии с архитектурой и обеспечить максимальную совместимость ваших полезных нагрузок с целевой системой.

Например, если у вас есть 64-битный эксплойт, вам нужно будет изменить его, если ваша целевая система поддерживает только 32-битное программное обеспечение, поскольку существует разница между 32-битными и 64-битными системами.

По теме:  10 лучших альтернатив ChatGPT

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

Чтобы найти системную информацию, такую ​​как версия ядра, выпуск ОС и т. д., введите:

 cat /etc/cpuinfo 
uname -a

Если вы хотите узнать больше об архитектуре процессора, используйте команду lscpu:

 lscpu 

2. Перечисление процессов

Процессы — это выполняемые программы. Знание полного списка процессов в системе Linux в сочетании с некоторыми другими тактиками перечисления, упомянутыми в этом руководстве, поможет вам определить потенциально уязвимые процессы и использовать их для повышения привилегий.

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

Вы можете использовать команду ps с дополнительными флагами, чтобы получить список всех процессов в системе:

 ps aux 

3. Перечисление пользователей и групп

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

Наличие видимости привилегированных учетных записей позволяет вам попробовать известные комбинации имени пользователя и пароля. Вы можете распечатать содержимое файлов /etc/passwd и /etc/group, чтобы получить доступ к списку пользователей. Кроме того, вы также можете использовать команду getent.

Чтобы получить список пользователей в Linux:

 getent passwd 

Чтобы получить список групп:

 getent group 

4. Поиск конфиденциальных файлов

Конфиденциальные файлы, такие как /etc/passwd и /etc/shadow, потенциально могут привести к утечке большого количества информации. Из /etc/shadow вы можете найти хэши паролей пользователей и попытаться взломать их с помощью инструмента для взлома хэшей, такого как Hashcat или John the Ripper.

Также есть файл /etc/sudoers, который, если вы сможете его как-то отредактировать, позволит изменить разрешения sudo для пользователей и групп.

5. Проверка разрешений sudo

Правильное управление разрешениями sudo имеет решающее значение для безопасности системы Linux. Анализ разрешений sudo даст вам представление о потенциальных векторах повышения привилегий. Если есть неправильные настройки, например, некоторые программы имеют тревожный уровень привилегий, вы можете использовать их для получения root-доступа.

Это всего лишь пример многих путей атаки, которые могут открыться, если вы разберетесь с разрешениями sudo в системе Linux. Другим примером может быть злоупотребление механизмом предварительной загрузки библиотеки LD_PRELOAD, который вы можете перечислить, просмотрев разрешения sudo.

 sudo -l 

6. Поиск эксплойтов ядра Linux

Эксплойты ядра Linux смертельны, потому что они атакуют ядро ​​ОС, работающей на скомпрометированной системе. С критической ошибкой ядра вы сможете делать с системой практически все что угодно.

Чтобы найти эксплойты ядра, сначала узнайте версию ядра, а затем, используя такой инструмент, как searchsploit или Google Dorks, найдите подходящий эксплойт, затрагивающий точную версию ядра, работающего в системе.

7. Использование двоичных файлов SUID

SUID — это сокращение от Set Owner User ID при выполнении. Это особый тип прав доступа к файлам, который при установке запускает программу с привилегиями ее владельца.

Если программа была создана пользователем root и для нее был установлен бит SUID, программа при выполнении будет обладать привилегиями root. Как можно злоупотреблять SUID? Это просто.

Перечислите все двоичные файлы с установленным битом SUID, просмотрите список, найдите двоичный файл, для которого у вас есть доступ для записи, и отредактируйте его исходный код, чтобы добавить свою полезную нагрузку. Вы можете использовать команду find для поиска двоичных файлов SUID и перенаправления стандартного вывода в /dev/null:

 find / -perm -4000 2>/dev/null 

8. Взлом библиотек

Иногда в системе могут работать программы, использующие библиотеки, не защищенные от записи. В таком случае вы можете легко перезаписать используемую библиотеку и получить контроль над функциональностью программы.

Если вам повезет и вы обнаружите программу, работающую от имени root, вы можете захватить библиотеку, от которой она зависит, и потенциально получить доступ к корневой оболочке.

9. Исследование и перехват переменных окружения

Переменные среды — это специальные типы переменных, которые в определенной степени определяют, как работает система и программы. Важной переменной окружения является переменная PATH.

Он хранит расположение всех исполняемых двоичных файлов в системе. Вы можете манипулировать переменной PATH и связывать ее с другими уязвимостями, такими как захват библиотеки, чтобы получить root-доступ.

Например, предположим, что есть исполняемый файл с установленным битом SUID. Для правильной работы он вызывает двоичный файл, не определяя его полный путь.

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

Кроме того, есть хорошие шансы найти секретные ключи и пароли, просто просматривая переменные среды. Вы можете распечатать все переменные среды с помощью команды env:

 env 

10. Найдите артефакты в истории Bash

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

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

11. Перехват уязвимых заданий Cron

Задания Cron — это встроенная и очень полезная функция Linux. Если вы мигрировали из Windows, задание cron можно напрямую сравнить с запланированным заданием в Windows.

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

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

 ls /etc/cron.d/
crontab -l -u <username>

12. Список устаревших пакетов

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

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

Используйте команду dpkg с тегом -l, чтобы получить список установленных пакетов в системах на базе Debian и Ubuntu:

 dpkg -l 

Для систем RHEL/CentOS/Fedora используйте эту команду для вывода списка установленных пакетов:

 rpm -qa  

Теперь вы знаете, как вручную перечислить Linux для повышения привилегий

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

Эффективное перечисление является ключом к установлению точки опоры, повышению привилегий и успешному сохранению в вашей целевой системе. Хотя ручное выполнение задач помогает, некоторые задачи можно поручить автоматизированным инструментам, чтобы сэкономить время и усилия. Вы должны знать о лучших инструментах безопасности для сканирования системы на наличие уязвимостей.