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

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

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

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

Методы перечисления Linux для повышения привилегий — 11cW6Qur 9kon FloRhr3GA DzTechs | Linux

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

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

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

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

Методы перечисления Linux для повышения привилегий — 1BBHW0TTfjZEgptdHQkN1Dw DzTechs | Linux

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

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

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

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

cat /etc/cpuinfo 

uname -a

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

lscpu

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

Методы перечисления Linux для повышения привилегий - 1Um4f4PpvoJBkbhGInBvBKA DzTechs | Linux

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

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

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

ps aux

Проверять Управление процессами Linux: полное руководство.

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

Методы перечисления Linux для повышения привилегий — 1h2T4BYga3CpIqp mHU0PaQ DzTechs | Linux

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

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

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

getent passwd

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

getent group

4. Исследуйте конфиденциальные файлы

Методы перечисления Linux для повышения привилегий - 1B1t3fpiTR2kRZFZkGmcTMA DzTechs | Linux

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

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

5. Проверьте разрешения sudo

Методы перечисления Linux для повышения привилегий — 1Xm4V1EDhPdajDz9ljrF08Q DzTechs | Linux

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

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

sudo -l

Проверять Большинство причин, по которым Linux не нуждается в антивирусе или брандмауэре.

6. Найдите любой эксплойт в ядре Linux

Методы перечисления Linux для повышения привилегий — 15xMYb3P7W5Ksbw0VgFT3AA DzTechs | Linux

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

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

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

Методы перечисления Linux для повышения привилегий — 13PA0CBelz9d27WWet 8qSw DzTechs | Linux

SUID означает «Установить идентификатор пользователя-владельца при выполнении». Это особый тип прав доступа к файлам, который при установке запускает программу с привилегиями ее владельца.

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

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

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

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

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

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

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

Методы перечисления Linux для повышения привилегий — 1EVkQC89nU73px4vG79UmKw DzTechs | Linux

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

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

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

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

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

env

10. Поиск следов в истории Баша

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

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

11. Перехват уязвимых рабочих мест Cron

Методы перечисления Linux для повышения привилегий — 1GLxJ1Ufo40 wnKvdrtcNqg DzTechs | Linux

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

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

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

ls /etc/cron.d/

crontab -l -u <username>

12. Вставьте старые пакеты

Методы перечисления Linux для повышения привилегий — 1cYupOcKqBTtQF1FWbnwywQ DzTechs | Linux

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

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

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

dpkg -l

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

rpm -qa

Проверять Причины роста числа атак на цепочки поставок.

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

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

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

Наверх