
Обнаруживайте пути повышения привилегий внутри и между различными облаками

Этот инструмент собирает ресурсы из разных облачных/SaaS-приложений, фокусируясь на правах доступа, чтобы выявить пути повышения привилегий и опасные разрешения в конфигурациях облака/SaaS. Обратите внимание, что PurplePanda ищет как пути повышения привилегий в рамках одной платформы, так и между платформами.
Название происходит от животного Красная панда. Эта панда ест горох, как и Purple Panda, которая может поглощать ключи API/токены, найденные PEASS. Цвет изменён на фиолетовый, потому что этот инструмент в первую очередь предназначен для Фиолетовых команд (поскольку он может быть очень полезен как для Синих, так и для Красных команд).
Каждая папка внутри /intel определяет одну платформу, которую можно перечислить, и содержит файл README.md с описанием использования этого модуля.
Загрузите Neo4jDesktop и создайте базу данных. Затем экспортируйте переменные окружения PURPLEPANDA_NEO4J_URL и PURPLEPANDA_PWD с URL-адресом базы данных neo4j и паролем.
Если вы хотите использовать Shodan с публичными IP-адресами, обнаруженными во время перечисления, экспортируйте переменную окружения SHODAN_KEY с действующим ключом API Shodan.
Затем просто установите и запустите программу, указав платформы, которые вы хотите перечислить, через запятую.
git clone https://github.com/carlospolop/PurplePanda
cd PurplePanda
python3 -m venv .
source bin/activate
python3 -m pip install -r requirements.txt
export PURPLEPANDA_NEO4J_URL="bolt://neo4j@localhost:7687"
export PURPLEPANDA_PWD="s3cr3tpassword"
# Установите это, если собираетесь использовать GCP
gcloud components install gke-gcloud-auth-plugin
python3 main.py -h # Получить справку
python3 main.py -e -p google,github,k8s --github-only-org --k8s-get-secret-values --gcp-get-secret-values # Перечислить google, github и k8s
# Рассмотрите возможность добавления ключей API в Dockerfile
docker rm -f purplepanda
docker build --tag=purplepanda .
# Выполнить -h
## Замените -h на параметры, с которыми нужно запустить purplepanda
docker run -t \
-e PURPLEPANDA_NEO4J_URL="bolt://[email protected]:7687" \
-e PURPLEPANDA_PWD="s3cr3tpassword" \
-e GOOGLE_DISCOVERY=... \
-e GITHUB_DISCOVERY=... \
-e K8S_DISCOVERY=... \
-e CONCOURSE_DISCOVERY=... \
-e CIRCLECI_DISCOVERY=... \
purplepanda python3 main.py -h
## -t необходим для правильного отображения вывода
## Если вы используете Neo4Desktop для подключения к БД, используйте домен host.docker.internal
## Возможно, потребуется использовать опцию '-v' для монтирования файлов с конфигурациями
PurplePanda имеет 2 режима анализа:
-e (перечислить): Основной режим — пытается собрать данные и проанализировать их.-a (анализировать): Быстрый анализ предоставленных учётных данных.Посмотрите, как использовать и анализировать данные, собранные PurplePanda:
Используйте учётные данные для каждой платформы с как минимум правами администратора на чтение всех ресурсов платформы. Это поможет вам точно увидеть пути повышения привилегий, которые могут быть использованы в ваших конфигурациях как в рамках одной платформы, так и между ними.
PurplePanda также предназначен для использования Красными командами. Как правило, облачные/SaaS-платформы не предоставляют всем доступ на чтение конфигурации платформы, поэтому PurplePanda поддерживает использование нескольких ключей для одной платформы, чтобы попытаться перечислить всё с помощью всех скомпрометированных ключей и получить наиболее точное представление о конфигурации платформы.
Используйте параметр -d, указывая каталог. Затем PurplePanda запишет в этот каталог несколько интересных аналитических отчётов в формате csv с информацией, полученной со всех платформ. Рекомендуется найти интересные и неожиданные вещи в этих файлах, а затем перейти к анализу этих интересных случаев с помощью графов.
Каждая папка внутри /intel определяет одну платформу, которую можно перечислить, и содержит файл README.md с описанием использования этого модуля. Кроме того, каждая папка также содержит файл HOW_TO_USE.md и файл QUERIES.md.
В файле HOW_TO_USE.md вы найдёте лучшие запросы для проведения исследования по повышению привилегий (для Фиолетовых, Синих и Красных команд).
В файле QUERIES.md вы найдёте все предлагаемые запросы для более лёгкого анализа данных.
Следуйте инструкциям, указанным в VISUALIZE_GRAPHS.md
В корневой папке и в каждой папке внутри intel/ вы найдёте файл TODO.md. В этих файлах можно узнать, чем вы можете помочь. Просто отправьте PR с дополнением.
PR с исправлениями также приветствуются :)
Кроме того, если у вас есть другие идеи, которых нет в этих TODO-файлах, смело отправляйте PR.
Автор: Carlos PolopTM