Pentesting Cloud Methodology
Reading time: 12 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Basic Methodology
Кожен хмарний сервіс має свої особливості, але загалом є кілька загальних речей, які повинен перевірити пентестер під час тестування хмарного середовища:
- Перевірки стандартів
- Це допоможе вам зрозуміти розмір середовища та використовувані сервіси
- Це також дозволить вам знайти деякі швидкі неправильні налаштування, оскільки більшість з цих тестів можна виконати за допомогою автоматизованих інструментів
- Перерахування сервісів
- Ви, ймовірно, не знайдете багато інших неправильних налаштувань тут, якщо ви правильно виконали перевірки стандартів, але ви можете знайти деякі, які не були враховані в тестах стандартів.
- Це дозволить вам дізнатися, що саме використовується в хмарному середовищі
- Це дуже допоможе на наступних етапах
- Перевірка відкритих активів
- Це можна зробити під час попереднього розділу, вам потрібно виявити все, що потенційно відкрито в Інтернеті і як до цього можна отримати доступ.
- Тут я маю на увазі вручну відкриту інфраструктуру, таку як інстанси з веб-сторінками або інші порти, що відкриті, а також інші управляємі хмарні сервіси, які можуть бути налаштовані на відкриття (такі як бази даних або бакети)
- Потім ви повинні перевірити, чи може цей ресурс бути відкритим чи ні (конфіденційна інформація? вразливості? неправильні налаштування в відкритому сервісі?)
- Перевірка дозволів
- Тут ви повинні виявити всі дозволи кожної ролі/користувача всередині хмари і як вони використовуються
- Занадто багато високопривілейованих (контроль всього) акаунтів? Згенеровані ключі не використовуються?... Більшість цих перевірок вже повинні були бути виконані в тестах стандартів
- Якщо клієнт використовує OpenID або SAML або іншу федерацію, вам, можливо, потрібно буде запитати у них додаткову інформацію про те, як призначається кожна роль (не те саме, що роль адміністратора призначена 1 користувачу або 100)
- Недостатньо просто знайти, які користувачі мають адміністративні дозволи "*:*". Є багато інших дозволів, які, залежно від використовуваних сервісів, можуть бути дуже чутливими.
- Більше того, є потенційні шляхи підвищення привілеїв, які можна використовувати, зловживаючи дозволами. Усі ці речі повинні бути враховані, і якомога більше шляхів підвищення привілеїв повинні бути зафіксовані.
- Перевірка інтеграцій
- Існує висока ймовірність, що інтеграції з іншими хмарами або SaaS використовуються всередині хмарного середовища.
- Для інтеграцій хмари, яку ви перевіряєте, з іншою платформою ви повинні повідомити, хто має доступ до (зловживати) цією інтеграцією і ви повинні запитати, наскільки чутливим є виконуване діяння.
Наприклад, хто може записувати в бакет AWS, з якого GCP отримує дані (запитайте, наскільки чутливим є це діяння в GCP при обробці цих даних). - Для інтеграцій всередині хмари, яку ви перевіряєте, з зовнішніх платформ, ви повинні запитати, хто має зовнішній доступ до (зловживати) цією інтеграцією і перевірити, як ці дані використовуються.
Наприклад, якщо сервіс використовує Docker-образ, розміщений у GCR, ви повинні запитати, хто має доступ до його зміни і яку чутливу інформацію та доступ отримає цей образ при виконанні всередині хмари AWS.
Multi-Cloud tools
Існує кілька інструментів, які можна використовувати для тестування різних хмарних середовищ. Кроки установки та посилання будуть вказані в цьому розділі.
PurplePanda
Інструмент для виявлення поганих налаштувань і шляхів підвищення привілеїв у хмарах і між хмарами/SaaS.
# You need to install and run neo4j also
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="neo4j_pwd_4_purplepanda"
python3 main.py -h # Get help
Prowler
Він підтримує AWS, GCP & Azure. Перевірте, як налаштувати кожного постачальника в https://docs.prowler.cloud/en/latest/#aws
# Install
pip install prowler
prowler -v
# Run
prowler <provider>
# Example
prowler aws --profile custom-profile [-M csv json json-asff html]
# Get info about checks & services
prowler <provider> --list-checks
prowler <provider> --list-services
CloudSploit
AWS, Azure, Github, Google, Oracle, Alibaba
# Install
git clone https://github.com/aquasecurity/cloudsploit.git
cd cloudsploit
npm install
./index.js -h
## Docker instructions in github
ScoutSuite
AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure
mkdir scout; cd scout
virtualenv -p python3 venv
source venv/bin/activate
pip install scoutsuite
scout --help
## Using Docker: https://github.com/nccgroup/ScoutSuite/wiki/Docker-Image
Steampipe
Завантажте та встановіть Steampipe (https://steampipe.io/downloads). Або використовуйте Brew:
brew tap turbot/tap
brew install steampipe
cs-suite
AWS, GCP, Azure, DigitalOcean.
Вимагає python2.7 і виглядає так, ніби не підтримується.
Nessus
Nessus має Аудит хмарної інфраструктури сканування, що підтримує: AWS, Azure, Office 365, Rackspace, Salesforce. Деякі додаткові налаштування в Azure потрібні для отримання Client Id.
cloudlist
Cloudlist є інструментом для багатохмарного отримання активів (імен хостів, IP-адрес) від постачальників хмарних послуг.
cd /tmp
wget https://github.com/projectdiscovery/cloudlist/releases/latest/download/cloudlist_1.0.1_macOS_arm64.zip
unzip cloudlist_1.0.1_macOS_arm64.zip
chmod +x cloudlist
sudo mv cloudlist /usr/local/bin
картографія
Картографія - це інструмент на Python, який консолідує інфраструктурні активи та відносини між ними в інтуїтивно зрозумілому графічному вигляді, що працює на базі Neo4j.
# Installation
docker image pull ghcr.io/lyft/cartography
docker run --platform linux/amd64 ghcr.io/lyft/cartography cartography --help
## Install a Neo4j DB version 3.5.*
starbase
Starbase збирає активи та відносини з сервісів і систем, включаючи хмарну інфраструктуру, SaaS-додатки, засоби безпеки та інше, в інтуїтивно зрозумілому графічному вигляді, підтримуваному базою даних Neo4j.
# You are going to need Node version 14, so install nvm following https://tecadmin.net/install-nvm-macos-with-homebrew/
npm install --global yarn
nvm install 14
git clone https://github.com/JupiterOne/starbase.git
cd starbase
nvm use 14
yarn install
yarn starbase --help
# Configure manually config.yaml depending on the env to analyze
yarn starbase setup
yarn starbase run
# Docker
git clone https://github.com/JupiterOne/starbase.git
cd starbase
cp config.yaml.example config.yaml
# Configure manually config.yaml depending on the env to analyze
docker build --no-cache -t starbase:latest .
docker-compose run starbase setup
docker-compose run starbase run
SkyArk
Виявлення найбільш привілейованих користувачів у відсканованому середовищі AWS або Azure, включаючи AWS Shadow Admins. Він використовує PowerShell.
Import-Module .\SkyArk.ps1 -force
Start-AzureStealth
# in the Cloud Console
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cyberark/SkyArk/master/AzureStealth/AzureStealth.ps1')
Scan-AzureAdmins
Cloud Brute
Інструмент для знаходження інфраструктури компанії (цілі), файлів та додатків на провідних хмарних платформах (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox
- CloudFox - це інструмент для знаходження експлуатованих шляхів атаки в хмарній інфраструктурі (в даний час підтримуються лише AWS та Azure, GCP незабаром).
- Це інструмент для перерахунку, який призначений для доповнення ручного pentesting.
- Він не створює і не модифікує жодні дані в хмарному середовищі.
Більше списків інструментів безпеки хмари
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter створює "графік атаки" ресурсів у підписці Azure. Це дозволяє червоним командам та pentester'ам візуалізувати поверхню атаки та можливості для переходу в межах орендаря, а також значно покращує вашу оборону для швидкої орієнтації та пріоритизації роботи з реагування на інциденти.
Office365
Вам потрібен Global Admin або принаймні Global Admin Reader (але зверніть увагу, що Global Admin Reader має деякі обмеження). Однак ці обмеження з'являються в деяких PS модулях і можуть бути обійдені, отримуючи доступ до функцій через веб-додаток.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.