Pentesting Cloud Methodology

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Metodologie

Elke wolk het sy eie eiesoortighede, maar oor die algemeen is daar 'n paar gemeenskaplike dinge wat 'n pentester moet nagaan wanneer 'n wolkomgewing getoets word:

  • Benchmarks nagaan

  • Dit sal jou help om die grootte van die omgewing en die gebruikte dienste te verstaan

  • Dit sal jou ook in staat stel om sommige vinnige verkeerde konfigurasies te vind, aangesien jy die meeste van hierdie toetse met geoutomatiseerde gereedskap kan uitvoer

  • Dienste-opnoeming

  • Jy sal waarskynlik nie baie meer verkeerde konfigurasies hier vind as jy die toets van die maatstaf korrek uitgevoer het nie, maar jy mag dalk sommige vind wat nie in die maatstaf-toets gesoek is nie.

  • Dit sal jou in staat stel om te weet wat presies in die wolkomgewing gebruik word

  • Dit sal baie help in die volgende stappe

  • Blootgestelde bates nagaan

  • Dit kan gedurende die vorige afdeling gedoen word, jy moet alles vind wat potensieel blootgestel is aan die internet op een of ander manier en hoe dit toeganklik is.

  • Hier neem ek handmatig blootgestelde infrastruktuur soos instansies met webbladsye of ander poorte wat blootgestel word, en ook oor ander wolkbestuurde dienste wat gekonfigureer kan word om blootgestel te word (soos databasisse of emmers)

  • Dan moet jy nagaan of daardie hulpbron blootgestel kan word of nie (vertroulike inligting? kwesbaarhede? verkeerde konfigurasies in die blootgestelde diens?)

  • Toestemmings nagaan

  • Hier moet jy uitvind wat die toestemmings van elke rol/gebruiker binne die wolk is en hoe dit gebruik word

  • Te veel hoogs bevoorregte (beheer alles) rekeninge? Gegenereerde sleutels wat nie gebruik word nie?... Die meeste van hierdie nagaan behoort reeds in die maatstaf-toetse gedoen te wees

  • As die kliënt OpenID of SAML of ander federasie gebruik, moet jy dalk vir hulle verdere inligting vra oor hoe elke rol toegewys word (dit is nie dieselfde as die admin-rol aan 1 gebruiker of aan 100 toegewys word nie)

  • Dit is nie genoeg om te vind watter gebruikers admin toestemmings het "*:*". Daar is baie ander toestemmings wat afhangend van die gebruikte dienste baie sensitief kan wees.

  • Daarbenewens is daar potensiële privesc-weë om te volg deur toestemmings te misbruik. Al hierdie dinge moet in ag geneem word en soveel privesc-paaie as moontlik moet gerapporteer word.

  • Integrasies nagaan

  • Dit is baie waarskynlik dat integrasies met ander wolke of SaaS binne die wolkomgewing gebruik word.

  • Vir integrasies van die wolk wat jy ondersoek met ander platforms moet jy aanwys wie toegang het om daardie integrasie (mis)tebruik en jy moet vra hoe sensitief die aksie wat uitgevoer word, is. Byvoorbeeld, wie kan in 'n AWS-emmer skryf waar GCP data van kry (vra hoe sensitief is die aksie in GCP wat daardie data hanteer).

  • Vir integrasies binne die wolk wat jy ondersoek vanaf eksterne platforms, moet jy vra wie ekstern toegang het om daardie integrasie (mis)tebruik en nagaan hoe daardie data gebruik word. Byvoorbeeld, as 'n diens 'n Docker-beeld gebruik wat in GCR gehuisves word, moet jy vra wie toegang het om dit te wysig en watter sensitiewe inligting en toegang daardie beeld sal kry wanneer dit binne 'n AWS-wolk uitgevoer word.

Multi-Wolk-gereedskap

Daar is verskeie gereedskap wat gebruik kan word om verskillende wolkomgewings te toets. Die installasie-stappe en skakels sal in hierdie afdeling aangedui word.

