Открытый фреймворк для эксплуатации AWS-окружений от Rhino Security Labs. Содержит 45+ модулей: перечисление IAM-прав, эскалация привилегий, извлечение секретов, обход CloudTrail-логирования, атаки на Lambda/S3/EC2. Работает как аналог Metasploit специально для облачных пентестов AWS.
pip install pacu # или git clone https://github.com/RhinoSecurityLabs/pacu && cd pacu && pip install -r requirements.txt python3 pacu.py
Где получить помощь: Discord-сервер Rhino Security Labs или Stack Overflow
Где сообщать о проблемах: https://github.com/RhinoSecurityLabs/pacu/issues
Поддерживается: Rhino Security Labs
Pacu — это open-source фреймворк для эксплуатации 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 и состоит из идентификатора ключа доступа (access key ID) и секретного ключа доступа (secret access key). Чтобы установить ключи сессии, используйте команду set_keys и следуйте инструкциям для указания псевдонима ключа (название для справки), идентификатора ключа доступа AWS, секретного ключа доступа AWS и маркера сессии AWS (если вы его используете).
Если вы застряли, команда help покажет список доступных команд.
list — выведет список доступных модулей для регионов, установленных в текущей сессии.help имя_модуля — покажет справочную информацию для указанного модуля.run имя_модуля — запустит указанный модуль с параметрами по умолчанию.run имя_модуля --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="<арг1> <значение> <арг2> <значение>" — передать необязательные аргументы модуля выполняемому модулюpacu --set-regions <регион1 регион2 || all> — установить регионы для использования в сессии, разделяйте регионы пробелом или введите all для всех регионовpacu --whoami — получить информацию о текущем пользователеPacu использует набор плагин-модулей для помощи атакующему в перечислении, повышении привилегий, извлечении данных, эксплуатации сервисов и манипуляции логами в средах AWS. Приветствуются вклады или идеи для новых модулей.
Для поддержания темпа с постоянными разработками AWS мы спроектировали Pacu с нуля с учётом расширяемости. Единый синтаксис и структура данных упрощают создание и расширение модулей — нет необходимости указывать регионы AWS или делать избыточные проверки разрешений между модулями. Локальная база данных SQLite используется для управления и обработки полученных данных, минимизируя вызовы API (и связанные с ними логи). Отчётность и аудит атак также встроены в фреймворк; Pacu помогает процессу документации через логирование и экспорт команд, способствуя построению хронологии тестирования.
Мы всегда рады получать отчёты об ошибках в самом фреймворке Pacu, а также тестирование и обратную связь по различным модулям и в целом конструктивную обратную связь для усовершенствования фреймворка. Любая поддержка Pacu через использование, тестирование, улучшение или просто распространение информации будет очень appreciated.
Если вы заинтересованы во вкладе непосредственно в фреймворк Pacu, пожалуйста, ознакомьтесь с нашими руководством по участию для понимания о кодовых соглашениях и принципах работы с git.
Если вы заинтересованы в написании собственных модулей для Pacu, ознакомьтесь со страницей Разработка модулей в Wiki. По мере разработки новых возможностей, пожалуйста, свяжитесь с нами — мы будем рады добавить ваши новые модули в основную коллекцию, поставляемую с Pacu.
Для пошаговых инструкций и полной документации посетите вики Pacu.