Pentesting Cloud Methodology

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres moyens de soutenir HackTricks :

Méthodologie de Base

Chaque cloud a ses propres particularités mais en général, il y a quelques points communs 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 certaines mauvaises configurations rapidement 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 configurations incorrectes ici si vous avez correctement effectué les tests de référence, mais vous pourriez en trouver certaines qui n'ont pas été 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érifier les actifs exposés

  • 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 cela peut être accédé.

  • Ici, je parle de l'infrastructure exposée manuellement comme des instances avec des pages web ou d'autres ports exposés, et aussi des services gérés par le cloud qui peuvent être configurés pour être exposés (comme des bases de données ou des seaux)

  • 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érifier 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ôlent tout) ? Clés générées non utilisées ?... La plupart de ces vérifications auraient dû être faites dans les tests de référence déjà

  • Si le client utilise OpenID ou SAML ou une 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 est attribué à 1 utilisateur ou à 100)

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

  • De plus, il y a des moyens potentiels de privesc à suivre en abusant des permissions. Toutes ces choses devraient être prises en compte et autant de chemins de privesc que possible devraient être signalés.

  • Vérifier 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 seau AWS d'où GCP obtient des données (demandez à quel point l'action dans GCP traitant ces données est sensible).

  • 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 à (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 à 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 à travers 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 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

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
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

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 ne plus être maintenu.

Nessus

Nessus propose un scan Audit Cloud Infrastructure prenant en charge : AWS, Azure, Office 365, Rackspace, Salesforce. Des 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ôte, Adresses IP) de 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
## For GCP it requires service account JSON credentials
cloudlist -config </path/to/config>

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 de services et systèmes incluant 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 seulement AWS & Azure sont 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 à l'intérieur de l'environnement cloud.

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

Google

GCP

pageGCP Pentesting

Workspace

pageGWS - Workspace Pentesting

AWS

pageAWS Pentesting

Azure

pageAzure Pentesting

Graphique d'Attaque

Stormspotter crée un "graphique d'attaque" des ressources dans un abonnement 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 dynamise vos défenseurs pour orienter rapidement et prioriser le travail de réponse aux incidents.

Office365

Vous avez besoin d'un Global Admin ou au moins d'un 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.

Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres moyens de soutenir HackTricks :

Dernière mise à jour