Pentesting Cloud Методологія
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.
Базова методологія
Кожна cloud має свої особливості, але загалом є кілька спільних речей, які повинен перевірити pentester під час тестування cloud-середовища:
- Перевірки бенчмарку
- Це допоможе вам зрозуміти розмір середовища та використовувані сервіси
- Це також дозволить знайти деякі швидкі misconfigurations, оскільки більшість цих тестів можна виконати за допомогою automated tools
- Services Enumeration
- Якщо ви правильно провели перевірки бенчмарку, ймовірно, тут ви не знайдете значно більше misconfigurations, але можете знайти ті, які не шукали під час бенчмарку.
- Це дозволить вам зрозуміти що саме використовується в cloud-середовищі
- Це дуже допоможе в наступних кроках
- Check exposed assets
- Це можна зробити під час попереднього розділу, вам потрібно знайти все, що потенційно якось доступне з Інтернету, і як до цього можна отримати доступ.
- Тут я маю на увазі мануально експоновану інфраструктуру — наприклад інстанси з веб-сторінками або іншими відкритими портами, а також інші cloud managed services, які можуть бути налаштовані як експоновані (наприклад DBs або buckets)
- Потім потрібно перевірити чи може цей ресурс бути експонований чи ні (конфіденційна інформація? вразливості? misconfigurations в експонованому сервісі?)
- Check permissions
- Тут потрібно виявити всі права кожної ролі/користувача в хмарі та як вони використовуються
- Занадто багато високопривілейованих (контролюють все) облікових записів? Згенеровані ключі не використовуються?… Більшість цих перевірок вже повинні були бути виконані під час бенчмарку
- Якщо клієнт використовує OpenID або SAML або іншу федерацію, вам можливо доведеться попросити у них додаткову інформацію про те, як призначається кожна роль (не одне й те саме, коли роль admin призначена 1 користувачу або 100)
- Недостатньо просто знайти, які користувачі мають права admin "*:*". Є багато інших прав, які в залежності від використаних сервісів можуть бути дуже чутливими.
- Більше того, існують потенційні privesc шляхи для аб’юзу прав. Усі ці речі слід враховувати і слід повідомити якомога більше privesc paths.
- Check Integrations
- Дуже ймовірно, що всередині cloud-середовища використовуються integrations з іншими clouds або SaaS.
- Для інтеграцій cloud, який ви аудитуєте, з іншими платформами слід вказати хто має доступ для (зловживання) цією інтеграцією і запитати наскільки чутливою є дія, що виконується.
Наприклад, хто може записувати в AWS bucket, звідки GCP отримує дані (запитайте, наскільки чутлива дія в GCP при обробці цих даних). - Для інтеграцій всередині cloud, який ви аудитуєте, з зовнішніх платформ слід запитати хто має зовнішній доступ для (зловживання) цією інтеграцією і перевірити, як ці дані використовуються.
Наприклад, якщо сервіс використовує Docker image, розміщений в GCR, потрібно дізнатися, хто має доступ модифікувати його і які чутливі дані та доступи отримає цей образ при виконанні всередині AWS cloud.
Інструменти Multi-Cloud
Є кілька інструментів, які можна використовувати для тестування різних cloud-середовищ. Кроки встановлення та посилання будуть вказані в цьому розділі.
PurplePanda
Інструмент для виявлення неправильних конфігурацій та privesc path у clouds та між clouds/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 має скан Audit Cloud Infrastructure, який підтримує: AWS, Azure, Office 365, Rackspace, Salesforce. Для отримання Client Id у Azure потрібні додаткові налаштування.
cloudlist
Cloudlist — це multi-cloud інструмент для отримання Assets (Hostnames, IP Addresses) з хмарних провайдерів.
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
cartography
Cartography — це інструмент на 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 збирає активи та зв'язки з сервісів і систем, включно з cloud infrastructure, SaaS applications, security controls та ін., у зручне графове подання на базі 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
Інструмент для пошуку інфраструктури компанії (target), файлів та додатків у провідних хмарних провайдерів (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox
- CloudFox — інструмент для пошуку exploitable attack paths у хмарній інфраструктурі (поки що підтримуються тільки AWS & Azure, GCP незабаром).
- Це enumeration tool, призначений доповнювати manual pentesting.
- Він не створює і не змінює жодні дані в cloud environment.
More lists of cloud security tools
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter створює “attack graph” ресурсів в Azure subscription. Воно дозволяє red teams і pentesters візуалізувати attack surface і pivot opportunities в межах tenant, а також посилює ваших defenders, дозволяючи їм швидко зорієнтуватися та пріоритезувати incident response роботу.
Office365
Для цього потрібен Global Admin або принаймні Global Admin Reader (зверніть увагу, що Global Admin Reader дещо обмежений). Однак ці обмеження з'являються в деяких PS modules і їх можна обійти, отримуючи доступ до функцій via the web application.
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.
HackTricks Cloud