Быстрые ссылки
Enumerate — один из основных этапов тестирования на проникновение. Это первое, что вы делаете, когда взламываете целевую систему в качестве пентестера. Хотя существует множество инструментов для автоматизации этого процесса, всегда полезно вручную выполнить поиск в системе и перепроверить ее на наличие потенциальных векторов эскалации.
Поскольку процесс извлечения информации, такой как имена пользователей, имена машин, сетевые ресурсы, общие ресурсы, перечисление и службы, определяются системой. На этапе перечисления хакер устанавливает активные соединения с системой и направляет запросы для получения дополнительной информации о целевой системе. Он использует собранную информацию для выявления лазеек или слабых мест в системе безопасности, а затем пытается их использовать. Методы переписи выполняются в связанной среде. Это включает в себя активную связь с целевой системой.
Давайте рассмотрим различные способы ручного перечисления Linux для повышения привилегий. Проверять Лучшие инструменты тестирования на проникновение для профессионалов в области кибербезопасности.
Почему перечисление важно для повышения полномочий?
Повышение привилегий, также известное как повышение привилегий (EOP), является важным компонентом и методологией тестирования на проникновение. Как следует из названия, это этап, когда вы пытаетесь повысить свои привилегии до администратора или, в системах Linux, до пользователя root.
Чтобы получить root-права, сначала нужно найти уязвимость в системе. Здесь может пригодиться перепись. Хотя существуют инструменты для автоматизации перечисления, во многих случаях тщательное ручное перечисление может выявить неправильные конфигурации и другие уязвимости, которые не обнаруживаются инструментами.
1. Перечисление системы
Первое, что вы должны сделать после того, как закрепились на начальном этапе, — это ознакомиться с системой, к которой вы установили доступ. Это поможет вам оптимизировать полезные нагрузки в соответствии с архитектурой и обеспечить максимальную совместимость ваших полезных нагрузок с целевой системой.
Например, если у вас есть 64-битный эксплойт, вам нужно будет изменить его, если ваша целевая система поддерживает только 32-битное программное обеспечение, поскольку существует разница между 32-битными и 64-битными системами.
Кроме того, знание версии ядра поможет вам искать эксплойты в Интернете, если вы обнаружите, что версия устарела и уязвима для общедоступных эксплойтов. Вот несколько команд, которые помогут вам получить информацию о системе:
Чтобы найти системную информацию, такую как версия ядра, версия ОС и т. д., введите:
cat /etc/cpuinfo uname -a
Если вы хотите узнать больше об архитектуре процессора, используйте команду lscpu:
lscpu
2. Перечисление процессов
Процессы выполняют программное обеспечение. Знание полного списка процессов в Linux, а также некоторых других методов перечисления, упомянутых в этом руководстве, поможет вам определить потенциально уязвимые процессы и воспользоваться ими для повышения привилегий.
Например, если вы обнаружите процесс, работающий с привилегиями суперпользователя, вы сможете вставить в него произвольный код, который может успешно повысить привилегию.
Вы можете использовать команду ps со знаками для Чтобы вывести список всех процессов в системе:
ps aux
Проверять Управление процессами Linux: полное руководство.
3. Перечисление пользователей и групп
Перечисление пользователей и групп важно, чтобы знать, кто имеет доступ к какой части системы. Зная это, вы сможете эффективно определять свои цели и строить эффективную стратегию атаки. Более того, вы можете создавать соответствующие сопоставления и глубоко понимать роли и привилегии каждой учетной записи.
Видимость премиум-аккаунтов позволяет попробовать известные комбинации имени пользователя и пароля. Вы можете распечатать содержимое файлов /etc/passwd и /etc/group, чтобы получить доступ к списку пользователей. Кроме того, вы также можете использовать команду получить.
Чтобы получить список пользователей в 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
Проверять Большинство причин, по которым Linux не нуждается в антивирусе или брандмауэре.
6. Найдите любой эксплойт в ядре Linux
Эксплойты ядра Linux смертельны, потому что они атакуют ядро операционной системы, работающей в целевой системе. С серьезным изъяном в ядре вы сможете делать с системой практически все что угодно.
Чтобы найти уязвимости ядра, сначала узнайте версию ядра, а затем с помощью инструмента вроде searchsploit или с помощью Google Dorks найдите подходящий эксплойт, затрагивающий точную версию ядра, работающую в системе.
7. Используйте двоичные файлы SUID
SUID означает «Установить идентификатор пользователя-владельца при выполнении». Это особый тип прав доступа к файлам, который при установке запускает программу с привилегиями ее владельца.
Если программа создана пользователем root и для нее установлен бит SUID, то программа при выполнении будет иметь привилегии root. Как можно злоупотреблять SUID? Это просто.
Вы должны перечислить все двоичные файлы с установленным битом SUID, просмотреть список, найти двоичный файл, для которого у вас есть доступ на запись, и изменить его источник, чтобы добавить свою полезную нагрузку. Вы можете использовать команду find для поиска двоичных файлов SUID и перенаправления стандартного вывода в /dev/null:
find / -perm -4000 2>/dev/null
8. Взлом библиотек
Иногда в системе могут работать программы, использующие незащищенные от записи библиотеки. В таком случае вы можете легко перезаписать используемую библиотеку и контролировать функциональность программы.
Если вам повезет и вы найдете корневую программу, вы сможете захватить библиотеку, от которой она зависит, и, возможно, получить root-доступ.
9. Исследование и перехват переменных окружения
Переменные среды — это специальные типы переменных, которые в некоторой степени определяют работу системы и программ. Важной переменной окружения является переменная PATH.
Сохраняет местоположение всех исполняемых двоичных файлов в системе. Вы можете манипулировать переменной PATH и связать ее с другими уязвимостями, такими как захват библиотек для корневого доступа.
Например, предположим, что существует исполняемый файл с установленным битом SUID. Для правильной работы он вызывает двоичный файл без указания полного пути.
Вы можете воспользоваться этим, создав вредоносный дубликат двоичного файла и обновив переменную PATH, указав местоположение вредоносного двоичного файла, поэтому при запуске исполняемого файла SUID вредоносный двоичный файл будет запускаться от имени пользователя root, как и вы. Вы сможете создать корневую оболочку.
Кроме того, есть хорошие шансы найти секретные ключи и пароли, просто взглянув на переменные среды. Вы можете распечатать все переменные среды с помощью команды env:
env
10. Поиск следов в истории Баша
Часто текущая пользовательская история не удаляется. Вы можете злоупотреблять этим, чтобы получить доступ к конфиденциальной информации или повторно запустить предыдущие команды с измененными параметрами.
Хотя они, вероятно, не приведут к повышению привилегий, они являются хорошим источником утечки информации, чтобы прояснить, что пользователь обычно делает в системе.
11. Перехват уязвимых рабочих мест Cron
Задания Cron — это встроенная и ресурсоемкая функция Linux. Если вы мигрируете из Windows, задание cron можно напрямую сравнить с запланированным заданием в Windows.
Работает регулярно и выполняет заказы. И время, в которое он будет запускаться, и команды, которые должны быть выполнены, предварительно определяются пользователем. Иногда вы можете обнаружить, что некоторые задания cron уязвимы для атак, таких как внедрение подстановочных знаков, или доступны для записи пользователю, с которым вы вошли в систему.
Вы можете злоупотреблять этими уязвимостями, чтобы получить root-доступ в системе. Чтобы использовать задание Cron, вам сначала нужно найти уязвимое задание. Вот команды для вывода списка запущенных в данный момент заданий Cron и других соответствующих данных:
ls /etc/cron.d/ crontab -l -u <username>
12. Вставьте старые пакеты
Когда у вас есть доступ к системе, одним из первых шагов, которые вы должны сделать, является список всех установленных программных пакетов и их установленных версий вместе с их последними версиями.
Существует вероятность того, что установлены какие-то непонятные пакеты, которые еще мало используются и очень уязвимы для атак с повышением привилегий. Затем вы можете использовать этот пакет для корневого доступа.
Используйте команду Dpkg с флагом -l для вывода списка пакетов, установленных в системах на базе Debian и Ubuntu:
dpkg -l
Для систем RHEL/CentOS/Fedora используйте эту команду для вывода списка установленных пакетов:
rpm -qa
Проверять Причины роста числа атак на цепочки поставок.
Теперь вы знаете, как вручную перечислить Linux для повышения привилегий.
Эскалация полномочий зависит только от перечисления. Чем больше информации у вас есть, тем лучше вы сможете планировать стратегии атак.
Эффективное перечисление является ключом к установлению точки опоры, повышению привилегий и успешному выживанию в вашей целевой системе. Хотя выполнение задач вручную помогает, некоторые задачи можно поручить автоматизированным инструментам, чтобы сэкономить время и усилия. Вы должны знать лучшие инструменты безопасности для сканирования системы на наличие уязвимостей. Вы можете просмотреть сейчас Как установить и настроить Snort IDS в Linux для защиты вашей сети.