Pentesting Cloud Methodik

Reading time: 12 minutes

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 man eine Cloud-Umgebung testet:

  • Benchmark checks
  • Dies hilft dir, die Größe der Umgebung und die verwendeten Dienste zu verstehen.
  • Es ermöglicht dir auch, einige schnelle Fehlkonfigurationen zu finden, da du die meisten dieser Tests mit automatisierten Tools durchführen kannst.
  • Services Enumeration
  • Wahrscheinlich findest du hier nicht viel mehr Fehlkonfigurationen, wenn du die Benchmark-Tests korrekt durchgeführt hast, aber du könntest einige finden, nach denen im Benchmark-Test nicht gesucht wurde.
  • Das ermöglicht dir herauszufinden, was genau in der Cloud-Umgebung verwendet wird.
  • Das hilft sehr bei den nächsten Schritten.
  • Check exposed assets
  • Das kann im vorherigen Abschnitt gemacht werden. Du musst alles herausfinden, das potenziell irgendwie dem Internet ausgesetzt ist, und wie darauf zugegriffen werden kann.
  • Hier meine ich manuell exponierte Infrastruktur, wie Instanzen mit Webseiten oder anderen offenen Ports, und auch cloud managed services, die so konfiguriert werden können, dass sie exponiert sind (z. B. DBs oder Buckets).
  • Dann solltest du prüfen, ob diese Ressource exponiert werden kann oder nicht (vertrauliche Informationen? Schwachstellen? Fehlkonfigurationen im exponierten Service?)
  • Check permissions
  • Hier solltest du alle Berechtigungen jeder Rolle/jedes Benutzers in der Cloud herausfinden und wie sie verwendet werden.
  • Zu viele hoch privilegierte (kontrollieren alles) Accounts? Generierte Keys werden nicht genutzt? ... Die meisten dieser Prüfungen sollten bereits bei 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 bitten, wie jede Rolle zugewiesen wird (es ist nicht dasselbe, ob die Admin-Rolle 1 Benutzer oder 100 Benutzern zugewiesen ist).
  • Es reicht nicht aus herauszufinden, welche Benutzer admin-Berechtigungen ":" haben. Es gibt viele andere Berechtigungen, die je nach genutzten Services sehr sensibel sein können.
  • Außerdem gibt es potenzielle privesc-Wege, die man durch Missbrauch von Berechtigungen verfolgen kann. All diese Dinge sollten berücksichtigt werden und so viele privesc-Pfade wie möglich sollten gemeldet werden.
  • Check Integrations
  • Es ist sehr wahrscheinlich, dass Integrationen mit anderen Clouds oder SaaS innerhalb der Cloud-Umgebung verwendet werden.
  • Für Integrationen der Cloud, die du prüfst mit anderen Plattformen solltest du mitteilen, wer Zugriff hat, diese Integration (ab)zu nutzen, und du solltest fragen, wie sensibel die ausgeführte Aktion ist.
    Zum Beispiel: Wer kann in einen AWS-Bucket schreiben, aus dem GCP Daten bezieht (frage, wie sensibel die Verarbeitung dieser Daten in GCP ist).
  • Für Integrationen innerhalb der Cloud, die du prüfst von externen Plattformen solltest du fragen, wer externen Zugriff hat, diese Integration (ab)zu nutzen, 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 es ändern kann und welche sensiblen Informationen und Zugriffe dieses Image erhält, wenn es innerhalb einer AWS-Cloud ausgeführt wird.

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

Ein Tool, um schlechte Konfigurationen und privesc-Pfade in Clouds und zwischen Clouds/SaaS zu identifizieren.

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

Es unterstützt AWS, GCP & Azure. Anleitungen zur Konfiguration der einzelnen Provider findest du unter 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

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.
Es benötigt python2.7 und scheint nicht mehr gepflegt zu sein.

Nessus

Nessus hat einen Audit Cloud Infrastructure-Scan, der Folgendes 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 Erfassen von Assets (Hostnamen, IP-Adressen) von Cloud-Anbietern.

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

cartography

Cartography ist ein Python-Tool, das Infrastrukturressourcen und die Beziehungen zwischen ihnen in einer intuitiven Graph-Ansicht konsolidiert, die von einer Neo4j-Datenbank betrieben wird.

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

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

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

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

CloudFox

  • CloudFox ist ein Tool, um exploitable attack paths in Cloud-Infrastruktur zu finden (derzeit werden nur AWS & Azure unterstützt; GCP folgt).
  • Es ist ein enumeration tool, das manuelle pentesting ergänzt.
  • 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

Attack Graph

Stormspotter erstellt einen “attack graph” der Ressourcen in einer Azure subscription. Damit können red teams und pentesters die attack surface und pivot opportunities innerhalb eines tenant visualisieren und Ihre defenders dabei unterstützen, Incident Response schnell zu orientieren und zu priorisieren.

Office365

Sie benötigen Global Admin oder mindestens Global Admin Reader (beachten Sie jedoch, dass Global Admin Reader etwas eingeschränkt ist). Diese Einschränkungen treten jedoch in einigen PS modules auf und können umgangen werden, indem man die Funktionen via the web application aufruft.

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