Pentesting Cloud Methodology

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 lors du test d'un environnement cloud :

  • Vérifications de référence

  • Cela vous aidera à comprendre la taille de l'environnement et les services utilisés

  • Cela vous permettra également de trouver quelques mauvais 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 référence, mais vous pourriez en trouver certaines qui n'étaient pas recherchées dans le test de référence.

  • Cela vous permettra de savoir ce qui est exactement utilisé dans l'environnement cloud

  • Cela aidera beaucoup dans les étapes suivantes

  • Vérifiez les actifs exposés

  • Cela peut être fait lors de 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 cela peut être accessible.

  • Ici, je parle d'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 bases de données ou des buckets)

  • Ensuite, vous devriez vérifier si cette ressource peut être exposée ou non (informations confidentielles ? vulnérabilités ? mauvaises configurations dans le service exposé ?)

  • Vérifiez les permissions

  • Ici, vous devriez découvrir 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ôle total) ? Clés générées non utilisées ?... La plupart de ces vérifications auraient déjà dû être effectuées dans les tests de référence

  • Si le client utilise OpenID ou SAML ou autre fédération, vous pourriez avoir besoin de leur demander plus d'informations sur comment chaque rôle est attribué (ce n'est pas la même chose que le rôle d'administrateur soit attribué à 1 utilisateur ou à 100)

  • Il n'est pas suffisant de trouver quels utilisateurs ont des permissions admin "*:*". Il y a beaucoup d'autres permissions qui, selon les services utilisés, peuvent être très sensibles.

  • De plus, il existe des chemins de privesc potentiels à suivre en abusant des permissions. Toutes ces choses doivent être prises en compte et autant de chemins de privesc que possible doivent être rapportés.

  • Vérifiez les Intégrations

  • Il est très probable que des intégrations avec d'autres clouds ou SaaS soient utilisées à l'intérieur de l'environnement cloud.

  • Pour les intégrations du cloud que vous auditez avec d'autres plateformes, vous devriez notifier qui a accès à (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 obtient des données (demandez à quel point l'action est sensible dans GCP en traitant 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 de l'extérieur 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 a accès pour la modifier et quelles informations sensibles et accès obtiendra cette image lorsqu'elle est 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.

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

Il prend en charge AWS, GCP & Azure. Vérifiez comment configurer chaque fournisseur dans 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

# Install
git clone https://github.com/aquasecurity/cloudsploit.git
cd cloudsploit
npm install
./index.js -h
## Docker instructions in github

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

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

brew tap turbot/tap
brew install steampipe

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

Nessus

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

Cloudlist est un outil multi-cloud pour obtenir des actifs (noms d'hôtes, adresses IP) des fournisseurs de 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 est un outil Python qui consolide les actifs d'infrastructure et les relations entre eux 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 collecte des actifs et des relations à partir de services et de systèmes, y compris l'infrastructure cloud, les applications SaaS, les contrôles de sécurité, et plus encore, dans une vue graphique intuitive soutenue par 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

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

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

  • CloudFox est un outil pour trouver des chemins d'attaque exploitables dans l'infrastructure cloud (actuellement uniquement AWS et Azure pris en charge avec GCP à venir).

  • C'est un outil d'énumération qui est destiné à compléter le pentesting manuel.

  • Il ne crée ni ne modifie aucune donnée dans l'environnement cloud.

Plus de listes d'outils de sécurité cloud

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Attack Graph

Stormspotter crée un “graphique d'attaque” des ressources dans une souscription Azure. Il permet aux équipes rouges et aux pentesters de visualiser la surface d'attaque et les opportunités de pivotement au sein d'un locataire, et renforce vos défenseurs pour s'orienter rapidement et prioriser le travail de réponse aux incidents.

Office365

Vous avez besoin de Global Admin ou au moins de Global Admin Reader (mais notez 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.

Supportez HackTricks

Last updated