Методологія Pentesting Cloud

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

Базова методологія

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

  • Перевірки бенчмарку
  • Це допоможе вам зрозуміти розмір середовища та використовувані сервіси
  • Це також дозволить знайти деякі швидкі неправильні конфігурації, оскільки більшість цих тестів можна виконати за допомогою автоматизованих інструментів
  • Перерахування сервісів
  • Ймовірно ви не знайдете набагато більше неправильних конфігурацій тут, якщо правильно виконали бенчмарк-перевірки, але може трапитись щось, що не шукали під час бенчмарку.
  • Це дозволить вам знати що саме використовується в хмарному середовищі
  • Це дуже допоможе на наступних кроках
  • Перевірка експонованих ресурсів
  • Це можна робити під час попереднього розділу, потрібно з’ясувати все, що потенційно експоновано в Internet якимось чином і як до цього можна отримати доступ.
  • Тут я маю на увазі мануально експоновану інфраструктуру — наприклад інстанси з веб-сторінками або іншими відкритими портами, а також інші керовані хмарні сервіси, які можуть бути налаштовані як експоновані (наприклад DBs або buckets)
  • Потім слід перевірити чи можна отримати доступ до цього ресурсу (конфіденційна інформація? вразливості? неправильні конфігурації в експонованому сервісі?)
  • Перевірка дозволів
  • Тут ви повинні виявити всі дозволи кожної ролі/кожного користувача всередині хмари і як вони використовуються
  • Забагато високо привілейованих (control everything) акаунтів? Згенеровані ключі, якими не користуються? … Більшість цих перевірок вже має бути виконана під час бенчмарку
  • Якщо клієнт використовує OpenID або SAML або іншу federation, можливо вам потрібно попросити додаткову інформацію про те, як призначається кожна роль (не те саме, коли роль admin призначена 1 користувачу або 100)
  • Недостатньо лише знайти, які користувачі мають права admin “*:*”. Є багато інших дозволів, які залежно від використовуваних сервісів можуть бути дуже чутливими.
  • Більше того, існують потенційні privesc шляхи, які можна використати зловживаючи дозволами. Усі ці речі потрібно врахувати і по можливості задокументувати якомога більше privesc шляхів.
  • Перевірка інтеграцій
  • Дуже ймовірно, що інтеграції з іншими хмарами або SaaS використовуються в межах хмарного середовища.
  • Для інтеграцій хмари, яку ви аудитуєте, з іншими платформами слід повідомити хто має доступ (щоб (злов)використати цю інтеграцію) і запитати, наскільки чутлива дія, що виконується.
    Наприклад, хто може записувати в AWS bucket, звідки GCP отримує дані (запитайте, наскільки чутлива ця дія в GCP при обробці тих даних).
  • Для інтеграцій всередині хмари, яку ви аудитуєте, з зовнішніх платформ, слід запитати хто зовні має доступ (щоб (злов)використати цю інтеграцію) і перевірити, як ці дані використовуються.
    Наприклад, якщо сервіс використовує Docker image, розміщений в GCR, запитайте, хто має доступ змінювати його та яку чутливу інформацію і доступ отримає цей образ при виконанні всередині AWS cloud.

Інструменти Multi-Cloud

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

PurplePanda

Інструмент для виявлення неправильних конфігурацій та privesc path у хмарах та між хмарами/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 tool for getting Assets (Hostnames, IP Addresses) з Cloud Providers.

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

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

Додаткові списки інструментів для безпеки хмар

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Загальні функції безпеки хмар

Конфіденційні обчислення

Luks2 Header Malleability Null Cipher Abuse

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