Metodologia de Pentesting em Nuvem
Reading time: 13 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 nuvem tem suas peculiaridades, mas em geral há algumas coisas comuns que um pentester deve verificar ao testar um ambiente em nuvem:
- Verificações de Benchmark
- Isso ajudará você a entender o tamanho do ambiente e serviços utilizados
- Também permitirá que você encontre algumas configurações incorretas rápidas, pois você pode realizar a maioria desses testes com ferramentas automatizadas
- Enumeração de Serviços
- Você provavelmente não encontrará muitas configurações incorretas aqui se tiver realizado corretamente os testes de benchmark, mas pode encontrar algumas que não estavam sendo procuradas no teste de benchmark.
- Isso permitirá que você saiba o que está exatamente sendo usado no ambiente em nuvem
- Isso ajudará muito nos próximos passos
- Verifique ativos expostos
- Isso pode ser feito durante a seção anterior, você precisa descobrir tudo que está potencialmente exposto à Internet de alguma forma e como pode ser acessado.
- Aqui estou considerando infraestrutura exposta manualmente como instâncias com páginas da web ou outras portas sendo expostas, e também sobre outros serviços gerenciados em nuvem que podem ser configurados para serem expostos (como DBs ou buckets)
- Então você deve verificar se esse recurso pode ser exposto ou não (informações confidenciais? vulnerabilidades? configurações incorretas no serviço exposto?)
- Verifique permissões
- Aqui você deve descobrir todas as permissões de cada função/usuário dentro da nuvem e como elas são usadas
- Muitas contas altamente privilegiadas (controlam tudo)? Chaves geradas não utilizadas?... A maioria dessas verificações já deveria ter sido feita nos testes de benchmark
- Se o cliente estiver usando OpenID ou SAML ou outra federação, você pode precisar pedir mais informações sobre como cada função está sendo atribuída (não é a mesma coisa que a função de admin ser atribuída a 1 usuário ou a 100)
- Não é suficiente encontrar quais usuários têm permissões admin "*:*". Existem muitas outras permissões que, dependendo dos serviços utilizados, podem ser muito sensíveis.
- Além disso, existem potenciais caminhos de privesc a seguir abusando de permissões. Todas essas coisas devem ser levadas em conta e o maior número possível de caminhos de privesc deve ser relatado.
- Verifique Integrações
- É altamente provável que integrações com outras nuvens ou SaaS estejam sendo usadas dentro do ambiente em nuvem.
- Para integrações da nuvem 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 sendo realizada.
Por exemplo, quem pode escrever em um bucket AWS de onde o GCP está obtendo dados (pergunte quão sensível é a ação no GCP ao tratar esses dados). - Para integrações dentro da nuvem que você está auditando de plataformas externas, você deve perguntar quem tem acesso externamente para (ab)usar essa integração e verificar como esses dados estão sendo usados.
Por exemplo, se um serviço estiver 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 obterá quando executada dentro de uma nuvem AWS.
Ferramentas Multi-Nuvem
Existem várias ferramentas que podem ser usadas para testar diferentes ambientes em nuvem. Os passos de instalação e links serão indicados nesta seção.
PurplePanda
Uma ferramenta para identificar configurações ruins e caminhos de privesc em nuvens e entre nuvens/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
Ele suporta AWS, GCP & Azure. Verifique 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 o 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 tem uma varredura Audit Cloud Infrastructure que suporta: AWS, Azure, Office 365, Rackspace, Salesforce. Algumas configurações extras em Azure são necessárias para obter um Client Id.
cloudlist
Cloudlist é uma ferramenta multi-cloud para obter Ativos (Nomes de Host, Endereços IP) 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 ativos de infraestrutura e os relacionamentos 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 relacionamentos de serviços e sistemas, incluindo infraestrutura em nuvem, aplicações SaaS, controles de segurança e mais, em uma visualização gráfica 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
Descubra os usuários mais privilegiados no ambiente AWS ou Azure escaneado, incluindo os AWS Shadow Admins. Ele 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 encontrar a infraestrutura, arquivos e aplicativos de uma empresa (alvo) nos principais provedores de nuvem (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox
- CloudFox é uma ferramenta para encontrar caminhos de ataque exploráveis na infraestrutura de nuvem (atualmente apenas AWS e Azure suportados, com GCP em breve).
- É uma ferramenta de enumeração que visa complementar o pentesting manual.
- Não cria nem modifica nenhum dado dentro do ambiente de nuvem.
Mais listas de ferramentas de segurança em nuvem
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter cria um “gráfico de ataque” dos recursos em uma assinatura Azure. Ele permite que equipes vermelhas e pentesters visualizem a superfície de ataque e oportunidades de pivô dentro de um inquilino, e potencializa seus defensores para rapidamente se orientar e priorizar o trabalho de resposta a incidentes.
Office365
Você precisa de Global Admin ou pelo menos Global Admin Reader (mas note que o Global Admin Reader é um pouco limitado). No entanto, essas limitações aparecem em alguns módulos PS e podem ser contornadas acessando os recursos via a aplicação web.
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.