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
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
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.
# 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 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.
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.
# 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.
# 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.
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
GCP
Workspace
AWS
Azure
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
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
HackTricks Cloud