Metodologia Pentesting Cloud

Reading time: 12 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Metodologia di base

Ogni cloud ha le sue peculiarità ma, in generale, ci sono alcune cose comuni che un pentester dovrebbe verificare quando testa un ambiente cloud:

  • Controlli di benchmark
  • Questo ti aiuterà a capire la dimensione dell'ambiente e i servizi utilizzati
  • Permetterà anche di trovare alcune misconfigurazioni rapide poiché puoi eseguire la maggior parte di questi test con strumenti automatici
  • Enumerazione dei servizi
  • Probabilmente non troverai molte altre misconfigurazioni se hai eseguito correttamente i controlli di benchmark, ma potresti trovare alcune cose che non sono state cercate nei controlli di benchmark.
  • Questo ti permetterà di sapere cosa viene esattamente utilizzato nell'ambiente cloud
  • Questo aiuterà molto nei passi successivi
  • Controlla le risorse esposte
  • Questo può essere fatto durante la sezione precedente: devi scoprire tutto ciò che è potenzialmente esposto a Internet in qualche modo e come può essere accessibile.
  • Qui intendo l'infrastruttura esposta manualmente come istanze con pagine web o altre porte esposte, e anche altri servizi gestiti cloud che possono essere configurati per essere esposti (ad esempio DB o bucket)
  • Poi dovresti verificare se quella risorsa è effettivamente esposta o meno (informazioni riservate? vulnerabilità? misconfigurazioni nel servizio esposto?)
  • Verifica le autorizzazioni
  • Qui dovresti scoprire tutte le autorizzazioni di ciascun ruolo/utente all'interno del cloud e come vengono utilizzate
  • Troppi account con privilegi elevati (controllano tutto)? Chiavi generate non usate?... La maggior parte di questi controlli dovrebbe essere già stata fatta nei test di benchmark
  • Se il cliente usa OpenID, SAML o un'altra federazione, potrebbe essere necessario chiedere ulteriori informazioni su come viene assegnato ciascun ruolo (non è lo stesso che il ruolo admin sia assegnato a 1 utente o a 100)
  • Non basta identificare quali utenti hanno permessi admin "*:*". Ci sono molte altre autorizzazioni che, a seconda dei servizi usati, possono essere molto sensibili.
  • Inoltre, esistono possibili vie di privesc sfruttando le autorizzazioni. Tutte queste cose devono essere prese in considerazione e devono essere riportati quanti più percorsi di privesc possibile.
  • Verifica le integrazioni
  • È molto probabile che all'interno dell'ambiente cloud siano usate integrazioni con altri cloud o SaaS.
  • Per le integrazioni del cloud che stai auditando con altre piattaforme dovresti notificare chi ha accesso per (ab)usare quell'integrazione e dovresti chiedere quanto è sensibile l'azione eseguita.
    Per esempio, chi può scrivere in un bucket AWS da cui GCP sta prendendo dati (chiedi quanto è sensibile l'azione in GCP nel trattare quei dati).
  • Per le integrazioni all'interno del cloud che stai auditando provenienti da piattaforme esterne, dovresti chiedere chi ha accesso esterno per (ab)usare quell'integrazione e verificare come vengono utilizzati quei dati.
    Per esempio, se un servizio utilizza un'immagine Docker ospitata in GCR, dovresti chiedere chi ha accesso per modificarla e quali informazioni sensibili e accessi otterrà quell'immagine quando eseguita all'interno di un cloud AWS.

Strumenti multi-cloud

Esistono diversi strumenti che possono essere usati per testare diversi ambienti cloud. I passaggi di installazione e i link saranno indicati in questa sezione.

PurplePanda

Uno strumento per identificare configurazioni errate e percorsi di privesc nei cloud e tra cloud/SaaS.

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

Supporta AWS, GCP & Azure. Consulta come configurare ogni provider in 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

Scarica e installa Steampipe (https://steampipe.io/downloads). Oppure usa Brew:

brew tap turbot/tap
brew install steampipe

cs-suite

AWS, GCP, Azure, DigitalOcean.
Richiede python2.7 e sembra non essere mantenuto.

Nessus

Nessus ha una scansione Audit Cloud Infrastructure che supporta: AWS, Azure, Office 365, Rackspace, Salesforce. Sono necessarie alcune configurazioni aggiuntive in Azure per ottenere un Client Id.

cloudlist

Cloudlist è uno strumento multi-cloud per ottenere Assets (Hostnames, IP Addresses) dai fornitori cloud.

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 è uno strumento Python che consolida gli asset dell'infrastruttura e le relazioni tra di essi in una visualizzazione a grafo intuitiva alimentata da un database Neo4j.

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 raccoglie asset e relazioni da servizi e sistemi, incluse infrastrutture cloud, applicazioni SaaS, controlli di sicurezza e altro, in una visualizzazione a grafo intuitiva supportata dal database Neo4j.

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

Individua gli utenti più privilegiati nell'ambiente AWS o Azure scansionato, inclusi gli AWS Shadow Admins. Usa 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

Uno strumento per trovare l'infrastruttura di un'azienda (target), file e app sui principali provider cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).

CloudFox

  • CloudFox è uno strumento per trovare exploitable attack paths nella cloud infrastructure (attualmente supportati solo AWS & Azure con GCP in arrivo).
  • È un enumeration tool pensato per integrare il pentesting manuale.
  • Non crea né modifica alcun dato all'interno dell'ambiente cloud.

More lists of cloud security tools

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Attack Graph

Stormspotter crea un “attack graph” delle risorse in una subscription Azure. Permette a red teams e pentesters di visualizzare la attack surface e le opportunità di pivot all'interno di un tenant, e potenzia i tuoi defender per orientarsi rapidamente e prioritizzare il lavoro di incident response.

Office365

Hai bisogno di Global Admin o almeno Global Admin Reader (nota però che Global Admin Reader è un po' limitato). Tuttavia, tali limitazioni si presentano in alcuni moduli PS e possono essere bypassate accedendo alle funzionalità tramite l'applicazione web.

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks