
Фреймворк для эксплуатации AWS, предназначенный для тестирования безопасности сред Amazon Web Services.
Где получить помощь: Discord Rhino Security Labs или Stack Overflow
Куда сообщать об ошибках: https://github.com/RhinoSecurityLabs/pacu/issues
Поддерживается: Rhino Security Labs
Pacu — это фреймворк с открытым исходным кодом для эксплуатации уязвимостей AWS, предназначенный для тестирования безопасности облачных сред с позиции атакующего. Созданный и поддерживаемый Rhino Security Labs, Pacu позволяет пентестерам эксплуатировать ошибки конфигурации в учётной записи AWS с помощью модулей, которые легко расширяют его функциональность. Текущие модули обеспечивают широкий спектр атак, включая повышение привилегий пользователя, бэкдоринг пользователей IAM, атаки на уязвимые функции Lambda и многое другое.
Pacu — довольно легковесная программа, так как для её установки требуются только Python3.7+ и pip3 для установки нескольких библиотек Python.
pip3 install -U pip
pip3 install -U pacu
pacu
Это предпочтительный метод при использовании Kali Linux, так как pip больше не устанавливается по умолчанию. При этом будет установлена последняя версия Pacu, которая может не входить в официальный релиз.
pipx install git+https://github.com/RhinoSecurityLabs/pacu.git
Более подробные и удобные инструкции для пользователей можно найти в руководстве по установке на Wiki.
docker run -it rhinosecuritylabs/pacu:latest
docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Предупреждение: Выполнение этой команды смонтирует ваши локальные файлы конфигурации AWS в контейнер Docker при его запуске. Это означает, что любой пользователь, имеющий доступ к контейнеру, получит доступ к учётным данным AWS вашего хост-компьютера.
docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
При первом запуске Pacu вам будет предложено создать и назвать новую сессию. Эта сессия будет использоваться для хранения пар ключей AWS, а также любых данных, полученных в результате работы различных модулей. В Pacu может быть любое количество разных сессий, каждая со своими наборами ключей и данных AWS, и вы можете возобновить сессию в любое время (хотя для переключения между сессиями в настоящее время требуется перезапуск).
Модули требуют ключ AWS, который предоставляет минимальный доступ к среде AWS и состоит из идентификатора ключа доступа и секретного ключа доступа. Чтобы установить ключи вашей сессии, используйте команду set_keys, а затем следуйте подсказкам для ввода псевдонима ключа (имя для справки), идентификатора ключа доступа AWS, секретного ключа доступа AWS и токена сессии AWS (если вы его используете).
Если у вас возникли трудности, help выведет список доступных команд.
list выводит список доступных модулей для регионов, установленных в текущей сессии.help module_name возвращает соответствующую справочную информацию для указанного модуля.run module_name запускает указанный модуль с параметрами по умолчанию.run module_name --regions eu-west-1,us-west-1 запускает указанный модуль для регионов eu-west-1 и us-west-1 (для модулей, поддерживающих аргумент --regions)pacu --help отображает справочное менюpacu --session <имя_сессии> устанавливает сессию для использования в командах, которые её требуютpacu --list-modules выводит список всех доступных модулей (не требует сессии)pacu --pacu-help выводит справку по Pacu (не требует сессии)pacu --module-name <имя_модуля> имя модуля для выполнения действия; вы можете выполнить модуль или получить о нём информациюpacu --exec выполняет модуль, указанный в --module-namepacu --module-info получает информацию о модуле, указанном в --module-namepacu --data <имя_сервиса || all> выполняет запрос к локальной базе данных SQLAlchemy для получения пронумерованной информацииpacu --module-args="<arg1> <value> <arg2> <value>" передаёт необязательные аргументы модуля выполняемому модулюPacu использует ряд подключаемых модулей, чтобы помочь атакующему в перечислении ресурсов, повышении привилегий, эксфильтрации данных, эксплуатации сервисов и манипуляции журналами в средах AWS. Приветствуются вклады и идеи для новых модулей.
Чтобы идти в ногу с постоянным развитием продуктов AWS, мы с самого начала разработали Pacu с учётом расширяемости. Единый синтаксис и структура данных облегчают создание и расширение модулей — нет необходимости указывать регионы AWS или выполнять избыточные проверки разрешений между модулями. Для управления и манипуляции полученными данными используется локальная база данных SQLite, что минимизирует количество вызовов API (и связанных с ними журналов). Отчётность и аудит атак также встроены в фреймворк; Pacu помогает в процессе документирования через ведение журнала команд и экспорт, что способствует построению временной шкалы процесса тестирования.
Мы всегда рады получать отчёты об ошибках в самом фреймворке Pacu, а также результаты тестирования и отзывы о различных модулях и, в целом, конструктивную критику, помогающую улучшить фреймворк. Любая поддержка Pacu — через использование, тестирование, улучшение или просто распространение информации — будет очень высоко оценена.
Если вы заинтересованы в непосредственном внесении вклада в сам фреймворк Pacu, пожалуйста, ознакомьтесь с нашими руководствами по внесению вклада по соглашениям о коде и заметкам о git-flow.
Если вы заинтересованы в написании собственных модулей для Pacu, посетите нашу страницу wiki Разработка модулей. Когда вы будете разрабатывать новые возможности, пожалуйста, свяжитесь с нами — мы будем рады добавить ваши новые модули в основную коллекцию, поставляемую с Pacu.
Для пошаговых руководств и полной документации посетите вики Pacu.
pacu --set-regions <регион1 регион2 || all> устанавливает регионы для использования в сессии; разделяйте регионы пробелом или введите all для всех регионовpacu --whoami получает информацию о текущем пользователе