AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
Reading time: 13 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 गिटहब रिपोजिटरी में सबमिट करके।
VPC & Networking
जानें कि VPC क्या है और इसके घटकों के बारे में:
AWS - VPC & Networking Basic Information
EC2
Amazon EC2 का उपयोग वर्चुअल सर्वर शुरू करने के लिए किया जाता है। यह सुरक्षा और नेटवर्किंग की कॉन्फ़िगरेशन और स्टोरेज के प्रबंधन की अनुमति देता है। Amazon EC2 की लचीलापन इसकी क्षमता में स्पष्ट है कि यह संसाधनों को ऊपर और नीचे दोनों की ओर स्केल कर सकता है, प्रभावी रूप से आवश्यकताओं में बदलाव या लोकप्रियता में वृद्धि के अनुसार अनुकूलित होता है। यह विशेषता सटीक ट्रैफ़िक भविष्यवाणियों की आवश्यकता को कम करती है।
EC2 में गणना करने के लिए दिलचस्प चीजें:
- वर्चुअल मशीनें
- SSH कुंजी
- उपयोगकर्ता डेटा
- मौजूदा EC2s/AMIs/स्नैपशॉट्स
- नेटवर्किंग
- नेटवर्क
- उप-नेटवर्क
- सार्वजनिक IPs
- खुले पोर्ट
- AWS के बाहर अन्य नेटवर्क के साथ एकीकृत कनेक्शन
Instance Profiles
EC2 इंस्टेंस पर चलने वाले अनुप्रयोगों को अनुमतियाँ देने के लिए भूमिकाओं का उपयोग करने के लिए थोड़ी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है। EC2 इंस्टेंस पर चलने वाला अनुप्रयोग AWS से वर्चुअलाइज्ड ऑपरेटिंग सिस्टम द्वारा अलग किया गया है। इस अतिरिक्त पृथक्करण के कारण, आपको EC2 इंस्टेंस को AWS भूमिका और इसके संबंधित अनुमतियों को असाइन करने के लिए एक अतिरिक्त कदम की आवश्यकता होती है और उन्हें इसके अनुप्रयोगों के लिए उपलब्ध कराना होता है।
यह अतिरिक्त कदम है इंस्टेंस प्रोफ़ाइल का निर्माण जो इंस्टेंस से जुड़ा होता है। इंस्टेंस प्रोफ़ाइल भूमिका को शामिल करता है और इंस्टेंस पर चलने वाले अनुप्रयोग को भूमिका के अस्थायी क्रेडेंशियल प्रदान कर सकता है। उन अस्थायी क्रेडेंशियल का उपयोग फिर अनुप्रयोग के API कॉल में संसाधनों तक पहुँचने और केवल उन संसाधनों तक पहुँच को सीमित करने के लिए किया जा सकता है जो भूमिका निर्दिष्ट करती है। ध्यान दें कि एक समय में केवल एक भूमिका को EC2 इंस्टेंस को असाइन किया जा सकता है, और इंस्टेंस पर सभी अनुप्रयोग एक ही भूमिका और अनुमतियों को साझा करते हैं।
Metadata Endpoint
AWS EC2 मेटाडेटा एक Amazon Elastic Compute Cloud (EC2) इंस्टेंस के बारे में जानकारी है जो रनटाइम पर इंस्टेंस के लिए उपलब्ध है। यह मेटाडेटा इंस्टेंस के बारे में जानकारी प्रदान करने के लिए उपयोग किया जाता है, जैसे कि इसका इंस्टेंस ID, वह उपलब्धता क्षेत्र जिसमें यह चल रहा है, इंस्टेंस से संबंधित IAM भूमिका, और इंस्टेंस का होस्टनेम।
Enumeration
# Get EC2 instances
aws ec2 describe-instances
aws ec2 describe-instance-status #Get status from running instances
# Get user data from each ec2 instance
for instanceid in $(aws ec2 describe-instances --profile <profile> --region us-west-2 | grep -Eo '"i-[a-zA-Z0-9]+' | tr -d '"'); do
echo "Instance ID: $instanceid"
aws ec2 describe-instance-attribute --profile <profile> --region us-west-2 --instance-id "$instanceid" --attribute userData | jq ".UserData.Value" | tr -d '"' | base64 -d
echo ""
echo "-------------------"
done
# Instance profiles
aws iam list-instance-profiles
aws iam list-instance-profiles-for-role --role-name <name>
# Get tags
aws ec2 describe-tags
# Get volumes
aws ec2 describe-volume-status
aws ec2 describe-volumes
# Get snapshots
aws ec2 describe-snapshots --owner-ids self
# Scheduled instances
aws ec2 describe-scheduled-instances
# Get custom images
aws ec2 describe-images --owners self
# Get Elastic IPs
aws ec2 describe-addresses
# Get current output
aws ec2 get-console-output --instance-id [id]
# Get VPN customer gateways
aws ec2 describe-customer-gateways
aws ec2 describe-vpn-gateways
aws ec2 describe-vpn-connections
# List conversion tasks to upload/download VMs
aws ec2 describe-conversion-tasks
aws ec2 describe-import-image-tasks
# Get Bundle Tasks
aws ec2 describe-bundle-tasks
# Get Classic Instances
aws ec2 describe-classic-link-instances
# Get Dedicated Hosts
aws ec2 describe-hosts
# Get SSH Key Pairs
aws ec2 describe-key-pairs
# Get Internet Gateways
aws ec2 describe-internet-gateways
# Get NAT Gateways
aws ec2 describe-nat-gateways
# Get subnetworks
aws ec2 describe-subnets
# Get FW rules
aws ec2 describe-network-acls
# Get security groups
aws ec2 describe-security-groups
# Get interfaces
aws ec2 describe-network-interfaces
# Get routes table
aws ec2 describe-route-tables
# Get VPCs
aws ec2 describe-vpcs
aws ec2 describe-vpc-peering-connections
अनधिकृत पहुँच
AWS - EC2 Unauthenticated Enum
प्रिवेस्क
अगली पृष्ठ पर आप देख सकते हैं कि EC2 अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं:
पोस्ट-एक्सप्लोइटेशन
AWS - EC2, EBS, SSM & VPC Post Exploitation
EBS
Amazon EBS (Elastic Block Store) स्नैपशॉट मूल रूप से AWS EBS वॉल्यूम का स्थिर बैकअप हैं। दूसरे शब्दों में, ये एक विशिष्ट समय पर एक EC2 इंस्टेंस से जुड़े डिस्क की कॉपी हैं। EBS स्नैपशॉट को क्षेत्रों और खातों के बीच कॉपी किया जा सकता है, या यहां तक कि डाउनलोड किया जा सकता है और स्थानीय रूप से चलाया जा सकता है।
स्नैपशॉट में संवेदनशील जानकारी हो सकती है जैसे स्रोत कोड या एपीआई कुंजी, इसलिए, यदि आपके पास मौका है, तो इसकी जांच करना अनुशंसित है।
AMI और EBS में अंतर
एक AMI का उपयोग EC2 इंस्टेंस लॉन्च करने के लिए किया जाता है, जबकि एक EC2 स्नैपशॉट का उपयोग EBS वॉल्यूम पर संग्रहीत डेटा का बैकअप और पुनर्प्राप्त करने के लिए किया जाता है। जबकि एक EC2 स्नैपशॉट का उपयोग एक नया AMI बनाने के लिए किया जा सकता है, यह AMI के समान नहीं है, और इसमें ऑपरेटिंग सिस्टम, एप्लिकेशन सर्वर, या किसी अन्य सॉफ़्टवेयर के बारे में जानकारी शामिल नहीं है जो एक एप्लिकेशन चलाने के लिए आवश्यक है।
प्रिवेस्क
अगली पृष्ठ पर आप देख सकते हैं कि EBS अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं:
SSM
Amazon Simple Systems Manager (SSM) EC2 इंस्टेंस के समूहों को दूरस्थ रूप से प्रबंधित करने की अनुमति देता है ताकि उनकी प्रशासनिक प्रक्रियाएँ बहुत आसान हो सकें। इन इंस्टेंस में से प्रत्येक को SSM एजेंट सेवा चलानी होगी क्योंकि यह AWS API से क्रियाएँ प्राप्त और निष्पादित करने वाली होगी।
SSM एजेंट सिस्टम प्रबंधक को इन संसाधनों को अपडेट, प्रबंधित और कॉन्फ़िगर करने की अनुमति देता है। एजेंट AWS क्लाउड में सिस्टम प्रबंधक सेवा से अनुरोधों को संसाधित करता है, और फिर उन्हें अनुरोध में निर्दिष्ट के अनुसार चलाता है।
SSM एजेंट आता है कुछ AMIs में पूर्व-स्थापित या आपको इंस्टेंस पर हाथ से स्थापित करना होगा। इसके अलावा, इंस्टेंस के अंदर उपयोग की जाने वाली IAM भूमिका को संवाद करने के लिए AmazonEC2RoleforSSM नीति संलग्न करनी होगी।
एनुमरेशन
aws ssm describe-instance-information
aws ssm describe-parameters
aws ssm describe-sessions --state [Active|History]
aws ssm describe-instance-patches --instance-id <id>
aws ssm describe-instance-patch-states --instance-ids <id>
aws ssm describe-instance-associations-status --instance-id <id>
आप एक EC2 इंस्टेंस में यह जांच सकते हैं कि Systems Manager चल रहा है या नहीं, बस निम्नलिखित कमांड को निष्पादित करके:
ps aux | grep amazon-ssm
Privesc
In the following page you can check how to SSM अनुमतियों का दुरुपयोग करके विशेषाधिकार बढ़ाना:
ELB
Elastic Load Balancing (ELB) एक लोड-बैलेंसिंग सेवा है Amazon Web Services (AWS) तैनातियों के लिए। ELB स्वचालित रूप से आने वाले एप्लिकेशन ट्रैफ़िक को वितरित करता है और ट्रैफ़िक की मांगों को पूरा करने के लिए संसाधनों को स्केल करता है।
Enumeration
# List internet-facing ELBs
aws elb describe-load-balancers
aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[]| select( .Scheme | contains("internet-facing"))|.DNSName'
# DONT FORGET TO CHECK VERSION 2
aws elbv2 describe-load-balancers
aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName'
aws elbv2 describe-listeners --load-balancer-arn <load_balancer_arn>
लॉन्च टेम्पलेट्स और ऑटोस्केलिंग समूह
एन्यूमरेशन
# Launch templates
aws ec2 describe-launch-templates
aws ec2 describe-launch-templates --launch-template-id <launch_template_id>
## Get details, like user data
aws ec2 describe-launch-template-versions --launch-template-id <launch_template_id>
# Autoscaling
aws autoscaling describe-auto-scaling-groups
aws autoscaling describe-auto-scaling-instances
aws autoscaling describe-launch-configurations
aws autoscaling describe-load-balancer-target-groups
aws autoscaling describe-load-balancers
Nitro
AWS Nitro एक नवोन्मेषी प्रौद्योगिकियों का एक सेट है जो AWS EC2 इंस्टेंस के लिए आधारभूत प्लेटफ़ॉर्म बनाता है। इसे Amazon द्वारा सुरक्षा, प्रदर्शन, और विश्वसनीयता को बढ़ाने के लिए पेश किया गया था, Nitro कस्टम हार्डवेयर घटकों और एक हल्के हाइपरवाइज़र का लाभ उठाता है। यह पारंपरिक वर्चुअलाइजेशन कार्यक्षमता के अधिकांश हिस्से को समर्पित हार्डवेयर और सॉफ़्टवेयर में एब्सट्रैक्ट करता है, हमले की सतह को कम करता है और संसाधन दक्षता में सुधार करता है। वर्चुअलाइजेशन कार्यों को ऑफलोड करके, Nitro EC2 इंस्टेंस को नजदीकी बARE-मेटल प्रदर्शन प्रदान करने की अनुमति देता है, जो संसाधन-गहन अनुप्रयोगों के लिए विशेष रूप से लाभकारी है। इसके अतिरिक्त, Nitro सुरक्षा चिप विशेष रूप से हार्डवेयर और फर्मवेयर की सुरक्षा सुनिश्चित करती है, जिससे इसकी मजबूत आर्किटेक्चर को और मजबूत किया जाता है।
Get more information and how to enumerate it from:
VPN
एक VPN आपके ऑन-प्रिमाइस नेटवर्क (साइट-से-साइट VPN) या कर्मचारियों के लैपटॉप (क्लाइंट VPN) को AWS VPC से जोड़ने की अनुमति देता है ताकि सेवाओं को इंटरनेट पर उजागर किए बिना एक्सेस किया जा सके।
Basic AWS VPN Components
- Customer Gateway:
- एक Customer Gateway एक संसाधन है जिसे आप AWS में VPN कनेक्शन के अपने पक्ष का प्रतिनिधित्व करने के लिए बनाते हैं।
- यह मूल रूप से साइट-से-साइट VPN कनेक्शन के आपके पक्ष पर एक भौतिक उपकरण या सॉफ़्टवेयर एप्लिकेशन है।
- आप AWS को एक Customer Gateway बनाने के लिए अपने नेटवर्क उपकरण (जैसे राउटर या फ़ायरवॉल) का रूटिंग जानकारी और सार्वजनिक IP पता प्रदान करते हैं।
- यह VPN कनेक्शन सेट करने के लिए एक संदर्भ बिंदु के रूप में कार्य करता है और इसके लिए अतिरिक्त शुल्क नहीं होता है।
- Virtual Private Gateway:
- एक Virtual Private Gateway (VPG) साइट-से-साइट VPN कनेक्शन के Amazon पक्ष पर VPN कंसंट्रेटर है।
- यह आपके VPC से जुड़ा होता है और आपके VPN कनेक्शन के लिए लक्ष्य के रूप में कार्य करता है।
- VPG VPN कनेक्शन के लिए AWS पक्ष का एंडपॉइंट है।
- यह आपके VPC और आपके ऑन-प्रिमाइस नेटवर्क के बीच सुरक्षित संचार को संभालता है।
- Site-to-Site VPN Connection:
- एक साइट-से-साइट VPN कनेक्शन आपके ऑन-प्रिमाइस नेटवर्क को एक सुरक्षित, IPsec VPN टनल के माध्यम से VPC से जोड़ता है।
- इस प्रकार के कनेक्शन के लिए एक Customer Gateway और एक Virtual Private Gateway की आवश्यकता होती है।
- इसका उपयोग आपके डेटा सेंटर या नेटवर्क और आपके AWS वातावरण के बीच सुरक्षित, स्थिर, और लगातार संचार के लिए किया जाता है।
- आमतौर पर नियमित, दीर्घकालिक कनेक्शनों के लिए उपयोग किया जाता है और कनेक्शन के माध्यम से स्थानांतरित डेटा की मात्रा के आधार पर बिल किया जाता है।
- Client VPN Endpoint:
- एक Client VPN एंडपॉइंट एक संसाधन है जिसे आप AWS में क्लाइंट VPN सत्रों को सक्षम और प्रबंधित करने के लिए बनाते हैं।
- इसका उपयोग व्यक्तिगत उपकरणों (जैसे लैपटॉप, स्मार्टफोन, आदि) को AWS संसाधनों या आपके ऑन-प्रिमाइस नेटवर्क से सुरक्षित रूप से कनेक्ट करने की अनुमति देने के लिए किया जाता है।
- यह साइट-से-साइट VPN से भिन्न है क्योंकि यह पूरे नेटवर्क को जोड़ने के बजाय व्यक्तिगत क्लाइंट के लिए डिज़ाइन किया गया है।
- Client VPN के साथ, प्रत्येक क्लाइंट डिवाइस एक VPN क्लाइंट सॉफ़्टवेयर का उपयोग करके एक सुरक्षित कनेक्शन स्थापित करता है।
You can find more information about the benefits and components of AWS VPNs here.
Enumeration
# VPN endpoints
## Check used subnetwork, authentication, SGs, connected...
aws ec2 describe-client-vpn-endpoints
## Get AWS network info related to the vpn endpoint
aws ec2 describe-client-vpn-target-networks --client-vpn-endpoint-id <id>
## Get AWS subnet & ip range the VPN iconnected to
aws ec2 describe-client-vpn-routes --client-vpn-endpoint-id <id>
## Check authorization rules
aws ec2 describe-client-vpn-authorization-rules --client-vpn-endpoint-id <id>
## Get current connections to the VPN endpoint
aws ec2 describe-client-vpn-connections --client-vpn-endpoint-id <id>
# Get VPN gateways and check with which VPC each is connected
aws ec2 describe-vpn-gateways
# Get VPN site-to-site connections
aws ec2 describe-vpn-connections
स्थानीय एनुमरेशन
स्थानीय अस्थायी क्रेडेंशियल्स
जब AWS VPN क्लाइंट का उपयोग VPN से कनेक्ट करने के लिए किया जाता है, तो उपयोगकर्ता आमतौर पर AWS में लॉगिन करता है ताकि VPN तक पहुंच प्राप्त कर सके। फिर, कुछ AWS क्रेडेंशियल्स बनाए जाते हैं और स्थानीय रूप से संग्रहीत किए जाते हैं ताकि VPN कनेक्शन स्थापित किया जा सके। ये क्रेडेंशियल्स में संग्रहीत होते हैं $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt
और इसमें एक AccessKey, एक SecretKey और एक Token होता है।
ये क्रेडेंशियल्स उपयोगकर्ता arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials
के हैं (TODO: इस क्रेडेंशियल्स की अनुमतियों के बारे में अधिक शोध करें)।
opvn कॉन्फ़िग फ़ाइलें
यदि VPN कनेक्शन स्थापित किया गया था तो आपको सिस्टम में .opvn
कॉन्फ़िग फ़ाइलों के लिए खोज करनी चाहिए। इसके अलावा, एक स्थान जहाँ आप कॉन्फ़िगरेशन पा सकते हैं वह है $HOME/.config/AWSVPNClient/OpenVpnConfigs
पोस्ट एक्सप्लोइटेशन
संदर्भ
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 गिटहब रिपोजिटरी में सबमिट करके।