Pentesting Cloud Methodology

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovna metodologija

Svaki oblak ima svoje specifičnosti, ali uopšteno postoje neke uobičajene stvari koje bi pentester trebao proveriti prilikom testiranja oblak okruženja:

  • Provera benchmarka

  • Ovo će vam pomoći da razumete veličinu okruženja i korišćene usluge

  • 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 automatizovanih alata

  • Enumeracija usluga

  • Verovatno nećete pronaći mnogo više grešaka u konfiguraciji ovde ako ste pravilno izvršili test benchmarka, ali možda ćete pronaći neke koje nisu bile predmet benchmark testa.

  • Ovo će vam omogućiti da znate šta se tačno koristi u oblaku

  • Ovo će mnogo pomoći u sledećim koracima

  • Provera izloženih resursa

  • Ovo se može uraditi tokom prethodne sekcije, trebate pronaći sve što je potencijalno izloženo na neki način na internetu i kako mu se može pristupiti.

  • Ovde se misli na ručno izloženu infrastrukturu kao što su instance sa veb stranicama ili drugim otvorenim portovima, kao i na druge oblakom upravljane usluge koje se mogu konfigurisati da budu izložene (kao što su baze podataka ili bucketi)

  • Zatim trebate proveriti da li se taj resurs može izložiti ili ne (poverljive informacije? ranjivosti? greške u konfiguraciji izložene usluge?)

  • Provera dozvola

  • Ovde trebate pronaći sve dozvole svake uloge/korisnika unutar oblaka i kako se koriste

  • Previše visoko privilegovanih (kontrolišu sve) naloga? Generisani ključevi koji se ne koriste?... Većina ovih provera trebala bi biti obavljena u testovima benchmarka

  • Ako klijent koristi OpenID ili SAML ili neko drugo udruživanje, možda ćete morati da ih pitate za dodatne informacije o načinu dodele svake uloge (nije isto da li je admin uloga dodeljena 1 korisniku ili 100)

  • Nije dovoljno pronaći koje korisnike imaju admin dozvole "*:*". Postoji mnogo drugih dozvola koje, u zavisnosti od korišćenih usluga, mogu biti vrlo osetljive.

  • Osim toga, postoje potencijalni načini eskalacije privilegija koje treba uzeti u obzir i treba prijaviti što je više moguće putanja eskalacije privilegija.

  • Provera integracija

  • Vrlo je verovatno da se integracije sa drugim oblakom ili SaaS-om koriste unutar oblak okruženja.

  • Za integracije oblaka koji se testira sa drugom platformom trebali biste obavestiti ko ima pristup (zlo)upotrebi te integracije i trebali biste pitati koliko je osetljiva akcija koja se izvršava. Na primer, ko može pisati u AWS bucket iz kojeg GCP preuzima podatke (pitajte koliko je osetljiva akcija u GCP-u koja obrađuje te podatke).

  • Za integracije unutar oblaka koji se testira sa spoljnim platformama, trebali biste pitati ko ima spoljni pristup (zlo)upotrebi te integracije i proveriti kako se ti podaci koriste. Na primer, ako usluga koristi Docker sliku smeštenu u GCR-u, trebali biste pitati ko ima pristup za izmenu te slike i koje osetljive informacije i pristup će ta slika dobiti kada se izvrši unutar AWS oblaka.

Alati za više oblaka

Postoji nekoliko alata koji se mogu koristiti za testiranje različitih oblak okruženja. Koraci za instalaciju i linkovi biće navedeni u ovoj sekciji.

Alat za identifikaciju loše konfiguracije i putanje eskalacije privilegija u oblaku i između oblaka/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

Podržava AWS, GCP & Azure. Proverite kako konfigurisati 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

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

Preuzmite i instalirajte Steampipe (https://steampipe.io/downloads). Ili koristite Brew:

brew tap turbot/tap
brew install steampipe

AWS, GCP, Azure, DigitalOcean. Zahteva python2.7 i izgleda da nije održavan.

Nessus

Nessus ima skeniranje Audit Cloud Infrastructure koje podržava: AWS, Azure, Office 365, Rackspace, Salesforce. Potrebne su dodatne konfiguracije u Azure-u da biste dobili Client Id.

Cloudlist je multi-cloud alat za dobijanje resursa (Imena hostova, IP adrese) iz 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

Kartografija je Python alat koji konsoliduje infrastrukturne resurse i odnose između njih u intuitivnom prikazu grafa 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.*

GCP (Google Cloud Platform) je jedna od najpopularnijih cloud platformi koja pruža razne usluge i resurse za razvoj, implementaciju i upravljanje aplikacija. U nastavku su opisane neke od metoda koje možete koristiti prilikom pentestiranja GCP okruženja.

1. Faza prikupljanja informacija

  • Identifikujte ciljnu organizaciju i njen GCP identifikator projekta.

  • Prikupite informacije o GCP resursima, kao što su virtualne mašine, baze podataka, mreže i skladišta podataka.

  • Identifikujte korisnike i njihove privilegije u GCP okruženju.

  • Prikupite informacije o GCP API-ima i njihovim dozvolama.

2. Faza identifikacije ranjivosti

  • Skenirajte GCP resurse kako biste identifikovali ranjivosti, kao što su neažurirani softveri, loše konfigurisane mreže ili nebezbedne API dozvole.

  • Proverite da li postoje nezaštićeni GCP resursi koji mogu biti izloženi napadima, kao što su nezaštićene baze podataka ili skladišta podataka.

3. Faza iskorišćavanja ranjivosti

  • Iskoristite identifikovane ranjivosti kako biste dobili neovlašćen pristup GCP resursima.

  • Iskoristite slabosti u konfiguraciji mreže ili API dozvolama kako biste izvršili napade poput DDoS-a ili preusmeravanja saobraćaja.

4. Faza održavanja pristupa

  • Održavajte pristup GCP resursima kako biste zadržali kontrolu nad okruženjem.

  • Sakrijte svoje aktivnosti i tragove kako biste izbegli otkrivanje.

5. Faza dokumentacije

  • Dokumentujte sve korake i rezultate pentestiranja GCP okruženja.

  • Napravite izveštaj sa preporukama za poboljšanje sigurnosti GCP okruženja.

Napomena: Pre pentestiranja GCP okruženja, uvek se konsultujte sa vlasnikom ili administratorom sistema kako biste dobili odobrenje i izbegli neželjene posledice.

docker run --platform linux/amd64 \
--volume "$HOME/.config/gcloud/application_default_credentials.json:/application_default_credentials.json" \
-e GOOGLE_APPLICATION_CREDENTIALS="/application_default_credentials.json" \
-e NEO4j_PASSWORD="s3cr3t" \
ghcr.io/lyft/cartography  \
--neo4j-uri bolt://host.docker.internal:7687 \
--neo4j-password-env-var NEO4j_PASSWORD \
--neo4j-user neo4j


# It only checks for a few services inside GCP (https://lyft.github.io/cartography/modules/gcp/index.html)
## Cloud Resource Manager
## Compute
## DNS
## Storage
## Google Kubernetes Engine
### If you can run starbase or purplepanda you will get more info

Starbase prikuplja resurse i veze sa usluga i sistema, uključujući cloud infrastrukturu, SaaS aplikacije, sigurnosne kontrole i još mnogo toga, u intuitivnom prikazu grafa 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

Otkrijte najprivilegovanije korisnike 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

Alatka za pronalaženje infrastrukture, datoteka i aplikacija kompanije (cilja) na vodećim cloud provajderima (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).

  • CloudFox je alat za pronalaženje iskorišćivih putanja napada u cloud infrastrukturi (trenutno podržava samo AWS i Azure, sa GCP-om koji će biti dostupan uskoro).

  • Ovo je alat za enumeraciju koji je namenjen kao dodatak ručnom pentestiranju.

  • Ne kreira ili menja podatke unutar cloud okruženja.

Više lista alata za cloud bezbednost

Google

GCP

pageGCP Pentesting

Workspace

pageGWS - Workspace Pentesting

AWS

pageAWS Pentesting

Azure

pageAzure Pentesting

Attack Graph

Stormspotter kreira "attack graph" resursa u Azure pretplati. Omogućava crvenim timovima i pentesterima da vizualizuju površinu napada i mogućnosti za prelazak unutar jednog zakupca, i omogućava vašim odbrambenim timovima da brzo orijentišu i prioritetizuju rad na odgovoru na incidente.

Office365

Potrebno je da imate Global Admin privilegije ili barem Global Admin Reader (ali imajte na umu da su te privilegije malo ograničene). Međutim, ove ograničenja se pojavljuju u nekim PS modulima i mogu se zaobići pristupanjem funkcijama putem web aplikacije.

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini da podržite HackTricks:

Last updated