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

Basic Methodology

Кожен хмарний сервіс має свої особливості, але загалом є кілька загальних речей, які повинен перевірити пентестер під час тестування хмарного середовища:

  • Перевірки стандартів
  • Це допоможе вам зрозуміти розмір середовища та використовувані сервіси
  • Це також дозволить вам знайти деякі швидкі неправильні налаштування, оскільки більшість з цих тестів можна виконати за допомогою автоматизованих інструментів
  • Перерахування сервісів
  • Ви, ймовірно, не знайдете багато інших неправильних налаштувань тут, якщо ви правильно виконали перевірки стандартів, але ви можете знайти деякі, які не були враховані в тестах стандартів.
  • Це дозволить вам дізнатися, що саме використовується в хмарному середовищі
  • Це дуже допоможе на наступних етапах
  • Перевірка відкритих активів
  • Це можна зробити під час попереднього розділу, вам потрібно виявити все, що потенційно відкрито в Інтернеті і як до цього можна отримати доступ.
  • Тут я маю на увазі вручну відкриту інфраструктуру, таку як інстанси з веб-сторінками або інші порти, що відкриті, а також інші управляємі хмарні сервіси, які можуть бути налаштовані на відкриття (такі як бази даних або бакети)
  • Потім ви повинні перевірити, чи може цей ресурс бути відкритим чи ні (конфіденційна інформація? вразливості? неправильні налаштування в відкритому сервісі?)
  • Перевірка дозволів
  • Тут ви повинні виявити всі дозволи кожної ролі/користувача всередині хмари і як вони використовуються
  • Занадто багато високопривілейованих (контроль всього) акаунтів? Згенеровані ключі не використовуються?... Більшість цих перевірок вже повинні були бути виконані в тестах стандартів
  • Якщо клієнт використовує OpenID або SAML або іншу федерацію, вам, можливо, потрібно буде запитати у них додаткову інформацію про те, як призначається кожна роль (не те саме, що роль адміністратора призначена 1 користувачу або 100)
  • Недостатньо просто знайти, які користувачі мають адміністративні дозволи "*:*". Є багато інших дозволів, які, залежно від використовуваних сервісів, можуть бути дуже чутливими.
  • Більше того, є потенційні шляхи підвищення привілеїв, які можна використовувати, зловживаючи дозволами. Усі ці речі повинні бути враховані, і якомога більше шляхів підвищення привілеїв повинні бути зафіксовані.
  • Перевірка інтеграцій
  • Існує висока ймовірність, що інтеграції з іншими хмарами або SaaS використовуються всередині хмарного середовища.
  • Для інтеграцій хмари, яку ви перевіряєте, з іншою платформою ви повинні повідомити, хто має доступ до (зловживати) цією інтеграцією і ви повинні запитати, наскільки чутливим є виконуване діяння.
    Наприклад, хто може записувати в бакет AWS, з якого GCP отримує дані (запитайте, наскільки чутливим є це діяння в GCP при обробці цих даних).
  • Для інтеграцій всередині хмари, яку ви перевіряєте, з зовнішніх платформ, ви повинні запитати, хто має зовнішній доступ до (зловживати) цією інтеграцією і перевірити, як ці дані використовуються.
    Наприклад, якщо сервіс використовує Docker-образ, розміщений у GCR, ви повинні запитати, хто має доступ до його зміни і яку чутливу інформацію та доступ отримає цей образ при виконанні всередині хмари AWS.

Multi-Cloud tools

Існує кілька інструментів, які можна використовувати для тестування різних хмарних середовищ. Кроки установки та посилання будуть вказані в цьому розділі.

PurplePanda

Інструмент для виявлення поганих налаштувань і шляхів підвищення привілеїв у хмарах і між хмарами/SaaS.

bash
# 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

bash
# 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

bash
# 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

bash
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-адрес) від постачальників хмарних послуг.

bash
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.

bash
# 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.

bash
# 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.

bash
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.
  • Він не створює і не модифікує жодні дані в хмарному середовищі.

Більше списків інструментів безпеки хмари

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

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