Pentesting Cloud Methodology

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Podstawowa metodologia

Każda chmura ma swoje specyfiki, ale ogólnie istnieje kilka wspólnych rzeczy, które pentester powinien sprawdzić podczas testowania środowiska cloud:

  • Kontrole benchmarkowe
  • To pomoże ci zrozumieć rozmiar środowiska i używane usługi
  • Pozwoli też znaleźć kilka szybkich błędów konfiguracyjnych, ponieważ większość tych testów można przeprowadzić przy pomocy narzędzi automatycznych
  • Services Enumeration
  • Prawdopodobnie nie znajdziesz tu znacznie więcej błędów konfiguracyjnych, jeśli poprawnie przeprowadziłeś testy benchmarkowe, ale możesz trafić na takie, których nie wyszukiwano podczas testów benchmarkowych.
  • To pozwoli ci wiedzieć co dokładnie jest używane w środowisku cloud
  • To bardzo pomoże w kolejnych krokach
  • Sprawdź zasoby wystawione na zewnątrz
  • Można to zrobić podczas poprzedniej sekcji, musisz wykryć wszystko, co potencjalnie jest wystawione do Internetu i w jaki sposób można uzyskać do tego dostęp.
  • Tu mam na myśli ręcznie wystawioną infrastrukturę jak instancje z serwisami WWW lub innymi otwartymi portami, a także inne cloud managed services, które można skonfigurować jako wystawione (np. DBs lub buckets)
  • Następnie powinieneś sprawdzić czy dany zasób może być wystawiony czy nie (informacje poufne? luki? błędy konfiguracyjne w wystawionej usłudze?)
  • Sprawdź uprawnienia
  • Tutaj powinieneś ustalić wszystkie uprawnienia każdej roli/użytkownika w środowisku cloud i jak są używane
  • Zbyt wiele kont o wysokich uprawnieniach (kontrolujących wszystko)? Generowane klucze nieużywane?… Większość tych kontroli powinna być już przeprowadzona w testach benchmarkowych
  • Jeśli klient używa OpenID lub SAML lub innej federacji, może być konieczne poproszenie ich o dodatkowe informacje dotyczące jak przypisywana jest każda rola (to nie to samo, gdy rola admin przypisana jest do 1 użytkownika lub do 100)
  • Nie wystarczy ustalić, którzy użytkownicy mają uprawnienia admin:”. Istnieje wiele innych uprawnień, które w zależności od używanych usług mogą być bardzo wrażliwe.
  • Co więcej, istnieją potencjalne privesc ścieżki do wykorzystania przy nadużyciu uprawnień. Wszystkie te kwestie powinny zostać uwzględnione i należy zgłosić jak najwięcej privesc ścieżek.
  • Sprawdź integracje
  • Jest bardzo prawdopodobne, że wewnątrz środowiska cloud wykorzystywane są integracje z innymi cloudami lub SaaS.
  • Dla integracji cloud, które audytujesz z inną platformą powinieneś powiadomić, kto ma dostęp do (nadużycia) tej integracji oraz zapytać, jak wrażliwa jest akcja, która jest wykonywana.
    Na przykład: kto może zapisywać do AWS bucketu, z którego GCP pobiera dane (zapytaj, jak wrażliwa jest ta akcja po stronie GCP przy przetwarzaniu tych danych).
  • Dla integracji wewnątrz audytowanego cloud pochodzących z zewnętrznych platform, powinieneś zapytać, kto ma zewnętrzny dostęp do (nadużycia) tej integracji i sprawdzić, jak te dane są wykorzystywane.
    Na przykład, jeśli serwis używa obrazu Docker hostowanego w GCR, powinieneś zapytać, kto ma dostęp do modyfikacji tego obrazu i jakie poufne informacje oraz uprawnienia uzyska ten obraz po uruchomieniu wewnątrz AWS.

Narzędzia Multi-Cloud

Istnieje kilka narzędzi, które można wykorzystać do testowania różnych środowisk cloud. Kroki instalacji i linki zostaną podane w tej sekcji.

PurplePanda

Narzędzie do identyfikowania złych konfiguracji i privesc path w cloudach i pomiędzy cloudami/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

Obsługuje AWS, GCP & Azure. Sprawdź, jak skonfigurować każdego dostawcę na 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

Pobierz i zainstaluj Steampipe (https://steampipe.io/downloads). Lub użyj Brew:

brew tap turbot/tap
brew install steampipe

cs-suite

AWS, GCP, Azure, DigitalOcean.
Wymaga python2.7 i wygląda na nieutrzymywany.

Nessus

Nessus posiada skan Audit Cloud Infrastructure obsługujący: AWS, Azure, Office 365, Rackspace, Salesforce. W Azure wymagane są dodatkowe konfiguracje, aby uzyskać Client Id.

cloudlist

Cloudlist to narzędzie multi-cloud do pozyskiwania zasobów (nazwy hostów, adresy IP) od dostawców chmury.

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 to narzędzie w Pythonie, które konsoliduje zasoby infrastruktury i relacje między nimi w intuicyjnym widoku grafu opartym na bazie danych 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 zbiera zasoby i relacje z usług i systemów, w tym infrastruktury chmurowej, aplikacji SaaS, kontroli bezpieczeństwa i innych, oraz prezentuje je w intuicyjnym widoku grafu opartym na bazie danych 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

Odkrywa najbardziej uprzywilejowanych użytkowników w skanowanym środowisku AWS lub Azure, w tym AWS Shadow Admins. Używa 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

Narzędzie do znajdowania infrastruktury firmy (target), plików i aplikacji u największych dostawców chmurowych (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).

CloudFox

  • CloudFox to narzędzie do wyszukiwania wykorzystalnych ścieżek ataku w infrastrukturze chmurowej (obecnie obsługiwane tylko AWS & Azure, wsparcie dla GCP wkrótce).
  • Jest to narzędzie do enumeracji, mające na celu uzupełnianie manualnego pentestingu.
  • Nie tworzy ani nie modyfikuje żadnych danych w środowisku chmurowym.

Więcej list narzędzi do bezpieczeństwa chmurowego

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

Typowe funkcje bezpieczeństwa chmurowego

Poufne przetwarzanie

Luks2 Header Malleability Null Cipher Abuse

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks