Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα αποθετήρια HackTricks και HackTricks Cloud στο github.
Βασική Μεθοδολογία
Κάθε νέφος έχει τις δικές του ιδιαιτερότητες, αλλά γενικά υπάρχουν μερικά κοινά πράγματα που ένας ελεγκτής ασφάλειας θα πρέπει να ελέγξει κατά τη δοκιμή ενός νέφους:
Έλεγχοι αναφοράς
Αυτό θα σας βοηθήσει να κατανοήσετε το μέγεθος του περιβάλλοντος και τις υπηρεσίες που χρησιμοποιούνται
Θα σας επιτρέψει επίσης να βρείτε μερικές γρήγορες λανθασμένες ρυθμίσεις, καθώς μπορείτε να εκτελέσετε τις περισσότερες από αυτές τις δοκιμές με αυτοματοποιημένα εργαλεία
Απαρίθμηση Υπηρεσιών
Πιθανότατα δεν θα βρείτε πολλές περισσότερες λανθασμένες ρυθμίσεις εδώ αν εκτελέσετε σωστά τους έλεγχους αναφοράς, αλλά μπορείτε να βρείτε κάποιες που δεν αναζητούνταν στον έλεγχο αναφοράς.
Αυτό θα σας επιτρέψει να γνωρίζετε τι χρησιμοποιείται ακριβώς στο περιβάλλον του νέφους
Αυτό θα βοηθήσει πολύ στα επόμενα βήματα
Έλεγχος αποκαλυμμένων πόρων
Αυτό μπορεί να γίνει κατά τη διάρκεια της προηγούμενης ενότητας, πρέπει να ανακαλύψετε τα πάντα που είναι πιθανώς αποκαλυμμένα στο Διαδίκτυο κάπως και πώς μπορεί να γίνει πρόσβαση σε αυτά.
Εδώ αναφέρομαι σε χειροκίνητα αποκαλυμμένες υποδομές όπως περιπτώσεις με ιστοσελίδες ή άλλες θύρες που είναι αποκαλυμμένες, καθώς και σε άλλες υπηρεσίες που διαχειρίζονται το νέφος που μπορούν να ρυθμιστούν να είναι αποκαλυμμένες (όπως ΒΔ ή κάδοι)
Στη συνέχεια, θα πρέπει να ελέγξετε αν αυτός ο πόρος μπορεί να αποκαλυφθεί ή όχι (εμπιστευτικές πληροφορίες; ευπάθειες; λανθασμένες ρυθμίσεις στην αποκαλυμμένη υπηρεσία;)
Έλεγχος Δικαιωμάτων
Εδώ θα πρέπει να ανακαλύψετε όλα τα δικαιώματα κάθε ρόλου/χρήστη μέσα στο νέφος και πώς χρησιμοποιούνται
Πάρα πολλοί χρήστες με υψηλά προνόμια (έλεγχος τα πάντα); Δημιουργημένα κλειδιά που δεν χρησιμοποιούνται;... Οι περισσότεροι από αυτούς τους ελέγχους θα έπρεπε να έχουν γίνει ήδη κατά τη διάρκεια των ελέγχων αναφοράς
Αν ο πελάτης χρησιμοποιεί OpenID ή SAML ή άλλη συνομοσπονδία, μπορεί να χρειαστεί να τους ζητήσετε περαιτέρω πληροφορίες για το πώς γίνεται η ανάθεση κάθε ρόλου (δεν είναι το ίδιο αν ο ρόλος του διαχειριστή ανατίθεται σε 1 χρήστη ή σε 100)
Δεν είναι αρκετό να βρείτε ποιοι χρήστες έχουν δικαιώματα διαχειριστή με "*:*". Υπάρχουν πολλά άλλα δικαιώματα που, ανάλογα με τις χρησιμοποιούμενες υπηρεσίες, μπορεί να είναι πολύ ευαίσθητα.
Επιπλέον, υπάρχουν δυνητικοί τρόποι ανέλιξης προνομίων που μπορούν να ακολουθηθούν κατά την κατάχρηση δικαιωμάτω
# You need to install and run neo4j alsogitclonehttps://github.com/carlospolop/PurplePandacdPurplePandapython3-mvenv.sourcebin/activatepython3-mpipinstall-rrequirements.txtexport PURPLEPANDA_NEO4J_URL="bolt://neo4j@localhost:7687"export PURPLEPANDA_PWD="neo4j_pwd_4_purplepanda"python3main.py-h# Get help
Μεθοδολογία Πεντεστινγκ Σύννεφου GCP
Η μεθοδολογία πεντεστινγκ στο GCP ακολουθεί τα εξής βήματα:
Συλλογή πληροφοριών: Αρχικά, συλλέγουμε πληροφορίες για τον στόχο μας, όπως διευθύνσεις IP, ονόματα χρηστών, δημόσια δεδομένα και πληροφορίες για τις υπηρεσίες που χρησιμοποιεί το GCP.
Ανάλυση ευπάθειας: Στο επόμενο βήμα, αναλύουμε τις ευπάθειες που μπορεί να υπάρχουν στο GCP, όπως αδύναμες συνθηκολογήσεις, ευπάθειες στον έλεγχο πρόσβασης και αδυναμίες στην ασφάλεια των δεδομένων.
Εκμετάλλευση ευπάθειας: Αφού εντοπίσουμε μια ευπάθεια, προχωρούμε στην εκμετάλλευσή της για να αποκτήσουμε πρόσβαση στο σύστημα ή τις υπηρεσίες του GCP.
Κατακρυφή: Στο επόμενο βήμα, προσπαθούμε να κατακρύψουμε την παρουσία μας και τις δραστηριότητές μας στο GCP, ώστε να μην ανιχνευθούμε από τους διαχειριστές του συστήματος.
Καταγραφή: Καταγράφουμε όλες τις ενέργειες που πραγματοποιούμε στο GCP, προκειμένου να έχουμε ένα ακριβές ιστορικό των δραστηριοτήτων μας.
Ανάκτηση: Το τελευταίο βήμα είναι η ανάκτηση του συστήματος στην αρχική του κατάσταση και η επαναφορά όλων των αλλαγών που πραγματοποιήθηκαν κατά τη διάρκεια του πεντεστινγκ.
Αυτή η μεθοδολογία πεντεστινγκ στο GCP μας βοηθά να εντοπίσουμε ευπάθειες και να βελτιώσουμε την ασφάλεια του συστήματος.
export GOOGLE_DISCOVERY=$(echo'google:- file_path: ""- file_path: ""service_account_id: "some-sa-email@sidentifier.iam.gserviceaccount.com"'|base64)python3main.py-a-pgoogle#Get basic info of the account to check it's correctly configuredpython3main.py-e-pgoogle#Enumerate the env
# Installpipinstallprowlerprowler-v# Runprowler<provider># Exampleprowleraws--profilecustom-profile [-M csvjsonjson-asffhtml]# Get info about checks & servicesprowler<provider>--list-checksprowler<provider>--list-services
mkdirscout; cdscoutvirtualenv-ppython3venvsourcevenv/bin/activatepipinstallscoutsuitescout--help## Using Docker: https://github.com/nccgroup/ScoutSuite/wiki/Docker-Image
scoutgcp--report-dir/tmp/gcp--user-account--all-projects## use "--service-account KEY_FILE" instead of "--user-account" to use a service accountSCOUT_FOLDER_REPORT="/tmp"for pid in $(gcloudprojectslist--format="value(projectId)"); doecho"================================================"echo"Checking $pid"mkdir"$SCOUT_FOLDER_REPORT/$pid"scoutgcp--report-dir"$SCOUT_FOLDER_REPORT/$pid"--no-browser--user-account--project-id"$pid"done
# Install gcp pluginsteampipeplugininstallgcp# Use https://github.com/turbot/steampipe-mod-gcp-compliance.gitgitclonehttps://github.com/turbot/steampipe-mod-gcp-compliance.gitcdsteampipe-mod-gcp-compliance# To run all the checks from the dashboardsteampipedashboard# To run all the checks from rhe clisteampipecheckall
Έλεγχος όλων των Έργων
Για να ελέγξετε όλα τα έργα, πρέπει να δημιουργήσετε το αρχείο gcp.spc που υποδεικνύει όλα τα έργα προς ελέγχο. Μπορείτε απλά να ακολουθήσετε τις οδηγίες από το παρακάτω σενάριο
FILEPATH="/tmp/gcp.spc"rm-rf"$FILEPATH"2>/dev/null# Generate a json like object for each projectfor pid in $(gcloudprojectslist--format="value(projectId)"); doecho"connection \"gcp_$(echo-n $pid |tr "-" "_" )\" {plugin = \"gcp\"project = \"$pid\"}">>"$FILEPATH"done# Generate the aggragator to callecho'connection "gcp_all" {plugin = "gcp"type = "aggregator"connections = ["gcp_*"]}'>>"$FILEPATH"echo"Copy $FILEPATH in ~/.steampipe/config/gcp.spc if it was correctly generated"
# Install aws pluginsteampipeplugininstallaws# Modify the spec indicating in "profile" the profile name to usenano~/.steampipe/config/aws.spc# Get some info on how the AWS account is being usedgitclonehttps://github.com/turbot/steampipe-mod-aws-insights.gitcdsteampipe-mod-aws-insightssteampipedashboard# Get the services exposed to the internetgitclonehttps://github.com/turbot/steampipe-mod-aws-perimeter.gitcdsteampipe-mod-aws-perimetersteampipedashboard# Run the benchmarksgitclonehttps://github.com/turbot/steampipe-mod-aws-compliancecdsteampipe-mod-aws-compliancesteampipedashboard# To see results in browsersteampipecheckall--export=/tmp/output4.json
AWS, GCP, Azure, DigitalOcean.
Απαιτείται python2.7 και φαίνεται να μην υποστηρίζεται πλέον.
Nessus
Το Nessus έχει έναν έλεγχο Ελέγχου της Υποδομής του Νέφους που υποστηρίζει: AWS, Azure, Office 365, Rackspace, Salesforce. Χρειάζονται μερικές επιπλέον ρυθμίσεις στο Azure για να λάβετε ένα Αναγνωριστικό Πελάτη.
Το Cartography είναι ένα εργαλείο Python που συγκεντρώνει τα υποδομήματα της υποδομής και τις σχέσεις μεταξύ τους σε μια ευανάγνωστη γραφική προβολή που τροφοδοτείται από μια βάση δεδομένων Neo4j.
# Installationdockerimagepullghcr.io/lyft/cartographydockerrun--platformlinux/amd64ghcr.io/lyft/cartographycartography--help## Install a Neo4j DB version 3.5.*
dockerrun--platformlinux/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 συλλέγει περιουσιακά στοιχεία και σχέσεις από υπηρεσίες και συστήματα, συμπεριλαμβανομένης της υποδομής στον νέφος, των εφαρμογών SaaS, των ελέγχων ασφαλείας και πολλών άλλων, σε μια ευανάγνωστη γραφική προβολή που υποστηρίζεται από τη βάση δεδομένων Neo4j.
# You are going to need Node version 14, so install nvm following https://tecadmin.net/install-nvm-macos-with-homebrew/npminstall--globalyarnnvminstall14gitclonehttps://github.com/JupiterOne/starbase.gitcdstarbasenvmuse14yarninstallyarnstarbase--help# Configure manually config.yaml depending on the env to analyzeyarnstarbasesetupyarnstarbaserun# Dockergitclonehttps://github.com/JupiterOne/starbase.gitcdstarbasecpconfig.yaml.exampleconfig.yaml# Configure manually config.yaml depending on the env to analyzedockerbuild--no-cache-tstarbase:latest.docker-composerunstarbasesetupdocker-composerunstarbaserun
## Config for GCP### Check out: https://github.com/JupiterOne/graph-google-cloud/blob/main/docs/development.md### It requires service account credentialsintegrations:-name:graph-google-cloudinstanceId:testInstanceIddirectory:./.integrations/graph-google-cloudgitRemoteUrl:https://github.com/JupiterOne/graph-google-cloud.gitconfig:SERVICE_ACCOUNT_KEY_FILE: '{Check https://github.com/JupiterOne/graph-google-cloud/blob/main/docs/development.md#service_account_key_file-string}'
PROJECT_ID:""FOLDER_ID:""ORGANIZATION_ID:""CONFIGURE_ORGANIZATION_PROJECTS:falsestorage:engine:neo4jconfig:username:neo4jpassword:s3cr3turi:bolt://localhost:7687#Consider using host.docker.internal if from docker
Ανακαλύψτε τους πιο προνομιούχους χρήστες στο σαρώθηκε περιβάλλον AWS ή Azure, συμπεριλαμβανομένων των AWS Shadow Admins. Χρησιμοποιεί το powershell.
Import-Module .\SkyArk.ps1 -forceStart-AzureStealth# in the Cloud ConsoleIEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cyberark/SkyArk/master/AzureStealth/AzureStealth.ps1')
Scan-AzureAdmins
Ένα εργαλείο για την εύρεση της υποδομής, των αρχείων και των εφαρμογών μιας εταιρείας (στόχου) στους κορυφαίους παρόχους cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
Το CloudFox είναι ένα εργαλείο για την εύρεση ευπαθών διαδρομών επίθεσης στην υποδομή cloud (αυτή τη στιγμή υποστηρίζονται μόνο AWS και Azure με την υποστήριξη του GCP στο μέλλον).
Είναι ένα εργαλείο απαρίθμησης που προορίζεται να συμπληρώνει το χειροκίνητο pentesting.
Δεν δημιουργεί ή τροποποιεί δεδομένα εντός του περιβάλλοντος cloud.
Stormspotterδημιουργεί ένα "διάγραμμα επίθεσης" των πόρων σε μια συνδρομή Azure. Επιτρέπει σε κόκκινες ομάδες και pentesters να οπτικοποιήσουν την επιφάνεια επίθεσης και τις ευκαιρίες περιστροφής εντός ενός ενοικιαζόμενου, και ενισχύει τους υπερασπιστές σας για να προσανατολιστούν γρήγορα και να δώσουν προτεραιότητα στο έργο ανταπόκρισης σε περιστατικά.
Office365
Χρειάζεστε Global Admin ή τουλάχιστον Global Admin Reader (αλλά σημειώστε ότι οι περιορισμοί αυτοί εμφανίζονται σε ορισμένα PS modules και μπορούν να παρακαμφθούν έχοντας πρόσβαση στα χαρακτηριστικά μέσω της web εφαρμογής.