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 का समर्थन करें

बुनियादी कार्यप्रणाली

प्रत्येक क्लाउड की अपनी विशेषताएँ होती हैं लेकिन सामान्यतः कुछ सामान्य बातें हैं जो एक 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.

bash
# 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

bash
# 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

bash
# 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

bash
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 है।

bash
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 डेटाबेस द्वारा संचालित एक सहज ग्राफ़ दृश्य में समाहित करता है।

bash
# 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 डेटाबेस द्वारा समर्थित एक सहज ग्राफ दृश्य में प्रस्तुत करता है।

bash
# 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 का उपयोग करता है।

bash
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

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

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 का समर्थन करें