Pentesting Cloud Methodology

Support HackTricks

Basic Methodology

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

  • Перевірки стандартів

  • Це допоможе вам зрозуміти розмір середовища та використовувані сервіси

  • Це також дозволить вам знайти деякі швидкі неправильні налаштування, оскільки ви можете виконати більшість цих тестів за допомогою автоматизованих інструментів

  • Перерахування сервісів

  • Ви, напевно, не знайдете багато інших неправильних налаштувань тут, якщо ви правильно виконали перевірки стандартів, але ви можете знайти деякі, які не були перевірені під час тесту стандартів.

  • Це дозволить вам дізнатися, що саме використовується в хмарному середовищі

  • Це дуже допоможе на наступних етапах

  • Перевірка відкритих активів

  • Це можна зробити під час попереднього розділу, вам потрібно виявити все, що потенційно відкрито в Інтернеті і як до цього можна отримати доступ.

  • Тут я маю на увазі вручну відкриту інфраструктуру, таку як інстанси з веб-сторінками або інші порти, що відкриті, а також інші управляємі хмарні сервіси, які можуть бути налаштовані на відкриття (такі як бази даних або контейнери)

  • Потім ви повинні перевірити, чи може цей ресурс бути відкритим чи ні (конфіденційна інформація? вразливості? неправильні налаштування в відкритому сервісі?)

  • Перевірка дозволів

  • Тут ви повинні виявити всі дозволи кожної ролі/користувача всередині хмари і як вони використовуються

  • Занадто багато високопривілейованих (контроль всього) облікових записів? Згенеровані ключі не використовуються?... Більшість цих перевірок вже повинні були бути виконані під час тестів стандартів

  • Якщо клієнт використовує OpenID або SAML або іншу федерацію, вам, можливо, потрібно буде запитати у них додаткову інформацію про те, як призначається кожна роль (не те саме, що роль адміністратора призначена 1 користувачу або 100)

  • Недостатньо просто знайти, які користувачі мають адміністративні дозволи "*:*". Є багато інших дозволів, які, залежно від використовуваних сервісів, можуть бути дуже чутливими.

  • Більше того, є потенційні шляхи підвищення привілеїв, які можна використовувати, зловживаючи дозволами. Усі ці речі повинні бути враховані, і якомога більше шляхів підвищення привілеїв повинні бути зафіксовані.

  • Перевірка інтеграцій

  • Існує висока ймовірність, що інтеграції з іншими хмарами або SaaS використовуються всередині хмарного середовища.

  • Для інтеграцій хмари, яку ви перевіряєте, з іншою платформою ви повинні повідомити хто має доступ до (зловживати) цією інтеграцією і ви повинні запитати наскільки чутливим є виконуване дію. Наприклад, хто може записувати в контейнер AWS, з якого GCP отримує дані (запитайте, наскільки чутливим є дія в GCP, що стосується цих даних).

  • Для інтеграцій всередині хмари, яку ви перевіряєте, з зовнішніх платформ, ви повинні запитати хто має зовнішній доступ до (зловживати) цією інтеграцією і перевірити, як ці дані використовуються. Наприклад, якщо сервіс використовує Docker-образ, розміщений у GCR, ви повинні запитати, хто має доступ до його зміни і яку чутливу інформацію та доступ отримає цей образ при виконанні всередині хмари AWS.

Multi-Cloud tools

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

Інструмент для виявлення поганих налаштувань і шляхів підвищення привілеїв у хмарах і між хмарами/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

Він підтримує 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

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

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 (https://steampipe.io/downloads). Або використовуйте Brew:

brew tap turbot/tap
brew install steampipe

AWS, GCP, Azure, DigitalOcean. Вимагає python2.7 і виглядає непідтримуваним.

Nessus

Nessus має Аудит хмарної інфраструктури сканування, що підтримує: AWS, Azure, Office 365, Rackspace, Salesforce. Деякі додаткові налаштування в Azure потрібні для отримання Client Id.

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 збирає активи та відносини з сервісів і систем, включаючи хмарну інфраструктуру, 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

Виявлення найбільш привілейованих користувачів у відсканованому середовищі 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

Інструмент для знаходження інфраструктури, файлів та додатків компанії (цілі) на провідних хмарних платформах (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).

  • CloudFox - це інструмент для знаходження експлуатованих шляхів атаки в хмарній інфраструктурі (в даний час підтримуються лише AWS та Azure, GCP незабаром).

  • Це інструмент для перерахунку, який призначений для доповнення ручного pentesting.

  • Він не створює і не модифікує жодні дані в хмарному середовищі.

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

Google

GCP

Workspace

AWS

Azure

Attack Graph

Stormspotter створює “граф атаки” ресурсів у підписці Azure. Це дозволяє червоним командам та pentesters візуалізувати поверхню атаки та можливості повороту в межах орендаря, а також підвищує ефективність ваших захисників для швидкої орієнтації та пріоритизації роботи з реагування на інциденти.

Office365

Вам потрібен Global Admin або принаймні Global Admin Reader (але зверніть увагу, що Global Admin Reader має деякі обмеження). Однак ці обмеження з'являються в деяких PS модулях і можуть бути обійдені, отримуючи доступ до функцій через веб-додаток.

Підтримати HackTricks

Last updated