Pentesting Cloud Methodology

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Metodologia di Base

Ogni cloud ha le sue peculiarità, ma in generale ci sono alcune cose comuni che un pentester dovrebbe controllare 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 impostazioni errate rapide poiché puoi eseguire la maggior parte di questi test con strumenti automatizzati

  • Enumerazione dei servizi

  • Probabilmente non troverai molte altre impostazioni errate qui se hai eseguito correttamente i test di benchmark, ma potresti trovarne alcune che non sono state cercate nel test di benchmark.

  • Questo ti permetterà di sapere cosa viene esattamente utilizzato nell'ambiente cloud

  • Questo aiuterà molto nei passaggi 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 sto considerando infrastrutture esposte manualmente come istanze con pagine web o altre porte esposte, e anche altri servizi gestiti dal cloud che possono essere configurati per essere esposti (come DB o bucket)

  • Quindi dovresti controllare se quella risorsa può essere esposta o meno (informazioni confidenziali? vulnerabilità? impostazioni errate 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 (controllo totale su tutto)? Chiavi generate non utilizzate?... La maggior parte di questi controlli dovrebbe essere stata fatta già durante i test di benchmark

  • Se il cliente sta utilizzando OpenID o SAML o altre federazioni, potresti aver bisogno di chiedere ulteriori informazioni su come viene assegnato ogni ruolo (non è la stessa cosa che il ruolo di amministratore venga assegnato a 1 utente o a 100)

  • Non è sufficiente trovare quali utenti hanno autorizzazioni di amministratore "*:*". Ci sono molte altre autorizzazioni che, a seconda dei servizi utilizzati, possono essere molto sensibili.

  • Inoltre, ci sono potenziali percorsi di privesc da seguire abusando delle autorizzazioni. Tutte queste cose dovrebbero essere prese in considerazione e dovrebbero essere segnalati tanti percorsi di privesc quanto possibile.

  • Controlla le integrazioni

  • È molto probabile che siano utilizzate integrazioni con altri cloud o SaaS all'interno dell'ambiente cloud.

  • Per 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 che viene eseguita. Ad esempio, chi può scrivere in un bucket AWS da cui GCP sta ottenendo dati (chiedi quanto sensibile è l'azione in GCP che tratta quei dati).

  • Per integrazioni all'interno del cloud che stai auditando da piattaforme esterne, dovresti chiedere chi ha accesso esterno per (ab)usare quell'integrazione e controllare come vengono utilizzati quei dati. Ad esempio, se un servizio sta utilizzando un'immagine Docker ospitata in GCR, dovresti chiedere chi ha accesso per modificarla e quali informazioni sensibili e accesso otterrà quell'immagine quando viene eseguita all'interno di un cloud AWS.

Strumenti Multi-Cloud

Ci sono diversi strumenti che possono essere utilizzati per testare diversi ambienti cloud. I passaggi di installazione e i link verranno indicati in questa sezione.

Uno strumento per identificare configurazioni errate e percorsi di privesc in cloud e tra cloud/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

Supporta AWS, GCP e Azure. Controlla 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

AWS, Azure, Github, Google, Oracle, Alibaba

Installazione

Per installare CloudSploit, seguire i seguenti passaggi:

  1. Clonare il repository GitHub di CloudSploit:

    git clone https://github.com/aquasecurity/cloudsploit.git
  2. Accedere alla directory del repository:

    cd cloudsploit
  3. Installare le dipendenze necessarie:

    npm install
  4. Configurare le credenziali per l'accesso alle piattaforme cloud supportate (AWS, Azure, Github, Google, Oracle, Alibaba) nel file config.json.

  5. Eseguire CloudSploit:

    npm start
# Install
git clone https://github.com/aquasecurity/cloudsploit.git
cd cloudsploit
npm install
./index.js -h
## Docker instructions in github
## You need to have creds for a service account and set them in config.js file
./index.js --cloud google --config </abs/path/to/config.js>

AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure

Installazione

pip install scoutsuite

ScoutSuite è uno strumento di analisi delle configurazioni di sicurezza per le piattaforme cloud come AWS, Azure, GCP, Alibaba Cloud e Oracle Cloud Infrastructure.

Per installare ScoutSuite, eseguire il seguente comando:

pip install scoutsuite

Per utilizzare ScoutSuite, eseguire il seguente comando:

scout <cloud_provider> <profile> <output_directory>

Esempio:

scout aws my_profile /path/to/output
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
scout gcp --report-dir /tmp/gcp --user-account --all-projects
## use "--service-account KEY_FILE" instead of "--user-account" to use a service account

SCOUT_FOLDER_REPORT="/tmp"
for pid in $(gcloud projects list --format="value(projectId)"); do
echo "================================================"
echo "Checking $pid"
mkdir "$SCOUT_FOLDER_REPORT/$pid"
scout gcp --report-dir "$SCOUT_FOLDER_REPORT/$pid" --no-browser --user-account --project-id "$pid"
done

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

brew tap turbot/tap
brew install steampipe

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. Alcune configurazioni extra in Azure sono necessarie per ottenere un Client Id.

Cloudlist è uno strumento multi-cloud per ottenere Assets (Hostname, Indirizzi IP) dai fornitori di servizi cloud.

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
## For GCP it requires service account JSON credentials
cloudlist -config </path/to/config>

Cartografia è uno strumento Python che consolida le risorse di infrastruttura e le relazioni tra di esse in una vista grafica 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 raccoglie risorse e relazioni da servizi e sistemi, inclusa l'infrastruttura cloud, le applicazioni SaaS, i controlli di sicurezza e altro ancora, 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

Scopri gli utenti più privilegiati nell'ambiente AWS o Azure scansionato, inclusi gli amministratori ombra di AWS. Utilizza 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

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

  • CloudFox è uno strumento per trovare percorsi di attacco sfruttabili nell'infrastruttura cloud (attualmente supporta solo AWS e Azure, con GCP in arrivo).

  • È uno strumento di enumerazione che si intende integrare con il pentesting manuale.

  • Non crea o modifica alcun dato nell'ambiente cloud.

Altre liste di strumenti per la sicurezza cloud

Google

GCP

pageGCP Pentesting

Workspace

pageGWS - Workspace Pentesting

AWS

pageAWS Pentesting

Azure

pageAzure Pentesting

Attack Graph

Stormspotter crea un "grafo degli attacchi" delle risorse in una sottoscrizione Azure. Consente alle red team e ai pentester di visualizzare la superficie di attacco e le opportunità di pivot all'interno di un tenant e potenzia i tuoi difensori per orientarsi rapidamente e dare priorità al lavoro di risposta agli incidenti.

Office365

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

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated