Pentesting Cloud Μεθοδολογία

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Βασική Μεθοδολογία

Κάθε cloud έχει τις δικές του ιδιαιτερότητες αλλά γενικά υπάρχουν μερικά κοινά πράγματα που ένας pentester πρέπει να ελέγξει όταν δοκιμάζει ένα cloud περιβάλλον:

  • Benchmark checks
  • Αυτό θα σας βοηθήσει να κατανοήσετε το μέγεθος του περιβάλλοντος και τις υπηρεσίες που χρησιμοποιούνται
  • Θα σας επιτρέψει επίσης να βρείτε μερικές γρήγορες κακοδιαμορφώσεις καθώς μπορείτε να εκτελέσετε τα περισσότερα από αυτά τα tests με αυτοματοποιημένα εργαλεία
  • Services Enumeration
  • Πιθανότατα δεν θα βρείτε πολλές επιπλέον κακοδιαμορφώσεις εδώ αν εκτελέσατε σωστά τα benchmark tests, αλλά μπορεί να βρείτε κάποιες που δεν αναζητήθηκαν στο benchmark test.
  • Αυτό θα σας επιτρέψει να ξέρετε τι ακριβώς χρησιμοποιείται στο cloud περιβάλλον
  • Αυτό θα βοηθήσει πολύ στα επόμενα βήματα
  • Check exposed assets
  • Αυτό μπορεί να γίνει κατά τη διάρκεια της προηγούμενης ενότητας, πρέπει να βρείτε τα πάντα που ενδέχεται να είναι εκτεθειμένα στο Internet με κάποιο τρόπο και πώς μπορούν να προσπελαστούν.
  • Εδώ αναφέρομαι σε χειροκίνητα εκτεθειμένη υποδομή όπως instances με σελίδες web ή άλλες ανοιχτές θύρες, και επίσης σε άλλες cloud managed services που μπορούν να ρυθμιστούν να είναι εκτεθειμένες (όπως DBs ή buckets)
  • Έπειτα πρέπει να ελέγξετε αν αυτός ο πόρος μπορεί να εκτεθεί ή όχι (εμπιστευτικές πληροφορίες; ευπάθειες; κακοδιαμορφώσεις στην εκτεθειμένη υπηρεσία?)
  • Check permissions
  • Εδώ πρέπει να εντοπίσετε όλα τα δικαιώματα κάθε role/user μέσα στο cloud και πώς χρησιμοποιούνται
  • Πολλοί υπερβολικά προνομιούχοι (control everything) λογαριασμοί; Δημιουργημένα keys που δεν χρησιμοποιούνται?… Τα περισσότερα από αυτά τα checks θα έπρεπε να έχουν γίνει ήδη στα benchmark tests
  • Αν ο πελάτης χρησιμοποιεί OpenID ή SAML ή άλλη federation ίσως χρειαστεί να τους ζητήσετε επιπλέον πληροφορίες για πώς ανατίθεται κάθε role (δεν είναι το ίδιο αν ο admin role ανατίθεται σε 1 user ή σε 100)
  • Δεν αρκεί να βρείτε ποιοι χρήστες έχουν admin permissions “*:*”. Υπάρχουν πολλά άλλα permissions που ανάλογα με τις υπηρεσίες που χρησιμοποιούνται μπορεί να είναι πολύ ευαίσθητα.
  • Επιπλέον, υπάρχουν πιθανοί privesc τρόποι να ακολουθηθούν καταχρώμενοι δικαιώματα. Όλα αυτά πρέπει να ληφθούν υπόψη και όσο το δυνατόν περισσότερα privesc paths πρέπει να αναφερθούν.
  • Check Integrations
  • Είναι πολύ πιθανό ότι ενσωματώσεις με άλλα clouds ή SaaS χρησιμοποιούνται μέσα στο cloud περιβάλλον.
  • Για ενσωματώσεις του cloud που ελέγχετε με άλλη πλατφόρμα πρέπει να ενημερώσετε ποιος έχει πρόσβαση για να (κακο)χρησιμοποιήσει αυτή την ενσωμάτωση και να ρωτήσετε πόσο ευαίσθητη είναι η ενέργεια που εκτελείται.
    Για παράδειγμα, ποιος μπορεί να γράψει σε ένα AWS bucket από το οποίο παίρνει δεδομένα το GCP (ρωτήστε πόσο ευαίσθητη είναι η ενέργεια στο GCP που επεξεργάζεται αυτά τα δεδομένα).
  • Για ενσωματώσεις μέσα στο cloud που ελέγχετε από εξωτερικές πλατφόρμες, πρέπει να ρωτήσετε ποιος έχει εξωτερική πρόσβαση για να (κακο)χρησιμοποιήσει αυτή την ενσωμάτωση και να ελέγξετε πώς χρησιμοποιούνται αυτά τα δεδομένα.
    Για παράδειγμα, αν μια υπηρεσία χρησιμοποιεί ένα Docker image φιλοξενούμενο στο GCR, πρέπει να ρωτήσετε ποιος έχει πρόσβαση για να τροποποιήσει αυτό και ποια ευαίσθητα info και πρόσβαση θα αποκτήσει αυτό το image όταν εκτελεστεί μέσα σε ένα AWS cloud.

Εργαλεία Multi-Cloud

Υπάρχουν αρκετά εργαλεία που μπορούν να χρησιμοποιηθούν για να δοκιμάσουν διαφορετικά cloud περιβάλλοντα. Τα βήματα εγκατάστασης και οι σύνδεσμοι θα υποδειχθούν σε αυτή την ενότητα.

PurplePanda

Ένα εργαλείο για να identify bad configurations and privesc path in clouds and across 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 scan που υποστηρίζει: AWS, Azure, Office 365, Rackspace, Salesforce. Απαιτούνται μερικές επιπλέον ρυθμίσεις στο Azure για να αποκτηθεί ένα Client Id.

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 συλλέγει assets και σχέσεις από υπηρεσίες και συστήματα, συμπεριλαμβανομένων υποδομών cloud, εφαρμογών 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

Ένα εργαλείο για να εντοπίζει την υποδομή, αρχεία και εφαρμογές μιας εταιρείας (στόχος) στους κορυφαίους παρόχους cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).

CloudFox

  • Το CloudFox είναι ένα εργαλείο για την εύρεση εκμεταλλεύσιμων μονοπατιών επίθεσης σε υποδομές cloud (προς το παρόν υποστηρίζονται μόνο AWS & Azure, με υποστήριξη για GCP σύντομα).
  • Είναι ένα enumeration εργαλείο που προορίζεται να συμπληρώνει το χειροκίνητο pentesting.
  • Δεν δημιουργεί ή τροποποιεί δεδομένα εντός του cloud περιβάλλοντος.

More lists of cloud security tools

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Common Cloud Security Features

Confidential Computing

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)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks