Méthodologie Pentesting Cloud

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’on teste un environnement cloud :

  • Benchmark checks
  • Cela vous aidera à comprendre la taille de l’environnement et les services utilisés
  • Cela permettra aussi de trouver des mauvaises configurations faciles à détecter, car la plupart de ces tests peuvent être effectués avec des outils automatisés
  • Services Enumeration
  • Vous ne trouverez probablement pas beaucoup plus de mauvaises configurations ici si vous avez correctement réalisé les tests de benchmark, mais vous pourriez en trouver certaines qui n’avaient pas été cherchées lors du test de benchmark.
  • Cela vous permettra de savoir ce qui est exactement utilisé dans l’environnement cloud
  • Cela aidera beaucoup pour les étapes suivantes
  • Check exposed assets
  • Cela peut être fait pendant la section précédente, vous devez découvrir tout ce qui est potentiellement exposé à Internet d’une manière ou d’une autre et comment y accéder.
  • Ici je prends en compte 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 cloud pouvant être configurés pour être exposés (comme des DBs ou des buckets)
  • Ensuite, vérifiez si cette ressource peut être exploitée ou non (information confidentielle ? vulnérabilités ? mauvaises configurations dans le service exposé ?)
  • Check permissions
  • Ici vous devez identifier toutes les permissions de chaque rôle/utilisateur dans le cloud et comment elles sont utilisées
  • Trop de comptes hautement privilégiés (contrôlent tout) ? Clés générées non utilisées ?… La plupart de ces vérifications devraient déjà avoir été faites lors des 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 que le rôle admin soit attribué à 1 utilisateur ou à 100)
  • Il ne suffit pas de trouver quels utilisateurs ont des permissions admin:”. Il existe de nombreuses autres permissions qui, selon les services utilisés, peuvent être très sensibles.
  • De plus, il existe des voies de privesc potentielles à suivre en abusant des permissions. Toutes ces choses doivent être prises en compte et autant de chemins de privesc que possible doivent être signalés.
  • Check Integrations
  • 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 bucket AWS d’où GCP récupère des données (demandez à quel point l’action est sensible dans GCP lors du traitement de ces données).
  • Pour les intégrations à l’intérieur du cloud que vous auditez provenant de plateformes externes, vous devriez demander qui a 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 modifier cette image et quelles informations sensibles et quels accès cette image obtiendra lorsqu’elle sera exécutée dans un cloud AWS.

Multi-Cloud tools

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 privesc path dans les clouds et entre 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

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

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 requiert python2.7 et semble non maintenu.

Nessus

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

cloudlist

Cloudlist est un outil multi-cloud pour récupérer des Assets (Hostnames, IP Addresses) auprès des fournisseurs 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 est un outil Python qui consolide les ressources d’infrastructure et les relations entre elles dans une vue graphique intuitive alimentée par une base de données 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 collecte des assets et des relationships provenant de services et de systèmes, y compris cloud infrastructure, applications SaaS, security controls, et bien plus, dans une vue de graphe intuitive reposant sur la base de données 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

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

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

CloudFox

  • CloudFox est un outil pour identifier exploitable attack paths dans l’infrastructure cloud (actuellement seuls AWS & Azure sont supportés, GCP à venir).
  • C’est un outil d’enumeration destiné à compléter le pentesting manuel.
  • Il ne crée ni ne modifie de données dans l’environnement cloud.

More lists of cloud security tools

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Fonctionnalités communes de sécurité cloud

Confidential Computing

Luks2 Header Malleability Null Cipher Abuse

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