Pentesting Cloud Methodology

Suporte ao HackTricks

Metodologia Básica

Cada nuvem tem suas próprias peculiaridades, mas em geral há algumas coisas comuns que um pentester deve verificar ao testar um ambiente de 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 mais 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 de 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 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 administrador 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 de 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 tratando 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 de nuvem. Os passos de instalação e links serão indicados nesta seção.

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

Ele suporta AWS, GCP e 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

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

Baixe e instale o Steampipe (https://steampipe.io/downloads). Ou use o Brew:

brew tap turbot/tap
brew install steampipe

AWS, GCP, Azure, DigitalOcean. Requer python2.7 e parece não estar sendo mantido.

Nessus

Nessus possui 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 é 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 é 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 coleta ativos e relacionamentos de serviços e sistemas, incluindo infraestrutura de 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

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

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 é uma ferramenta para encontrar caminhos de ataque exploráveis na infraestrutura de nuvem (atualmente apenas AWS e Azure suportados, com GCP a caminho).

  • É uma ferramenta de enumeração que se destina a 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

Google

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 se orientarem rapidamente e priorizarem o trabalho de resposta a incidentes.

Office365

Você precisa de Admin Global ou pelo menos Leitor de Admin Global (mas note que o Leitor de Admin Global é 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.

Support HackTricks

Last updated