Pentesting Cloud Methodology

Aprenda hacking em AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Metodologia Básica

Cada nuvem tem suas peculiaridades, mas em geral existem 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á encontrar algumas más configurações rapidamente, pois a maioria desses testes pode ser feita com ferramentas automatizadas

  • Enumeração de Serviços

  • Provavelmente você não encontrará muitas outras más configurações aqui se realizou corretamente os testes de benchmark, mas pode encontrar algumas que não estavam sendo procuradas no teste de benchmark.

  • Isso permitirá saber o que exatamente está sendo usado no ambiente em nuvem

  • Isso ajudará muito nas próximas etapas

  • Verificar 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 falando sobre infraestrutura exposta manualmente como instâncias com páginas web ou outros portos expostos, e também sobre outros serviços gerenciados pela 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? más configurações no serviço exposto?)

  • Verificar permissões

  • Aqui você deve descobrir todas as permissões de cada papel/usuário dentro da nuvem e como são usadas

  • Contas com muitos privilégios altos (controlam tudo)? Chaves geradas não utilizadas?... A maioria dessas verificações já deveria ter sido feita nos testes de benchmark

  • Se o cliente está usando OpenID ou SAML ou outra federação, você pode precisar pedir mais informações sobre como cada papel é atribuído (não é o mesmo que o papel de administrador ser atribuído a 1 usuário ou a 100)

  • Não é suficiente encontrar quais usuários têm permissões de admin "*:*". Existem outras permissões que, dependendo dos serviços utilizados, podem ser muito sensíveis.

  • Além disso, existem potenciais caminhos de privesc a serem seguidos abusando de permissões. Todas essas coisas devem ser levadas em conta e tantos caminhos de privesc quanto possível devem ser relatados.

  • Verificar Integrações

  • É muito 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 outras plataformas, você deve notificar quem tem acesso para (ab)usar essa integração e você 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 está usando uma imagem Docker hospedada no GCR, você deve perguntar quem tem acesso para modificar isso e quais informações sensíveis e acesso essa imagem terá quando executada dentro de uma nuvem AWS.

Ferramentas Multi-Cloud

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.

Uma ferramenta para identificar más configurações 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

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

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 ser mantido.

Nessus

O Nessus possui uma varredura 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 é uma ferramenta multi-cloud para obter Ativos (Nomes de Host, Endereços IP) de Provedores de Cloud.

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 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 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 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. 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

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 & Azure são suportados com GCP em breve).

  • É uma ferramenta de enumeração que tem a intenção de complementar o pentesting manual.

  • Não cria ou modifica dados dentro do ambiente de nuvem.

Mais listas de ferramentas de segurança em nuvem

Google

GCP

pageGCP Pentesting

Workspace

pageGWS - Workspace Pentesting

AWS

pageAWS Pentesting

Azure

pageAzure Pentesting

Attack Graph

Stormspotter cria um "attack graph" dos recursos em uma assinatura Azure. Ele permite que red teams e pentesters visualizem a superfície de ataque e as oportunidades de pivot dentro de um tenant, e potencializa seus defensores para orientar e priorizar rapidamente o trabalho de resposta a incidentes.

Office365

Você precisa de Global Admin ou pelo menos Global Admin Reader (mas note que 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 aplicação web.

Aprenda hacking em AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Última actualización