gcpwn — это инструмент, созданный мной при попытке изучить GCP и использующий новые клиентские библиотеки GRPC. Он состоит из многочисленных модулей перечисления, которые я написал, а также модулей эксплойтов, использующих исследования, проведенные другими специалистами в этой области (например, Rhino Security), а также некоторых существующих известных автономных инструментов, таких как GCPBucketBrute, с целью сделать этот инструмент универсальным инструментом для тестирования GCP. . В то время как другие сценарии эксплойтов, как правило, используются одноразово, GCPwn хранит как данные, так и разрешения, когда вы работаете с модулями, организуя данные для вас, и повторно используете их, чтобы облегчить вашу жизнь с точки зрения пентестирования/отслеживания разрешений.
Автор: Скотт Уэстон (@webbinroot), NetSPI
Необходимые зависимости: см. «Requirements.txt + Wiki Руководство по установке».
Примечание о зависимостях: тестировалось в основном на Kali Linux; Установка Docker доступна через Dockerfile.
Этот инструмент в основном предназначен для пентестеров, тех, кто только изучает безопасность GCP, и исследователей безопасности в целом.
Для пентестеров, как показано выше, инструмент автоматизирует множество сценариев, которые вы обычно запускаете, и сохраняет данные, чтобы упростить выполнение эксплойт-модулей.
Для тех, кто только изучает безопасность GCP, инструмент настроен таким образом, что вам будет легко добавить собственный модуль с помощью запроса на извлечение при погружении в отдельный сервис.
Для исследователей безопасности этот инструмент позволяет выполнять большое количество вызовов GCP API, и я документирую, как проксировать инструмент в фоновом режиме с помощью локального инструмента, такого как Burp Suite. Таким образом, запуск enum_all
с регистрацией всех запросов в пакете Burp позволит вам увидеть все различные конечные точки API во всех различных библиотеках Python с помощью одной команды. По крайней мере, это надежда, я частично работаю с переменными env, если кто-то сможет закончить взлом кода :)
Просмотрите вики по адресу https://github.com/NetSPI/gcpwn/wiki, чтобы узнать:
Инструкции по установке и настройка папок : Как настроить инструмент для первого использования и используемые папки по умолчанию.
Управление аутентификацией и информация о токенах : загрузите учетные данные пользователя и/или службы для настройки учетных данных.
Управление проектами и получение данных о ресурсах : как управлять идентификаторами проектов и как получать перечисляемые данные из таблиц SQLite.
Руководство по модулям : Как вызвать модуль + подробное описание каждого модуля
Создание модуля : Как добавить свой собственный модуль с помощью запроса на включение (в процессе — запланированная дата 15 сентября 2024 г.)
Research Head Scratchers : темы исследований/открытые вопросы (в процессе – плановая дата: 22 сентября 2024 г.)
Инструмент автоматически по умолчанию использует стандартный вывод «таблица». Инструмент поддерживает таблицы, txt и csv. Если у вас возникли проблемы с таблицами, вы можете изменить глобальные конфигурации следующим образом:
# See global configs global_configs # Set global configs for preferred output global_configs set std-output txt
Или вы можете передать --txt
, --table
и/или --csv
с каждой командой modules run
чтобы изменить стандартный вывод.
modules run enum_buckets --txt
Перечисленные данные хранятся в локальных таблицах в GCPwn. Чтобы увидеть вывод таблицы, запустите
# See all tables data tables # See all table columns data tables--columns # Get all data back and export to CSV file data --columns column1,column2 --csv [OUTPUT_FILE]
Запустите модуль enum_all
, а затем creds info
чтобы просмотреть новые перечисленные разрешения. Затем process_iam_bindings
предоставит вам сводку привязок политик в формате TXT/CSV, если их можно перечислить, а analyze_vulns
попытается пометить неправильные роли/разрешения. См. общие флаги ниже.
Перечислите все (выберите тот, который лучше всего подходит)
# Quickest: Run all enumeration modules + testIAM Permissions modules run enum_all --iam # Longer: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org modules run enum_all --iam --all-permissions # Longer + Downloads: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org + download everyting modules run enum_all --iam --all-permissions --download
Возьмите все привязки политики IAM из enum_all или других модулей выше и верните сводный анализ/анализ уязвимостей.
# Review Permissions User Has Thus Far creds info # Return Policy Summary from IAM Bindings if Applicable modules run process_iam_bindings [--txt] [--csv] # Analyze IAM Bindings + Other Items (like allUsers) if Applicable modules run analyze_vulns [--txt] [--csv]
fwd:cloudsec 2024: https://www.youtube.com/watch?v=opvv9h3Qe0s («GCPwn: инструмент для пентестинга для GCP — Скотт Уэстон»)
Defcon 32 Cloud Village: https://www.youtube.com/watch?v=rxXyYo1n9cw
https://www.netspi.com/blog/technical-blog/cloud-pentesting/introduction-to-gcpwn-part-1/
Я буду следить за выпусками/выборами любых интересных новых вещей, но, как говорится, у меня есть дневная работа, так что дайте мне хотя бы 24 часа или что-то в этом роде :)
Если это небольшая проблема, я бы предпочел открыть ее на вкладке «Проблемы» для быстрого решения.
Созданный на плечах гигантов, авторство некоторых программ и идей/исследований было вдохновлено:
Rhino Security (https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)
GCPBucketBrute (https://github.com/RhinoSecurityLabs/GCPBucketBrute)
МНОГО документации Google (https://cloud.google.com/python/docs/reference)