Metodologia di 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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Metodologia di Base
Ogni cloud ha le proprie 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 comprendere la dimensione dell'ambiente e i servizi utilizzati
- Ti permetterà anche di trovare alcune misconfigurazioni rapide poiché 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 test di benchmark, ma potresti trovare alcune che non erano 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)
- Poi dovresti controllare se quella risorsa può essere esposta o meno (informazioni riservate? vulnerabilità? misconfigurazioni nel servizio esposto?)
- Controlla i permessi
- Qui dovresti scoprire tutti i permessi di ciascun ruolo/utente all'interno del cloud e come vengono utilizzati
- Troppi account altamente privilegiati (controllano tutto)? Chiavi generate non utilizzate?... La maggior parte di questi controlli dovrebbe già essere stata effettuata nei test di benchmark
- Se il cliente sta utilizzando OpenID o SAML o altra federazione, potresti dover chiedere ulteriori informazioni su come viene assegnato ciascun ruolo (non è la stessa cosa se il ruolo di admin è assegnato a 1 utente o a 100)
- Non è sufficiente trovare quali utenti hanno permessi admin "*:*". Ci sono molti altri permessi che a seconda dei servizi utilizzati possono essere molto sensibili.
- Inoltre, ci sono potenziali vie di privesc da seguire abusando dei permessi. Tutte queste cose dovrebbero essere prese in considerazione e dovrebbero essere segnalati il maggior numero possibile di percorsi privesc.
- Controlla le integrazioni
- È altamente probabile che integrazioni con altri cloud o SaaS siano utilizzate all'interno dell'ambiente cloud.
- 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 che viene eseguita.
Ad esempio, chi può scrivere in un bucket AWS da cui GCP sta estraendo dati (chiedi quanto è sensibile l'azione in GCP trattando quei dati). - Per le integrazioni all'interno del cloud che stai auditando da piattaforme esterne, dovresti chiedere chi ha accesso esternamente 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 a modificarla e quali informazioni sensibili e accesso avrà 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 saranno indicati in questa sezione.
PurplePanda
Uno strumento per identificare cattive configurazioni e percorsi di privesc nei 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
Prowler
Supporta AWS, GCP & 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
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 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
Cloudlist è uno strumento multi-cloud per ottenere Assets (Nomi host, Indirizzi IP) dai fornitori di 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
cartography
Cartography è uno strumento Python che consolida le risorse infrastrutturali 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
Starbase raccoglie asset e relazioni da servizi e sistemi, inclusa l'infrastruttura cloud, applicazioni SaaS, 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 più privilegiati nell'ambiente AWS o Azure scansionato, inclusi gli AWS Shadow Admins. 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
Cloud Brute
Uno strumento per trovare l'infrastruttura, i file e le app di un'azienda (obiettivo) sui principali fornitori di cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox
- CloudFox è uno strumento per trovare percorsi di attacco sfruttabili nell'infrastruttura cloud (attualmente supportato solo AWS e Azure, con GCP in arrivo).
- È uno strumento di enumerazione che è destinato a completare il pentesting manuale.
- Non crea né modifica alcun dato all'interno dell'ambiente cloud.
Altre liste di strumenti di sicurezza cloud
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter crea un “grafico di attacco” delle risorse in un abbonamento Azure. Consente ai team rossi 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 appaiono in alcuni moduli PS e possono essere aggirate 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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.