Pentesting क्लाउड कार्यप्रणाली
Reading time: 14 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
बुनियादी कार्यप्रणाली
प्रत्येक क्लाउड की अपनी विशेषताएँ होती हैं लेकिन सामान्यतः कुछ सामान्य बातें हैं जो एक pentester को जांचनी चाहिए जब क्लाउड पर्यावरण का परीक्षण कर रहा हो:
- बेंचमार्क चेक्स
- यह आपकी मदद करेगा पर्यावरण के आकार और उपयोग की जाने वाली सेवाओं को समझने में
- यह आपको कुछ त्वरित misconfigurations खोजने में भी मदद करेगा क्योंकि आप इनमें से अधिकांश परीक्षण automated tools के साथ कर सकते हैं
- Services Enumeration
- यदि आपने बेंचमार्क टेस्ट सही तरीके से किए हैं तो यहाँ शायद ज्यादा misconfigurations नहीं मिलेंगे, पर कुछ ऐसे मिल सकते हैं जिन्हें बेंचमार्क टेस्ट में नहीं देखा गया था।
- यह आपको बताएगा कि क्लाउड env में ठीक-ठीक क्या इस्तेमाल हो रहा है
- यह अगले चरणों में बहुत मदद करेगा
- Check exposed assets
- यह पिछले सेक्शन के दौरान भी किया जा सकता है, आपको हर उस चीज़ का पता लगाना होगा जो किसी न किसी तरह से Internet के लिए सम्भवतः exposed है और उसे कैसे access किया जा सकता है।
- यहाँ मैं मैनुअली एक्सपोज्ड infrastructure की बात कर रहा हूँ जैसे instances जिनमें web pages या अन्य ports एक्सपोज़ हैं, और साथ ही उन अन्य cloud managed services के बारे में जो एक्सपोज़ होने के लिए configure की जा सकती हैं (जैसे DBs या buckets)
- फिर आपको चेक करना चाहिए क्या वह resource एक्सपोज़ हो सकता है या नहीं (गोपनीय जानकारी? vulnerabilities? exposed service में misconfigurations?)
- Check permissions
- यहाँ आपको क्लाउड के अंदर हर role/user की सभी permissions पता करनी चाहिए और वे कैसे उपयोग हो रहे हैं
- बहुत सारे highly privileged (सब कुछ नियंत्रित करने वाले) accounts? Generated keys जो उपयोग नहीं हो रहे?... इनमें से अधिकांश चेक पहले से बेंचमार्क टेस्ट में किए जाने चाहिए थे
- यदि क्लाइंट OpenID या SAML या कोई अन्य federation उपयोग कर रहा है तो आपको उनसे और जानकारी माँगनी पड़ सकती है कि प्रत्येक role कैसे assign किया जा रहा है (यह एक जैसा नहीं है कि admin role 1 user को assign है या 100 को)
- यह सिर्फ यह पता लगाने के लिए पर्याप्त नहीं है कि किस user के पास admin permissions "*:*". हैं। बहुत सारी अन्य permissions भी हैं जो उपयोग की जाने वाली सेवाओं के आधार पर बहुत संवेदनशील हो सकती हैं।
- इसके अलावा, permissions का दुरुपयोग करके अनुसरण करने योग्य potential privesc तरीके भी होते हैं। इन सभी चीज़ों को ध्यान में रखा जाना चाहिए और जितना संभव हो उतने privesc paths रिपोर्ट किए जाने चाहिए।
- Check Integrations
- यह बहुत संभव है कि अन्य क्लाउड्स या SaaS के साथ integrations क्लाउड env के अंदर इस्तेमाल हो रहे हों।
- उस क्लाउड के लिए जो आप ऑडिट कर रहे हैं अन्य platform के साथ integrations के लिए आपको यह सूचित करना चाहिए कि किसके पास उस integration का (ab)use करने का access है और आपको पूछना चाहिए कि किया जा रहा action कितना संवेदनशील है।
उदाहरण के लिए, कौन AWS bucket में लिख सकता है जहाँ से GCP data ले रहा है (पूछें कि GCP में उस data का उपचार करते समय action कितना संवेदनशील है)। - जिस क्लाउड को आप ऑडिट कर रहे हैं उसके अंदर से external platforms से होने वाले integrations के लिए, आपको पूछना चाहिए बाहरी रूप से किसके पास उस integration का (ab)use करने का access है और जाँचना चाहिए कि वह data कैसे उपयोग हो रहा है।
उदाहरण के लिए, यदि कोई service GCR में host किए गए Docker image का उपयोग कर रही है, तो आपको पूछना चाहिए कि किसके पास उसे modify करने का access है और वह image जब AWS क्लाउड के अंदर execute होगा तो उसे कौन-सी संवेदनशील जानकारी और access मिलेंगे।
Multi-Cloud tools
ऐसे कई tools हैं जिनका उपयोग विभिन्न क्लाउड environments को टेस्ट करने के लिए किया जा सकता है। इस सेक्शन में installation steps और links बताए जाएंगे।
PurplePanda
A tool to identify bad configurations and privesc path in clouds and across clouds/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
यह AWS, GCP & Azure को सपोर्ट करता है। प्रत्येक provider को कॉन्फ़िगर करने का तरीका देखें: 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
Steampipe डाउनलोड और इंस्टॉल करें (https://steampipe.io/downloads). या Brew का उपयोग करें:
brew tap turbot/tap
brew install steampipe
cs-suite
AWS, GCP, Azure, DigitalOcean.
यह python2.7 की आवश्यकता रखता है और ऐसा लगता है कि इसे मेंटेन नहीं किया जा रहा है।
Nessus
Nessus में Audit Cloud Infrastructure स्कैन है जो इनका समर्थन करता है: AWS, Azure, Office 365, Rackspace, Salesforce. एक Client Id प्राप्त करने के लिए Azure में कुछ अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है।
cloudlist
Cloudlist Cloud Providers से Assets (Hostnames, IP Addresses) प्राप्त करने के लिए एक multi-cloud tool for getting Assets है।
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 एक Python टूल है जो इन्फ्रास्ट्रक्चर संसाधनों और उनके आपसी रिश्तों को Neo4j डेटाबेस द्वारा संचालित एक सहज ग्राफ़ दृश्य में समाहित करता है।
# 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 सेवाओं और प्रणालियों — जिनमें क्लाउड इन्फ्रास्ट्रक्चर, SaaS applications, सुरक्षा नियंत्रण और अन्य शामिल हैं — से संपत्तियाँ और संबंध इकट्ठा करता है और उन्हें Neo4j डेटाबेस द्वारा समर्थित एक सहज ग्राफ दृश्य में प्रस्तुत करता है।
# 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
स्कैन किए गए AWS या Azure environment में सबसे अधिक privileged users का पता लगाएं, जिनमें AWS Shadow Admins भी शामिल हैं। यह 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
एक टूल जो top cloud providers (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode) पर किसी company (target) की infrastructure, files और apps खोजने के लिए है।
CloudFox
- CloudFox cloud infrastructure में exploitable attack paths खोजने के लिए एक टूल है (वर्तमान में केवल AWS & Azure समर्थित हैं, GCP जल्द जोड़ा जाएगा)।
- यह एक enumeration टूल है जो manual pentesting की पूरकता के लिए बनाया गया है।
- यह cloud environment के भीतर किसी भी डेटा को create या modify नहीं करता।
More lists of cloud security tools
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter Azure subscription में resources का “attack graph” बनाता है। यह red teams और pentesters को tenant के भीतर attack surface और pivot अवसरों को दृश्य रूप से देखने में सक्षम बनाता है, और आपके defenders को incident response कार्यों को तेजी से व्यवस्थित और प्राथमिकता देने में बहुत मदद करता है।
Office365
आपको Global Admin या कम से कम Global Admin Reader की आवश्यकता है (ध्यान दें कि Global Admin Reader कुछ हद तक सीमित है)। हालाँकि, ये सीमाएँ कुछ PS modules में दिखाई देती हैं और इन्हें features को via the web application के माध्यम से एक्सेस करके बायपास किया जा सकता है।
tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
HackTricks Cloud