Pentesting Cloud Methodology

Reading time: 13 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Méthodologie de base

Chaque cloud a ses propres particularités mais, en général, il y a quelques choses communes qu'un pentester devrait vérifier lorsqu'il teste un environnement cloud :

  • VĂ©rifications de benchmark
  • Cela vous aidera Ă  comprendre la taille de l'environnement et les services utilisĂ©s
  • Cela vous permettra aussi de trouver quelques mauvaises configurations rapides car vous pouvez effectuer la plupart de ces tests avec des outils automatisĂ©s
  • ÉnumĂ©ration des services
  • Vous ne trouverez probablement pas beaucoup plus de mauvaises configurations ici si vous avez correctement effectuĂ© les tests de benchmark, mais vous pourriez en trouver certaines qui n'Ă©taient pas recherchĂ©es lors des tests de benchmark.
  • Cela vous permettra de savoir ce qui est exactement utilisĂ© dans l'environnement cloud
  • Cela aidera beaucoup pour les Ă©tapes suivantes
  • VĂ©rifier les ressources exposĂ©es
  • Cela peut ĂȘtre fait pendant la section prĂ©cĂ©dente ; vous devez dĂ©terminer tout ce qui est potentiellement exposĂ© Ă  Internet d'une maniĂšre ou d'une autre et comment y accĂ©der.
  • Ici je considĂšre l'infrastructure exposĂ©e manuellement comme des instances avec des pages web ou d'autres ports exposĂ©s, et aussi d'autres services gĂ©rĂ©s par le cloud qui peuvent ĂȘtre configurĂ©s pour ĂȘtre exposĂ©s (comme des DB ou des buckets)
  • Ensuite, vous devriez vĂ©rifier si cette ressource peut compromettre la confidentialitĂ© ou non (informations confidentielles ? vulnĂ©rabilitĂ©s ? mauvaises configurations dans le service exposĂ© ?)
  • VĂ©rifier les permissions
  • Ici vous devez identifier toutes les permissions de chaque rĂŽle/utilisateur Ă  l'intĂ©rieur du cloud et comment elles sont utilisĂ©es
  • Trop de comptes hautement privilĂ©giĂ©s (contrĂŽlent tout) ? Clefs gĂ©nĂ©rĂ©es non utilisĂ©es ?... La plupart de ces vĂ©rifications devraient dĂ©jĂ  avoir Ă©tĂ© faites dans les tests de benchmark
  • Si le client utilise OpenID ou SAML ou une autre fĂ©dĂ©ration vous devrez peut-ĂȘtre leur demander des informations supplĂ©mentaires sur comment chaque rĂŽle est attribuĂ© (ce n'est pas la mĂȘme chose si le rĂŽle admin est attribuĂ© Ă  1 utilisateur ou Ă  100)
  • Il ne suffit pas de trouver quels utilisateurs ont des permissions admin "*:*". Il existe beaucoup d'autres permissions qui, selon les services utilisĂ©s, peuvent ĂȘtre trĂšs sensibles.
  • De plus, il existe des possibles privesc Ă  exploiter en abusant des permissions. Toutes ces choses doivent ĂȘtre prises en compte et autant de chemins de privesc que possible doivent ĂȘtre reportĂ©s.
  • VĂ©rifier les intĂ©grations
  • Il est trĂšs probable que des intĂ©grations avec d'autres clouds ou SaaS soient utilisĂ©es dans l'environnement cloud.
  • Pour les intĂ©grations du cloud que vous auditez avec d'autres plateformes vous devriez notifier qui a accĂšs pour (ab)user de cette intĂ©gration et vous devriez demander Ă  quel point l'action effectuĂ©e est sensible.
    Par exemple, qui peut Ă©crire dans un AWS bucket d'oĂč GCP rĂ©cupĂšre des donnĂ©es (demandez Ă  quel point l'action est sensible dans GCP en traitant ces donnĂ©es).
  • Pour les intĂ©grations dans le cloud que vous auditez depuis des plateformes externes, vous devriez demander qui a un accĂšs externe pour (ab)user de cette intĂ©gration et vĂ©rifier comment ces donnĂ©es sont utilisĂ©es.
    Par exemple, si un service utilise une image Docker hébergée dans GCR, vous devriez demander qui peut la modifier et quelles informations sensibles et quels accÚs cette image obtiendra lorsqu'elle sera exécutée à l'intérieur d'un cloud AWS.

Outils multi-cloud

Il existe plusieurs outils qui peuvent ĂȘtre utilisĂ©s pour tester diffĂ©rents environnements cloud. Les Ă©tapes d'installation et les liens seront indiquĂ©s dans cette section.

PurplePanda

Un outil pour identifier les mauvaises configurations et les chemins de privesc dans les clouds et entre clouds/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

Il prend en charge AWS, GCP & Azure. Consultez comment configurer chaque fournisseur sur 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

Téléchargez et installez Steampipe (https://steampipe.io/downloads). Ou utilisez Brew:

brew tap turbot/tap
brew install steampipe

cs-suite

AWS, GCP, Azure, DigitalOcean.
Il nécessite python2.7 et semble non maintenu.

Nessus

Nessus propose un scan Audit Cloud Infrastructure prenant en charge : AWS, Azure, Office 365, Rackspace, Salesforce. Quelques configurations supplémentaires dans Azure sont nécessaires pour obtenir un Client Id.

cloudlist

Cloudlist est un outil multi-cloud pour obtenir des actifs (noms d'hĂŽte, adresses IP) Ă  partir de fournisseurs 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 est un outil Python qui consolide les ressources d'infrastructure et leurs relations dans une vue en graphe intuitive alimentée par une base de données 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 collecte les actifs et les relations depuis des services et systÚmes, y compris l'infrastructure cloud, les applications SaaS, les contrÎles de sécurité, et plus encore, dans une vue graphe intuitive reposant sur la base de données 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

Permet d'identifier les utilisateurs les plus privilégiés dans l'environnement AWS ou Azure scanné, y compris les AWS Shadow Admins. Il utilise 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

Un outil pour trouver l'infrastructure, les fichiers et les applications d'une entreprise (cible) sur les principaux fournisseurs cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).

CloudFox

  • CloudFox est un outil pour trouver des cheminements d'attaque exploitables dans l'infrastructure cloud (actuellement seuls AWS & Azure sont supportĂ©s, GCP Ă  venir).
  • C'est un outil d'Ă©numĂ©ration destinĂ© Ă  complĂ©ter le pentesting manuel.
  • Il ne crĂ©e ni ne modifie aucune donnĂ©e dans l'environnement cloud.

More lists of cloud security tools

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Graphe d'attaque

Stormspotter crée un « graphe d'attaque » des ressources dans une subscription Azure. Il permet aux red teams et pentesters de visualiser la surface d'attaque et les opportunités de pivot au sein d'un tenant, et permet à vos défenseurs de s'orienter rapidement et de prioriser le travail de réponse aux incidents.

Office365

Vous avez besoin de Global Admin ou au moins de Global Admin Reader (notez toutefois que Global Admin Reader est un peu limitĂ©). Cependant, ces limitations apparaissent dans certains modules PS et peuvent ĂȘtre contournĂ©es en accĂ©dant aux fonctionnalitĂ©s via l'application web.

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks