प्रत्येक क्लाउड की अपनी विशेषताएँ होती हैं लेकिन सामान्यतः कुछ सामान्य बातें हैं जिन्हें एक pentester को क्लाउड वातावरण का परीक्षण करते समय जांचना चाहिए:
बेंचमार्क जांचें
यह आपको पर्यावरण का आकार और सेवाओं का उपयोग समझने में मदद करेगा
यह आपको कुछ त्वरित गलत कॉन्फ़िगरेशन खोजने की अनुमति देगा क्योंकि आप इनमें से अधिकांश परीक्षण स्वचालित उपकरणों के साथ कर सकते हैं
सेवाओं की गणना
यदि आपने बेंचमार्क परीक्षण सही ढंग से किया है तो आप यहाँ अधिक गलत कॉन्फ़िगरेशन नहीं पाएंगे, लेकिन आप कुछ ऐसा पा सकते हैं जो बेंचमार्क परीक्षण में नहीं देखा गया था।
यह आपको यह जानने की अनुमति देगा कि क्लाउड वातावरण में वास्तव में क्या उपयोग किया जा रहा है
यह अगले चरणों में बहुत मदद करेगा
खुले संसाधनों की जांच करें
यह पिछले अनुभाग के दौरान किया जा सकता है, आपको यह पता लगाना होगा कि क्या कुछ भी संभावित रूप से इंटरनेट पर खुला है और इसे कैसे एक्सेस किया जा सकता है।
यहाँ मैं हाथ से खोली गई अवसंरचना जैसे वेब पृष्ठों के साथ उदाहरणों या अन्य पोर्ट्स के बारे में बात कर रहा हूँ, और अन्य क्लाउड प्रबंधित सेवाओं के बारे में जो खोली जा सकती हैं (जैसे DBs या बकेट्स)
फिर आपको यह जांचना चाहिए कि क्या उस संसाधन को खोला जा सकता है या नहीं (गोपनीय जानकारी? कमजोरियाँ? खोली गई सेवा में गलत कॉन्फ़िगरेशन?)
अनुमतियों की जांच करें
यहाँ आपको क्लाउड के अंदर प्रत्येक भूमिका/उपयोगकर्ता की सभी अनुमतियों का पता लगाना चाहिए और वे कैसे उपयोग की जा रही हैं
बहुत अधिक उच्च विशेषाधिकार प्राप्त (सब कुछ नियंत्रित करें) खाते? उत्पन्न कुंजी का उपयोग नहीं किया गया?... इनमें से अधिकांश जांचें पहले से ही बेंचमार्क परीक्षणों में की जानी चाहिए थीं
यदि ग्राहक OpenID या SAML या अन्य संघीकरण का उपयोग कर रहा है तो आपको उनसे आगे की जानकारी पूछनी पड़ सकती है कि प्रत्येक भूमिका कैसे सौंपा जा रहा है (यह समान नहीं है कि व्यवस्थापक भूमिका 1 उपयोगकर्ता को या 100 को सौंपा गया है)
यह खोजना पर्याप्त नहीं है कि कौन से उपयोगकर्ताओं के पास व्यवस्थापक अनुमतियाँ हैं "*:*". बहुत सारी अन्य अनुमतियाँ हैं जो उपयोग की जाने वाली सेवाओं के आधार पर बहुत संवेदनशील हो सकती हैं।
इसके अलावा, अनुमतियों का दुरुपयोग करते हुए संभावित प्रिवेस्क तरीके हैं। इन सभी बातों को ध्यान में रखा जाना चाहिए और जितने संभव हो प्रिवेस्क पथों की रिपोर्ट की जानी चाहिए।
एकीकरण की जांच करें
यह अत्यधिक संभावना है कि अन्य क्लाउड या SaaS के साथ एकीकरण क्लाउड वातावरण के अंदर उपयोग किया जा रहा है।
जिस क्लाउड का आप ऑडिट कर रहे हैं उसके एकीकरण के लिए आपको सूचित करना चाहिए किसके पास उस एकीकरण का (दुरुपयोग) करने का अधिकार है और आपको पूछना चाहिए कितना संवेदनशील है किया जा रहा कार्य।
उदाहरण के लिए, कौन AWS बकेट में लिख सकता है जहाँ GCP डेटा प्राप्त कर रहा है (पूछें कि GCP में उस डेटा को संभालने में कार्य कितना संवेदनशील है)।
जिस क्लाउड का आप ऑडिट कर रहे हैं के अंदर बाहरी प्लेटफार्मों से एकीकरण के लिए, आपको पूछना चाहिए किसके पास बाहरी रूप से उस एकीकरण का (दुरुपयोग) करने का अधिकार है और यह जांचें कि उस डेटा का उपयोग कैसे किया जा रहा है।
उदाहरण के लिए, यदि कोई सेवा GCR में होस्ट की गई Docker छवि का उपयोग कर रही है, तो आपको पूछना चाहिए कि इसे संशोधित करने का किसके पास अधिकार है और जब इसे AWS क्लाउड के अंदर निष्पादित किया जाता है तो उस छवि को कौन सी संवेदनशील जानकारी और पहुँच मिलेगी।
Multi-Cloud tools
कई उपकरण हैं जो विभिन्न क्लाउड वातावरण का परीक्षण करने के लिए उपयोग किए जा सकते हैं। स्थापना के चरण और लिंक इस अनुभाग में बताए जाएंगे।
एक उपकरण जो क्लाउड और क्लाउड/SaaS में खराब कॉन्फ़िगरेशन और प्रिवेस्क पथ की पहचान करने के लिए है।
# 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
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 में Audit Cloud Infrastructure स्कैन है जो समर्थन करता है: AWS, Azure, Office 365, Rackspace, Salesforce। Client Id प्राप्त करने के लिए Azure में कुछ अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता है।
कार्टोग्राफी एक 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
एक उपकरण जो शीर्ष क्लाउड प्रदाताओं (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode) पर एक कंपनी (लक्ष्य) की अवसंरचना, फ़ाइलों और ऐप्स को खोजने के लिए है।
CloudFox एक उपकरण है जो क्लाउड अवसंरचना में उपयोग किए जा सकने वाले हमले के रास्तों को खोजने के लिए है (वर्तमान में केवल AWS और Azure का समर्थन, GCP आने वाला है)।
यह एक एन्यूमरेशन उपकरण है जिसे मैनुअल pentesting के पूरक के रूप में डिज़ाइन किया गया है।
यह क्लाउड वातावरण के भीतर कोई डेटा नहीं बनाता या संशोधित नहीं करता है।
StormspotterAzure सदस्यता में संसाधनों का “हमला ग्राफ” बनाता है। यह रेड टीमों और pentesters को हमले की सतह और एक टेनेट के भीतर पिवट अवसरों को दृश्य बनाने में सक्षम बनाता है, और आपके रक्षकों को तेजी से उन्मुख और घटना प्रतिक्रिया कार्य को प्राथमिकता देने के लिए सुपरचार्ज करता है।
Office365
आपको Global Admin या कम से कम Global Admin Reader की आवश्यकता है (लेकिन ध्यान दें कि Global Admin Reader थोड़ा सीमित है)। हालाँकि, ये सीमाएँ कुछ PS मॉड्यूल में प्रकट होती हैं और वेब एप्लिकेशन के माध्यम से सुविधाओं तक पहुँचकर बाईपास की जा सकती हैं।