Metodologia di Pentesting Cloud

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
  • Ti permetterà anche di trovare alcune misconfigurazioni rapide, dato che puoi eseguire la maggior parte di questi test con strumenti automatizzati
  • Enumerazione dei servizi
  • Probabilmente non troverai molte altre misconfigurazioni qui se hai eseguito correttamente i controlli di benchmark, ma potresti trovare alcune che non sono state cercate nei test di benchmark.
  • Questo ti permetterà di sapere cosa è esattamente utilizzato nell’ambiente cloud
  • Questo aiuterà molto nei passaggi successivi
  • Verifica degli asset esposti
  • Questo può essere fatto durante la sezione precedente: devi scoprire tutto ciò che è potenzialmente esposto su 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 (come DBs o bucket)
  • Poi dovresti verificare se quella risorsa può essere esposta o meno (informazioni confidenziali? vulnerabilità? misconfigurazioni nel servizio esposto?)
  • Controlla le autorizzazioni
  • Qui dovresti scoprire tutte le autorizzazioni di ogni ruolo/utente all’interno del cloud e come vengono utilizzate
  • Troppi account altamente privilegiati (controllano tutto)? Chiavi generate non utilizzate?… La maggior parte di questi controlli dovrebbe essere già stata fatta nei test di benchmark
  • Se il cliente utilizza OpenID o SAML o un’altra federazione, potrebbe essere necessario chiedere ulteriori informazioni su come viene assegnato ciascun ruolo (non è la stessa cosa che il ruolo admin sia assegnato a 1 utente o a 100)
  • Non è sufficiente identificare quali utenti hanno permessi admin “*:*”. Ci sono molte altre autorizzazioni che, a seconda dei servizi utilizzati, possono essere molto sensibili.
  • Inoltre, esistono potenziali privesc da seguire abusando delle autorizzazioni. Tutte queste cose dovrebbero essere prese in considerazione e dovrebbero essere segnalati il maggior numero possibile di percorsi di privesc.
  • Verifica delle integrazioni
  • È molto probabile che integrazioni con altri clouds o SaaS vengano utilizzate all’interno dell’ambiente cloud.
  • Per le integrazioni del cloud che stai auditando con altre piattaforme dovresti notificare chi ha accesso ad (ab)usare quell’integrazione e dovresti chiedere quanto è sensibile l’azione che viene eseguita.
    Ad esempio, chi può scrivere in un bucket AWS da cui GCP ottiene dati (chiedi quanto è sensibile l’azione in GCP che tratta quei dati).
  • Per le integrazioni all’interno del cloud che stai auditando provenienti da piattaforme esterne, dovresti chiedere chi ha accesso esternamente ad (ab)usare quell’integrazione e verificare come vengono utilizzati quei dati.
    Ad esempio, se un servizio usa un’immagine Docker ospitata in GCR, dovresti chiedere chi ha accesso a modificarla e quali informazioni sensibili e accessi otterrà quell’immagine quando eseguita all’interno di un cloud AWS.

Strumenti Multi-Cloud

Ci sono 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 clouds e attraverso 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

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

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 dispone di 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 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 è uno strumento in Python che consolida le risorse dell’infrastruttura e le relazioni tra di esse in una vista a grafo intuitiva alimentata da un database 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 raccoglie asset e relazioni da servizi e sistemi, tra cui l’infrastruttura cloud, le applicazioni SaaS, i controlli di sicurezza e altro, in una vista grafica intuitiva supportata dal database 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

Scopri gli utenti con i privilegi più elevati nell’ambiente AWS o Azure scansionato, inclusi gli AWS Shadow Admins. Usa 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

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

CloudFox

  • CloudFox è uno strumento per identificare percorsi di attacco sfruttabili nell’infrastruttura cloud (attualmente supportati solo AWS & Azure, GCP in arrivo).
  • È uno strumento di enumeration pensato per integrare il pentesting manuale.
  • Non crea né modifica alcun dato nell’ambiente cloud.

More lists of cloud security tools

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Funzionalità comuni della sicurezza cloud

Confidential Computing

Luks2 Header Malleability Null Cipher Abuse

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