'n Gereedskap om slegte konfigurasies en privesc-paaie in wolke en oor wolke/SaaS te identifiseer.

# 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

Dit ondersteun AWS, GCP & Azure. Kyk hoe om elke verskaffer te konfigureer in 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

Laai Steampipe af en installeer dit (https://steampipe.io/downloads). Of gebruik Brew:

brew tap turbot/tap
brew install steampipe

AWS, GCP, Azure, DigitalOcean. Dit vereis python2.7 en lyk ononderhou.

Nessus

Nessus het 'n Audit Cloud Infrastructure skandering wat ondersteuning bied vir: AWS, Azure, Office 365, Rackspace, Salesforce. Sommige ekstra konfigurasies in Azure is nodig om 'n Client Id te verkry.

Cloudlist is 'n multi-cloud instrument vir die verkryging van bates (Hostnames, IP-adresse) van Cloudverskaffers.

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

Pentesting Cloud Methodology

1. Information Gathering

Die eerste stap in die pentesting-metodologie vir die ondersoek van die wolk is om inligting te versamel oor die teikenwolkomgewing. Hier is 'n paar tegnieke wat gebruik kan word:

  • DNS-opname: Identifiseer die DNS-rekords van die teikenwolkomgewing om inligting soos IP-adresse, subdomeine en diensverskaffers te verkry.

  • Portskandering: Skandeer die IP-adresse van die teikenwolkomgewing om oop poorte en dienste te identifiseer.

  • Subdomeinontdekking: Identifiseer subdomeine van die teikenwolkomgewing deur gebruik te maak van tegnieke soos bruteforcing, DNS-opname en openbare bronnavorsing.

  • Openbare bronnavorsing: Deursoek openbare bronne soos sosiale media, blogposts en forums vir enige inligting wat nuttig kan wees vir die pentesting-proses.

  • Netwerkkaartbring: Identifiseer die netwerkargitektuur van die teikenwolkomgewing deur gebruik te maak van tegnieke soos netwerkkaartbring en subnetidentifikasie.

2. Identifisering van aanvalsvlakke

Die volgende stap is om die aanvalsvlakke in die teikenwolkomgewing te identifiseer. Hier is 'n paar moontlike aanvalsvlakke wat ondersoek kan word:

  • Gebruikersrekening: Identifiseer swak gebruikersrekeninge wat gebruik kan word om toegang tot die wolkomgewing te verkry.

  • API-toegang: Identifiseer en ondersoek die API-toegangspunte van die teikenwolkomgewing om moontlike aanvalsvlakke te identifiseer.

  • Konfigurasiefoute: Identifiseer foute in die konfigurasie van die teikenwolkomgewing wat misbruik kan word om toegang te verkry.

  • Swak toegangsbeheer: Identifiseer swak toegangsbeheermaatreëls wat misbruik kan word om toegang tot die wolkomgewing te verkry.

  • Onveilige data-oordrag: Identifiseer onveilige data-oordragprotokolle wat gebruik word in die teikenwolkomgewing.

3. Aanvalle uitvoer

Nadat die aanvalsvlakke geïdentifiseer is, kan die volgende stap wees om aanvalle uit te voer om toegang tot die teikenwolkomgewing te verkry. Hier is 'n paar moontlike aanvaltegnieke wat gebruik kan word:

  • Bruteforcing: Probeer om swak wagwoorde te raai deur herhaaldelik te probeer om in te teken op gebruikersrekeninge.

  • SQL-injeksie: Voer SQL-injeksie-aanvalle uit om toegang tot die databasis van die teikenwolkomgewing te verkry.

  • Cross-Site Scripting (XSS): Voer XSS-aanvalle uit om kwaadwillige skrips in die webtoepassings van die teikenwolkomgewing in te spuit.

  • Man-in-the-Middle (MitM): Voer MitM-aanvalle uit om die kommunikasie tussen die teikenwolkomgewing en gebruikers te onderskep en te manipuleer.

  • Databasislekke: Identifiseer en ondersoek databasislekke in die teikenwolkomgewing om toegang tot gevoelige inligting te verkry.

4. Privilege Escalation

As toegang tot die teikenwolkomgewing verkry is, kan die volgende stap wees om voorregte te verhoog om verdere toegang en beheer oor die omgewing te verkry. Hier is 'n paar moontlike tegnieke wat gebruik kan word:

  • Gebruikersrolmanipulasie: Manipuleer gebruikersrolle en toegangsbeheermaatreëls om voorregte te verhoog.

  • Misbruik van swakke konfigurasie: Misbruik swakke konfigurasie-instellings om voorregte te verhoog.

  • Exploit van bekende kwesbaarhede: Maak gebruik van bekende kwesbaarhede in die teikenwolkomgewing om voorregte te verhoog.

  • Privilege Escalation in containers: Identifiseer en ondersoek voorregverhoging in konteineromgewings.

5. Data Exfiltration

Die finale stap in die pentesting-metodologie vir die ondersoek van die wolk is om data uit die teikenwolkomgewing te onttrek. Hier is 'n paar moontlike tegnieke wat gebruik kan word:

  • Bestandsoordrag: Oordra van gevoelige data deur gebruik te maak van protokolle soos FTP, HTTP of SMB.

  • Datalekke: Identifiseer en ondersoek datalekke in die teikenwolkomgewing om gevoelige inligting te onttrek.

  • Netwerkverkeerontleding: Ontleed die netwerkverkeer tussen die teikenwolkomgewing en ander stelsels om gevoelige inligting te onderskep.

  • Terugdeurinstallasie: Installeer 'n terugdeur in die teikenwolkomgewing om toekomstige toegang te verseker.

6. Rapportering

Die laaste stap in die pentesting-metodologie is om 'n volledige verslag op te stel wat die bevindinge, aanbevelings en stappe vir die oplossing van die geïdentifiseerde kwesbaarhede bevat. Die verslag moet duidelik en bondig wees en moet aan die kliënt oorgedra word vir verdere aksie.

## For GCP it requires service account JSON credentials
cloudlist -config </path/to/config>

Kartografie is 'n Python-hulpmiddel wat infrastruktuur bates en die verhoudings tussen hulle konsolideer in 'n intuïtiewe grafiese weergawe wat aangedryf word deur 'n Neo4j databasis.

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

Ontdek die mees bevoorregte gebruikers in die gescande AWS of Azure omgewing, insluitend die AWS Shadow Admins. Dit maak gebruik van 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

'n Gereedskap om 'n maatskappy (teiken) se infrastruktuur, lêers en programme op die top wolkverskaffers (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode) te vind.

  • WolkVos is 'n gereedskap om uitbuitbare aanvalspaaie in wolkinfrastruktuur te vind (tans slegs AWS & Azure ondersteun met GCP wat binnekort kom).

  • Dit is 'n opnamegereedskap wat bedoel is om handmatige pentesting aan te vul.

  • Dit skep of wysig geen data binne die wolkomgewing nie.

Meer lys van wolksekuriteitsgereedskap

Google

GCP

pageGCP Pentesting

Workspace

pageGWS - Workspace Pentesting

AWS

pageAWS Pentesting

Azure

pageAzure Pentesting

Aanvalgrafiek

Stormspotter skep 'n "aanvalgrafiek" van die hulpbronne in 'n Azure intekening. Dit stel rooi spanne en pentesters in staat om die aanvalsvlak en draaipunte binne 'n huurder te visualiseer, en versterk jou verdedigers om vinnig te oriënteer en voorrang te gee aan insidentresponswerk.

Office365

Jy benodig Global Admin of ten minste Global Admin Reader (maar let daarop dat Global Admin Reader bietjie beperk is). Hierdie beperkings verskyn egter in sommige PS-modules en kan omseil word deur die funksies via die webtoepassing te benader.

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated