AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum

Support HackTricks

VPC & Networking

जानें कि VPC क्या है और इसके घटकों के बारे में:

AWS - VPC & Networking Basic Information

EC2

Amazon EC2 का उपयोग वर्चुअल सर्वर शुरू करने के लिए किया जाता है। यह सुरक्षा और नेटवर्किंग की कॉन्फ़िगरेशन और स्टोरेज के प्रबंधन की अनुमति देता है। Amazon EC2 की लचीलापन इसकी क्षमता में स्पष्ट है कि यह संसाधनों को ऊपर और नीचे दोनों की ओर स्केल कर सकता है, प्रभावी रूप से बदलती आवश्यकताओं या लोकप्रियता में वृद्धि के लिए अनुकूलित होता है। यह विशेषता सटीक ट्रैफ़िक भविष्यवाणियों की आवश्यकता को कम करती है।

EC2 में सूचीबद्ध करने के लिए दिलचस्प चीजें:

  • वर्चुअल मशीनें

  • SSH कुंजी

  • उपयोगकर्ता डेटा

  • मौजूदा EC2s/AMIs/स्नैपशॉट्स

  • नेटवर्किंग

  • नेटवर्क

  • उप-नेटवर्क

  • सार्वजनिक IPs

  • खुले पोर्ट

  • AWS के बाहर अन्य नेटवर्क के साथ एकीकृत कनेक्शन

Instance Profiles

EC2 इंस्टेंस पर चलने वाले अनुप्रयोगों को अनुमतियाँ देने के लिए भूमिकाओं का उपयोग करने के लिए थोड़ी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है। EC2 इंस्टेंस पर चलने वाला एक अनुप्रयोग AWS से वर्चुअलाइज्ड ऑपरेटिंग सिस्टम द्वारा अलग होता है। इस अतिरिक्त पृथक्करण के कारण, आपको एक अतिरिक्त कदम की आवश्यकता होती है ताकि एक AWS भूमिका और इसके संबंधित अनुमतियों को एक EC2 इंस्टेंस को सौंपा जा सके और उन्हें इसके अनुप्रयोगों के लिए उपलब्ध कराया जा सके।

यह अतिरिक्त कदम एक इंस्टेंस प्रोफ़ाइल का निर्माण है जो इंस्टेंस से जुड़ी होती है। इंस्टेंस प्रोफ़ाइल में भूमिका होती है और यह इंस्टेंस पर चलने वाले अनुप्रयोग को भूमिका के अस्थायी क्रेडेंशियल प्रदान कर सकती है। उन अस्थायी क्रेडेंशियल का उपयोग फिर अनुप्रयोग के 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 Privesc

पोस्ट-एक्सप्लॉइटेशन

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 अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं:

AWS - EBS Privesc

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 इंस्टेंस में यह जांच सकते हैं कि सिस्टम मैनेजर चल रहा है या नहीं, बस इसे निष्पादित करके:

ps aux | grep amazon-ssm

Privesc

In the following page you can check how to SSM अनुमतियों का दुरुपयोग करके विशेषाधिकार बढ़ाना:

AWS - SSM Privesc

ELB

एलास्टिक लोड बैलेंसिंग (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 सुरक्षा चिप विशेष रूप से हार्डवेयर और फर्मवेयर की सुरक्षा सुनिश्चित करती है, जिससे इसकी मजबूत आर्किटेक्चर को और मजबूत किया जाता है।

अधिक जानकारी प्राप्त करें और इसे कैसे एन्यूमरेट करें:

AWS - Nitro Enum

VPN

एक VPN आपको ऑन-प्रिमाइस नेटवर्क (साइट-टू-साइट VPN) या कर्मचारियों के लैपटॉप (क्लाइंट VPN) को AWS VPC से कनेक्ट करने की अनुमति देता है ताकि सेवाओं को इंटरनेट पर उजागर किए बिना एक्सेस किया जा सके।

बुनियादी AWS VPN घटक

  1. ग्राहक गेटवे:

  • ग्राहक गेटवे एक संसाधन है जिसे आप AWS में VPN कनेक्शन के अपने पक्ष का प्रतिनिधित्व करने के लिए बनाते हैं।

  • यह मूल रूप से साइट-टू-साइट VPN कनेक्शन के आपके पक्ष पर एक भौतिक उपकरण या सॉफ़्टवेयर एप्लिकेशन है।

  • आप AWS को ग्राहक गेटवे बनाने के लिए अपने नेटवर्क उपकरण (जैसे राउटर या फ़ायरवॉल) का रूटिंग जानकारी और सार्वजनिक IP पता प्रदान करते हैं।

  • यह VPN कनेक्शन सेट करने के लिए एक संदर्भ बिंदु के रूप में कार्य करता है और अतिरिक्त शुल्क नहीं लेता है।

  1. वर्चुअल प्राइवेट गेटवे:

  • वर्चुअल प्राइवेट गेटवे (VPG) साइट-टू-साइट VPN कनेक्शन के Amazon पक्ष पर VPN कंसंट्रेटर है।

  • यह आपके VPC से जुड़ा होता है और आपके VPN कनेक्शन के लिए लक्ष्य के रूप में कार्य करता है।

  • VPG VPN कनेक्शन के लिए AWS पक्ष का एंडपॉइंट है।

  • यह आपके VPC और आपके ऑन-प्रिमाइस नेटवर्क के बीच सुरक्षित संचार को संभालता है।

  1. साइट-टू-साइट VPN कनेक्शन:

  • साइट-टू-साइट VPN कनेक्शन आपके ऑन-प्रिमाइस नेटवर्क को एक सुरक्षित, IPsec VPN टनल के माध्यम से VPC से जोड़ता है।

  • इस प्रकार के कनेक्शन के लिए एक ग्राहक गेटवे और एक वर्चुअल प्राइवेट गेटवे की आवश्यकता होती है।

  • इसका उपयोग आपके डेटा सेंटर या नेटवर्क और आपके AWS वातावरण के बीच सुरक्षित, स्थिर और सुसंगत संचार के लिए किया जाता है।

  • आमतौर पर नियमित, दीर्घकालिक कनेक्शनों के लिए उपयोग किया जाता है और कनेक्शन के माध्यम से स्थानांतरित डेटा की मात्रा के आधार पर बिल किया जाता है।

  1. क्लाइंट VPN एंडपॉइंट:

  • एक क्लाइंट VPN एंडपॉइंट एक संसाधन है जिसे आप AWS में क्लाइंट VPN सत्रों को सक्षम और प्रबंधित करने के लिए बनाते हैं।

  • इसका उपयोग व्यक्तिगत उपकरणों (जैसे लैपटॉप, स्मार्टफोन, आदि) को AWS संसाधनों या आपके ऑन-प्रिमाइस नेटवर्क से सुरक्षित रूप से कनेक्ट करने की अनुमति देने के लिए किया जाता है।

  • यह साइट-टू-साइट VPN से भिन्न है क्योंकि यह पूरे नेटवर्क को कनेक्ट करने के बजाय व्यक्तिगत ग्राहकों के लिए डिज़ाइन किया गया है।

  • क्लाइंट VPN के साथ, प्रत्येक क्लाइंट डिवाइस एक VPN क्लाइंट सॉफ़्टवेयर का उपयोग करके एक सुरक्षित कनेक्शन स्थापित करता है।

आप AWS VPNs के लाभों और घटकों के बारे में अधिक जानकारी यहाँ प्राप्त कर सकते हैं.

एन्यूमरेशन

# 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

Local Enumeration

स्थानीय अस्थायी क्रेडेंशियल्स

जब 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

पोस्ट एक्सप्लॉइटेशन

AWS - VPN Post Exploitation

संदर्भ

Support HackTricks

Last updated