Pentesting Cloud Methodologie

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Grundlegende Methodik

Jede Cloud hat ihre eigenen Besonderheiten, aber im Allgemeinen gibt es ein paar gemeinsame Dinge, die ein pentester prüfen sollte, wenn er eine Cloud-Umgebung testet:

  • Benchmark checks
  • Dies hilft dir, die Größe der Umgebung und die genutzten Services zu verstehen
  • Es ermöglicht dir außerdem, einige schnelle Fehlkonfigurationen zu finden, da du die meisten dieser Tests mit automatisierten Tools durchführen kannst
  • Services Enumeration
  • Wenn du die Benchmark-Tests korrekt durchgeführt hast, wirst du hier wahrscheinlich nicht viele zusätzliche Fehlkonfigurationen finden, aber möglicherweise solche, die im Benchmark-Test nicht explizit gesucht wurden.
  • Dies ermöglicht dir, genau zu wissen, was in der Cloud-Umgebung verwendet wird
  • Das hilft enorm für die nächsten Schritte
  • Check exposed assets
  • Dies kann während des vorherigen Abschnitts erfolgen; du musst alles finden, was potenziell irgendwie dem Internet ausgesetzt ist und wie darauf zugegriffen werden kann.
  • Hier beziehe ich mich auf manuell exponierte Infrastruktur wie instances mit Webseiten oder anderen offenen Ports und auch auf andere cloud-managed Services, die so konfiguriert werden können, dass sie exponiert sind (z. B. DBs oder buckets)
  • Danach solltest du prüfen, ob diese Ressource exponiert werden kann oder nicht (vertrauliche Informationen? vulnerabilities? Fehlkonfigurationen im exponierten Service?)
  • Check permissions
  • Hier solltest du alle Berechtigungen jedes Roles/Users innerhalb der Cloud ermitteln und wie sie verwendet werden
  • Zu viele hoch privilegierte (kontrollieren alles) Konten? Generierte Keys, die nicht verwendet werden?… Die meisten dieser Checks sollten bereits in den Benchmark-Tests durchgeführt worden sein
  • Wenn der Kunde OpenID oder SAML oder eine andere Federation verwendet, musst du ihn möglicherweise um weitere Informationen darüber bitten, wie jede Rolle zugewiesen wird (es ist nicht dasselbe, ob die Admin-Rolle 1 User oder 100 Usern zugewiesen ist)
  • Es reicht nicht aus herauszufinden, welche Nutzer Admin-Berechtigungen “*:*” haben. Es gibt viele andere Berechtigungen, die je nach genutzten Services sehr sensibel sein können.
  • Darüber hinaus gibt es potenzielle privesc-Wege, die man durch Missbrauch von Berechtigungen verfolgen kann. All diese Dinge sollten berücksichtigt werden und möglichst viele privesc-Pfade sollten gemeldet werden.
  • Check Integrations
  • Sehr wahrscheinlich werden Integrationen mit anderen Clouds oder SaaS innerhalb der Cloud-Umgebung verwendet.
  • Für Integrationen der Cloud, die du auditierst, mit anderen Plattformen solltest du benachrichtigen, wer Zugang hat, diese Integration (ab)zunutzen, und du solltest fragen, wie sensibel die durchgeführte Aktion ist.
    Zum Beispiel: Wer kann in einen AWS bucket schreiben, aus dem GCP Daten bezieht (frage, wie sensibel die Aktion in GCP im Umgang mit diesen Daten ist).
  • Für Integrationen innerhalb der Cloud, die du auditierst, aus externen Plattformen heraus, solltest du fragen, wer externen Zugang hat, diese Integration (ab)zunutzen, und prüfen, wie diese Daten verwendet werden.
    Zum Beispiel: Wenn ein Service ein Docker image verwendet, das in GCR gehostet wird, solltest du fragen, wer Zugriff hat, dieses Image zu modifizieren und welche sensitiven Informationen und Zugriffe dieses Image beim Ausführen innerhalb einer AWS-Cloud erhalten würde.

Multi-Cloud tools

Es gibt mehrere Tools, die verwendet werden können, um verschiedene Cloud-Umgebungen zu testen. Die Installationsschritte und Links werden in diesem Abschnitt angegeben.

PurplePanda

A tool to 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

Unterstützt AWS, GCP & Azure. Prüfe, wie du jeden Anbieter in https://docs.prowler.cloud/en/latest/#aws konfigurierst.

# 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

Lade Steampipe herunter und installiere es (https://steampipe.io/downloads). Oder verwende Brew:

brew tap turbot/tap
brew install steampipe

cs-suite

AWS, GCP, Azure, DigitalOcean.
Benötigt python2.7 und scheint nicht mehr gewartet zu werden.

Nessus

Nessus bietet einen Audit Cloud Infrastructure-Scan, der folgende Plattformen unterstützt: AWS, Azure, Office 365, Rackspace, Salesforce. Für Azure sind einige zusätzliche Konfigurationen erforderlich, um eine Client Id zu erhalten.

cloudlist

Cloudlist ist ein Multi-Cloud-Tool zum Ermitteln von Assets (Hostnames, IP-Adressen) von Cloud-Providern.

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 ist ein Python-Tool, das Infrastruktur-Assets und die Beziehungen zwischen ihnen in einer intuitiven Graph-Ansicht konsolidiert, die von einer Neo4j-Datenbank angetrieben wird.

# 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 sammelt assets und relationships von Diensten und Systemen, einschließlich Cloud-Infrastruktur, SaaS-Anwendungen, Sicherheitskontrollen und mehr, und stellt diese in einer intuitiven Graph-Ansicht dar, die von der Neo4j-Datenbank unterstützt wird.

# 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

Entdeckt die am höchsten privilegierten Benutzer in der gescannten AWS- oder Azure-Umgebung, einschließlich der AWS Shadow Admins. Es verwendet 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

Ein Tool, um die Infrastruktur, Dateien und Apps eines Unternehmens (Ziels) bei den großen Cloud-Anbietern (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode) zu finden.

CloudFox

  • CloudFox ist ein Tool, um ausnutzbare Angriffswege in Cloud-Infrastrukturen zu finden (derzeit werden nur AWS & Azure unterstützt, GCP folgt demnächst).
  • Es ist ein Enumeration-Tool, das manuelles pentesting ergänzen soll.
  • Es erstellt oder verändert keine Daten innerhalb der Cloud-Umgebung.

More lists of cloud security tools

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Allgemeine Cloud-Sicherheitsfunktionen

Confidential Computing

Luks2 Header Malleability Null Cipher Abuse

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks