Pentesting Cloud Methodology
Reading time: 12 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Basic Methodology
Svaka cloud platforma ima svoje specifičnosti, ali generalno postoji nekoliko zajedničkih stvari koje pentester treba da proveri prilikom testiranja cloud okruženja:
- Provere standarda
- Ovo će vam pomoći da razumete veličinu okruženja i usluge koje se koriste
- Takođe će vam omogućiti da pronađete neke brze greške u konfiguraciji jer većinu ovih testova možete izvršiti pomoću automatskih alata
- Enumeracija usluga
- Verovatno nećete pronaći mnogo više grešaka u konfiguraciji ovde ako ste pravilno izvršili testove standarda, ali mogli biste pronaći neke koje nisu bile tražene u testu standarda.
- Ovo će vam omogućiti da znate šta se tačno koristi u cloud okruženju
- Ovo će mnogo pomoći u sledećim koracima
- Proverite izložene resurse
- Ovo se može uraditi tokom prethodne sekcije, morate otkriti sve što je potencijalno izloženo internetu i kako se može pristupiti.
- Ovde mislim na ručno izloženu infrastrukturu kao što su instance sa web stranicama ili drugi portovi koji su izloženi, kao i na druge usluge u cloudu koje se mogu konfigurisati da budu izložene (kao što su DB-ovi ili bucket-i)
- Zatim treba da proverite da li taj resurs može biti izložen ili ne (povjerljive informacije? ranjivosti? greške u konfiguraciji izložene usluge?)
- Proverite dozvole
- Ovde treba da otkrijete sve dozvole svake uloge/korisnika unutar clouda i kako se koriste
- Previše visoko privilegovanih (kontrolišu sve) naloga? Generisani ključevi koji se ne koriste?... Većina ovih provera bi već trebala biti izvršena u testovima standarda
- Ako klijent koristi OpenID ili SAML ili neku drugu federaciju, možda ćete morati da ih pitate za dodatne informacije o tome kako se dodeljuju svake uloge (nije isto da je admin uloga dodeljena 1 korisniku ili 100)
- Nije dovoljno pronaći koji korisnici imaju admin dozvole "*:*". Postoji mnogo drugih dozvola koje, u zavisnosti od korišćenih usluga, mogu biti veoma osetljive.
- Štaviše, postoje potencijalni putevi za eskalaciju privilegija koji se mogu iskoristiti zloupotrebom dozvola. Sve ove stvari treba uzeti u obzir i prijaviti što više puteva za eskalaciju privilegija.
- Proverite integracije
- Veoma je verovatno da se integracije sa drugim cloud-ovima ili SaaS koriste unutar cloud okruženja.
- Za integracije clouda koji audirate sa drugom platformom, trebate obavestiti ko ima pristup da (zloupotrebi) tu integraciju i trebate pitati kako je osetljiva akcija koja se izvršava.
Na primer, ko može da piše u AWS bucket gde GCP dobija podatke (pitajte koliko je osetljiva akcija u GCP-u koja obrađuje te podatke). - Za integracije unutar clouda koji audirate sa eksternih platformi, trebate pitati ko ima eksterni pristup da (zloupotrebi) tu integraciju i proveriti kako se ti podaci koriste.
Na primer, ako usluga koristi Docker sliku hostovanu u GCR-u, trebate pitati ko ima pristup da to izmeni i koje osetljive informacije i pristup će ta slika dobiti kada se izvrši unutar AWS clouda.
Multi-Cloud tools
Postoji nekoliko alata koji se mogu koristiti za testiranje različitih cloud okruženja. Koraci instalacije i linkovi će biti navedeni u ovoj sekciji.
PurplePanda
Alat za identifikaciju loših konfiguracija i puteva za eskalaciju privilegija u cloud-ovima i između cloud/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
Podržava AWS, GCP i Azure. Proverite kako da konfigurišete svakog provajdera 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
Preuzmite i instalirajte Steampipe (https://steampipe.io/downloads). Ili koristite Brew:
brew tap turbot/tap
brew install steampipe
cs-suite
AWS, GCP, Azure, DigitalOcean.
Zahteva python2.7 i izgleda da nije održavan.
Nessus
Nessus ima Audit Cloud Infrastructure skeniranje koje podržava: AWS, Azure, Office 365, Rackspace, Salesforce. Neka dodatna podešavanja u Azure su potrebna da bi se dobio Client Id.
cloudlist
Cloudlist je multi-cloud alat za dobijanje resursa (Hostnames, IP adrese) od Cloud provajdera.
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 je Python alat koji konsoliduje infrastrukturne resurse i odnose između njih u intuitivnom grafičkom prikazu koji pokreće Neo4j baza podataka.
# 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 prikuplja resurse i odnose iz usluga i sistema uključujući cloud infrastrukturu, SaaS aplikacije, bezbednosne kontrole i još mnogo toga u intuitivnom grafičkom prikazu podržanom Neo4j bazom podataka.
# 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
Otkrivanje najprivilegovanijih korisnika u skeniranom AWS ili Azure okruženju, uključujući AWS Shadow Admins. Koristi 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
Alat za pronalaženje infrastrukture, fajlova i aplikacija kompanije (meta) na vodećim cloud provajderima (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox
- CloudFox je alat za pronalaženje iskoristivih puteva napada u cloud infrastrukturi (trenutno podržani samo AWS i Azure, GCP dolazi uskoro).
- To je alat za enumeraciju koji je namenjen da dopuni manuelni pentesting.
- Ne kreira niti modifikuje bilo kakve podatke unutar cloud okruženja.
Više lista alata za cloud bezbednost
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter kreira “graf napada” resursa u Azure pretplati. Omogućava red timovima i pentesterima da vizualizuju površinu napada i mogućnosti pivotiranja unutar tenanta, i pojačava vaše odbrambene timove da brzo orijentišu i prioritizuju rad na incidentima.
Office365
Potrebni su vam Global Admin ili barem Global Admin Reader (ali imajte na umu da je Global Admin Reader malo ograničen). Međutim, ta ograničenja se pojavljuju u nekim PS modulima i mogu se zaobići pristupanjem funkcijama putem web aplikacije.
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.