Pentesting Cloud Methodology

Tip

Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoie o HackTricks

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

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Recursos comuns de segurança em cloud

Computação Confidencial

Luks2 Header Malleability Null Cipher Abuse

Tip

Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoie o HackTricks