Metodología de pentesting en la nube
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Metodología básica
Cada nube tiene sus propias peculiaridades pero en general hay algunas cosas comunes que un pentester debería revisar al evaluar un entorno en la nube:
- Comprobaciones de benchmark
- Esto te ayudará a entender el tamaño del entorno y los servicios utilizados
- También te permitirá encontrar algunas misconfiguraciones rápidas, ya que puedes realizar la mayoría de estas pruebas con herramientas automatizadas
- Enumeración de servicios
- Probablemente no encontrarás muchas más misconfiguraciones aquí si realizaste correctamente las comprobaciones de benchmark, pero podrías encontrar algunas que no se buscaron en las pruebas de benchmark.
- Esto te permitirá saber qué se está usando exactamente en el entorno en la nube
- Esto ayudará mucho en los siguientes pasos
- Comprobar activos expuestos
- Esto puede hacerse durante la sección anterior; necesitas identificar todo lo que potencialmente está expuesto a Internet de alguna manera y cómo puede ser accedido.
- Aquí me refiero a infraestructura expuesta manualmente como instancias con páginas web u otros puertos expuestos, y también a otros servicios gestionados en la nube que pueden configurarse para estar expuestos (como DBs o buckets)
- Luego deberías comprobar si ese recurso puede ser expuesto o no (¿información confidencial? ¿vulnerabilidades? ¿misconfiguraciones en el servicio expuesto?)
- Comprobar permisos
- Aquí deberías identificar todos los permisos de cada rol/usuario dentro de la nube y cómo se usan
- ¿Demasiadas cuentas con privilegios elevados (controlan todo)? ¿Claves generadas que no se usan?… La mayoría de estas comprobaciones deberían haberse hecho ya en los tests de benchmark
- Si el cliente está usando OpenID o SAML u otra federación puede que necesites pedirles más información sobre cómo se asigna cada rol (no es lo mismo que el rol admin esté asignado a 1 usuario o a 100)
- No es suficiente encontrar qué usuarios tienen permisos admin “:”. Hay muchos otros permisos que, dependiendo de los servicios usados, pueden ser muy sensibles.
- Además, existen posibles rutas de privesc que se pueden seguir abusando de permisos. Todas estas cosas deben tenerse en cuenta y se deben reportar tantos caminos de privesc como sea posible.
- Comprobar integraciones
- Es altamente probable que se estén usando integraciones con otras nubes o SaaS dentro del entorno en la nube.
- Para las integraciones de la nube que estás auditando con otra plataforma, deberías notificar quién tiene acceso para (ab)usar esa integración y deberías preguntar qué tan sensible es la acción que se realiza.
Por ejemplo, quién puede escribir en un bucket de AWS del cual GCP está obteniendo datos (preguntar qué tan sensible es la acción en GCP al tratar esos datos). - Para las integraciones dentro de la nube que estás auditando desde plataformas externas, deberías preguntar quién tiene acceso externamente para (ab)usar esa integración y comprobar cómo se están usando esos datos.
Por ejemplo, si un servicio está usando una imagen Docker alojada en GCR, deberías preguntar quién tiene acceso para modificarla y qué información sensible y accesos obtendrá esa imagen cuando se ejecute dentro de una nube AWS.
Herramientas Multi-Cloud
Hay varias herramientas que se pueden usar para evaluar diferentes entornos en la nube. Los pasos de instalación y los enlaces se indicarán en esta sección.
PurplePanda
Una herramienta para identificar malas configuraciones y rutas de privesc en nubes y entre nubes/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
Soporta AWS, GCP & Azure. Consulta cómo configurar cada proveedor en 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
Descarga e instala Steampipe (https://steampipe.io/downloads). O usa Brew:
brew tap turbot/tap
brew install steampipe
cs-suite
AWS, GCP, Azure, DigitalOcean.
Requiere python2.7 y parece no estar mantenido.
Nessus
Nessus tiene un escaneo Audit Cloud Infrastructure que soporta: AWS, Azure, Office 365, Rackspace, Salesforce. Se necesitan algunas configuraciones adicionales en Azure para obtener un Client Id.
cloudlist
Cloudlist es una herramienta multi-cloud para obtener activos (nombres de host, direcciones IP) de proveedores de nube.
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 es una herramienta en Python que consolida los activos de infraestructura y las relaciones entre ellos en una vista de grafo intuitiva impulsada por una base de datos 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 recopila activos y relaciones de servicios y sistemas, incluyendo infraestructura en la nube, aplicaciones SaaS, controles de seguridad y más, en una vista de grafo intuitiva respaldada por la base de datos 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
Detecta los usuarios más privilegiados en el entorno AWS o Azure escaneado, incluyendo los AWS Shadow Admins. Utiliza 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
Una herramienta para encontrar la infraestructura de una empresa (objetivo), archivos y apps en los principales proveedores de nube (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox
- CloudFox es una herramienta para encontrar rutas de ataque explotables en la infraestructura en la nube (actualmente solo soporta AWS & Azure, con GCP próximamente).
- Es una herramienta de enumeración destinada a complementar el pentesting manual.
- No crea ni modifica ningún dato dentro del entorno en la nube.
More lists of cloud security tools
GCP
Workspace
AWS
Azure
Common Cloud Security Features
Confidential Computing
Luks2 Header Malleability Null Cipher Abuse
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks Cloud

