Pentesting Cloud Methodology
Reading time: 12 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Metodologia Básica
Cada cloud tem suas peculiaridades, mas em geral há algumas coisas comuns que um pentester deve verificar ao testar um ambiente cloud:
- Verificações de benchmark
- Isso vai te ajudar a entender o tamanho do ambiente e os serviços utilizados
- Também permitirá encontrar algumas misconfigurações rápidas, já que você pode realizar a maioria desses testes com ferramentas automatizadas
- Services Enumeration
- Você provavelmente não encontrará muitas mais misconfigurações aqui se realizou corretamente os testes de benchmark, mas pode encontrar algumas que não foram buscadas no teste de benchmark.
- Isso permitirá saber o que exatamente está sendo usado no ambiente cloud
- Isso vai ajudar bastante nos próximos passos
- Check exposed assets
- Isso pode ser feito durante a seção anterior; você precisa identificar tudo que potencialmente está exposto à Internet de alguma forma e como isso pode ser acessado.
- Aqui estou considerando infraestrutura manualmente exposta como instâncias com páginas web ou outras portas expostas, e também outros serviços gerenciados pela cloud que podem ser configurados para ficarem expostos (como DBs ou buckets)
- Depois você deve verificar se esse recurso pode ser explorado ou não (informação confidencial? vulnerabilidades? misconfigurações no serviço exposto?)
- Check permissions
- Aqui você deve identificar todas as permissões de cada role/user dentro da cloud e como elas são utilizadas
- Muitas contas altamente privilegiadas (controlam tudo)? Chaves geradas não usadas?... A maioria dessas checagens já deveria ter sido feita nos testes de benchmark
- Se o cliente estiver usando OpenID ou SAML ou outra federation você pode precisar pedir mais informação sobre como cada role está sendo atribuída (não é a mesma coisa que a role admin seja atribuída a 1 usuário ou a 100)
- Não basta apenas descobrir quais usuários têm permissões "admin" "*:*". Existem muitas outras permissões que dependendo dos serviços usados podem ser muito sensíveis.
- Além disso, existem potenciais privesc a seguir abusando permissões. Todas essas coisas devem ser levadas em conta e o maior número possível de caminhos de privesc deve ser reportado.
- Check Integrations
- É altamente provável que integrações com outras clouds ou SaaS estejam sendo usadas dentro do ambiente cloud.
- Para integrações da cloud que você está auditando com outra plataforma, você deve notificar quem tem acesso para (ab)usar essa integração e deve perguntar quão sensível é a ação que está sendo realizada.
Por exemplo, quem pode escrever em um bucket AWS de onde a GCP está obtendo dados (pergunte quão sensível é a ação na GCP ao tratar esses dados). - Para integrações dentro da cloud que você está auditando vindas de plataformas externas, você deve perguntar quem tem acesso externo para (ab)usar essa integração e verificar como esses dados estão sendo usados.
Por exemplo, se um serviço está usando uma imagem Docker hospedada no GCR, você deve perguntar quem tem acesso para modificar isso e quais informações sensíveis e acessos essa imagem terá quando executada dentro de uma cloud AWS.
Multi-Cloud tools
Existem várias ferramentas que podem ser usadas para testar diferentes ambientes cloud. Os passos de instalação e links serão indicados nesta seção.
PurplePanda
Uma ferramenta para identificar más configurações e caminhos de privesc em clouds e 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
Suporta AWS, GCP & Azure. Veja como configurar cada provedor em 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
Baixe e instale o Steampipe (https://steampipe.io/downloads). Ou use Brew:
brew tap turbot/tap
brew install steampipe
cs-suite
AWS, GCP, Azure, DigitalOcean.
Requer python2.7 e parece não estar mantido.
Nessus
Nessus possui um scan Audit Cloud Infrastructure que suporta: AWS, Azure, Office 365, Rackspace, Salesforce. Algumas configurações extras no Azure são necessárias para obter um Client Id.
cloudlist
Cloudlist é uma ferramenta multi-cloud para obter Assets (Hostnames, IP Addresses) de provedores de nuvem.
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 é uma ferramenta Python que consolida os ativos de infraestrutura e as relações entre eles em uma visualização gráfica intuitiva alimentada por um banco de dados 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 coleta ativos e relações de serviços e sistemas, incluindo infraestrutura em nuvem, aplicações SaaS, controles de segurança e mais, em uma visualização de grafo intuitiva suportada pelo banco de dados 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
Descobre os utilizadores mais privilegiados no ambiente AWS ou Azure escaneado, incluindo os AWS Shadow Admins. Usa 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
Uma ferramenta para localizar a infraestrutura, arquivos e apps de uma empresa (target) nos principais provedores de cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox
- CloudFox é uma ferramenta para encontrar caminhos de ataque exploráveis na infraestrutura de cloud (atualmente apenas AWS & Azure suportados, com GCP em breve).
- É uma ferramenta de enumeration que tem como objetivo complementar pentesting manual.
- Não cria nem modifica quaisquer dados dentro do ambiente de cloud.
More lists of cloud security tools
GCP
Workspace
AWS
Azure
Recursos comuns de segurança em cloud
Computação Confidencial
Luks2 Header Malleability Null Cipher Abuse
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud