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

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

VPC & Δικτύωση

Μάθετε τι είναι ένα VPC και για τα στοιχεία του στο:

pageAWS - VPC & Networking Basic Information

EC2

Το Amazon EC2 χρησιμοποιείται για την εκκίνηση εικονικών διακομιστών. Επιτρέπει τη διαμόρφωση της ασφάλειας και της δικτύωσης και τη διαχείριση της αποθήκευσης. Η ευελιξία του Amazon EC2 είναι εμφανής στη δυνατότητά του να κλιμακώνει τους πόρους τόσο προς τα πάνω όσο και προς τα κάτω, προσαρμόζοντας αποτελεσματικά σε μεταβολές απαιτήσεων ή άνοδο στη δημοφιλία. Αυτό το χαρακτηριστικό μειώνει την ανάγκη για ακριβείς προβλέψεις κίνησης.

Ενδιαφέροντα πράγματα για απαρίθμηση στο EC2:

  • Εικονικές Μηχανές

  • Κλειδιά SSH

  • Δεδομένα Χρήστη

  • Υπάρχοντες EC2s/AMIs/Snapshots

  • Δικτύωση

  • Δίκτυα

  • Υποδίκτυα

  • Δημόσιες IP

  • Ανοιχτές θύρες

  • Ενσωματωμένες συνδέσεις με άλλα δίκτυα έξω από το AWS

Προφίλ Εικόνας

Η χρήση ρόλων για τη χορήγηση δικαιωμάτων σε εφαρμογές που εκτελούνται σε παραδείγματα EC2 απαιτεί λίγη επιπλέον διαμόρφωση. Μια εφαρμογή που εκτελείται σε ένα παράδειγμα EC2 είναι αφαιρεμένη από το AWS από το εικονικοποιημένο λειτουργικό σύστημα. Λόγω αυτής της επιπλέον διαχωριστικής διαδικασίας, χρειάζεστε ένα επιπλέον βήμα για να αναθέσετε ένα ρόλο AWS και τα συναφή δικαιώματά του σε ένα παράδειγμα EC2 και να τα καταστήσετε διαθέσιμα στις εφαρμογές του.

Αυτό το επιπλέον βήμα είναι η δημιουργία ενός προφίλ εικόνας που είναι συνδεδεμένο με το παράδειγμα. Το προφίλ εικόνας περιέχει το ρόλο και μπορεί να παρέχει τα προσωρινά διαπιστευτήρια του ρόλου σε μια εφαρμογή που εκτελείται στο παράδειγμα. Αυτά τα προσωρινά διαπιστευτήρια μπορούν στη συνέχεια να χρησιμοποιηθούν στις κλήσεις API της εφαρμογής για πρόσβαση σε πόρους και για τον περιορισμό της πρόσβασης μόνο σε εκείνους τους πόρους που καθορίζει ο ρόλος. Σημειώστε ότι μόνο ένας ρόλος μπορεί να ανατεθεί σε ένα παράδειγμα EC2 τη φορά, και όλες οι εφαρμογές στο παράδειγμα μοιράζονται τον ίδιο ρόλο και τα δικαιώματα.

Σημείο Μεταδεδομένων

Τα μεταδεδομένα του AWS EC2 είναι πληροφορίες σχετικά με ένα παράδειγμα Amazon Elastic Compute Cloud (EC2) που είναι διαθέσιμες στο παράδειγμα κατά τη διάρκεια εκτέλεσης. Αυτά τα μεταδεδομένα χρησιμοποιούνται για να παρέχουν πληροφορίες σχετικά με το παράδειγμα, όπως το αναγνωριστικό παραδείγματος, η ζώνη διαθεσιμότητας στην οποία λειτουργεί, ο ρόλος IAM που σχετίζεται με το παράδειγμα και το όνομα κεντρικού υπολογιστή του παραδείγματος.

Απαρίθμηση

# 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

Μη εξουσιοδοτημένη πρόσβαση

pageAWS - EC2 Unauthenticated Enum

Ανύψωση δικαιωμάτων

Στην ακόλουθη σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα EC2 για ανύψωση προνομίων:

pageAWS - EC2 Privesc

Μετά την εκμετάλλευση

pageAWS - EC2, EBS, SSM & VPC Post Exploitation

EBS

Τα EBS της Amazon (Elastic Block Store) είναι βασικά στατικά αντίγραφα ασφαλείας των όγκων AWS EBS. Με άλλα λόγια, είναι αντίγραφα των δίσκων που είναι συνδεδεμένοι σε μια Παρουσία EC2 σε ένα συγκεκριμένο χρονικό σημείο. Τα αντίγραφα EBS μπορούν να αντιγραφούν σε διαφορετικές περιοχές και λογαριασμούς, ή ακόμη και να ληφθούν και να εκτελεστούν τοπικά.

Τα αντίγραφα μπορεί να περιέχουν ευαίσθητες πληροφορίες όπως κώδικα πηγαίου κώδικα ή κλειδιά API, επομένως, αν έχετε την ευκαιρία, συνιστάται να το ελέγξετε.

Διαφορά AMI & EBS

Ένα AMI χρησιμοποιείται για την εκκίνηση μιας παρουσίας EC2, ενώ ένα Αντίγραφο EC2 χρησιμοποιείται για την δημιουργία αντιγράφων ασφαλείας και την ανάκτηση δεδομένων που αποθηκεύονται σε έναν όγκο EBS. Ενώ ένα Αντίγραφο EC2 μπορεί να χρησιμοποιηθεί για τη δημιουργία ενός νέου AMI, δεν είναι το ίδιο με ένα AMI και δεν περιλαμβάνει πληροφορίες σχετικά με το λειτουργικό σύστημα, τον εξυπηρετητή εφαρμογών ή άλλο λογισμικό που απαιτείται για την εκτέλεση μιας εφαρμογής.

Ανύψωση δικαιωμάτων

Στην ακόλουθη σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα EBS για ανύψωση προνομίων:

pageAWS - EBS Privesc

SSM

Το Amazon Simple Systems Manager (SSM) επιτρέπει την απομακρυσμένη διαχείριση ομάδων παρουσιών EC2 για να καθιστά τις διαχειρίσεις τους πολύ πιο εύκολες. Κάθε μια από αυτές τις παρουσίες πρέπει να εκτελεί την υπηρεσία SSM Agent καθώς η υπηρεσία θα είναι αυτή που θα λαμβάνει τις ενέργειες και θα τις εκτελεί από το AWS API.

Το SSM Agent καθιστά δυνατή την ενημέρωση, διαχείριση και ρύθμιση αυτών των πόρων από τον Systems Manager. Το πρόγραμμα επεξεργάζεται αιτήσεις από την υπηρεσία Systems Manager στο AWS Cloud, και στη συνέχεια τις εκτελεί όπως προβλέπεται στο αίτημα.

Το SSM Agent έρχεται προεγκατεστημένο σε μερικά 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

Ανύψωση δικαιωμάτων

Στην ακόλουθη σελίδα μπορείτε να ελέγξετε πώς να καταχραστείτε τα δικαιώματα SSM για ανύψωση δικαιωμάτων:

pageAWS - SSM Privesc

ELB

Η Elastic Load Balancing (ELB) είναι μια υπηρεσία ισορροπίας φορτίου για τις αναπτύξεις του Amazon Web Services (AWS). Το ELB αυτόματα διανέμει την εισερχόμενη κίνηση της εφαρμογής και κλιμακώνει τους πόρους για να ανταποκριθεί στις απαιτήσεις της κίνησης.

# 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 να παρέχουν απόδοση κοντά στο μεταλλικό υλικό, κάτι που το καθιστά ιδιαίτερα ωφέλιμο για εφαρμογές με μεγάλες απαιτήσεις πόρων. Επιπλέον, το Nitro Security Chip εξασφαλίζει ειδικά την ασφάλεια του υλικού και του firmware, ενισχύοντας περαιτέρω τη στιβαρή του αρχιτεκτονική.

Βρείτε περισσότερες πληροφορίες και πώς να το απαριθμήσετε από:

pageAWS - Nitro Enum

VPN

Ένα VPN επιτρέπει τη σύνδεση του δικτύου στον τόπο (site-to-site VPN) ή των φορητών υπολογιστών των εργαζομένων (Client VPN) με ένα AWS VPC έτσι ώστε οι υπηρεσίες να μπορούν να προσπελαστούν χωρίς την ανάγκη να εκτεθούν στο διαδίκτυο.

Βασικά Στοιχεία AWS VPN

  1. Πύλη Πελάτη:

  • Μια Πύλη Πελάτη είναι ένας πόρος που δημιουργείτε στο AWS για να αντιπροσωπεύει την πλευρά σας μιας σύνδεσης VPN.

  • Ουσιαστικά είναι μια φυσική συσκευή ή εφαρμογή λογισμικού στην πλευρά σας της σύνδεσης Site-to-Site VPN.

  • Παρέχετε πληροφορίες δρομολόγησης και τη δημόσια διεύθυνση IP της συσκευής δικτύου σας (όπως ένας δρομολογητής ή ένα τείχος προστασίας) στο AWS για να δημιουργήσετε μια Πύλη Πελάτη.

  • Λειτουργεί ως σημείο αναφοράς για την εγκατάσταση της σύνδεσης VPN και δεν επιφέρει επιπλέον χρεώσεις.

  1. Εικονική Ιδιωτική Πύλη:

  • Μια Εικονική Ιδιωτική Πύλη (VPG) είναι ο συγκεντρωτής VPN στην πλευρά της Amazon της σύνδεσης Site-to-Site VPN.

  • Είναι συνδεδεμένη με το VPC σας και λειτουργεί ως στόχος για τη σύνδεση VPN σας.

  • Η VPG είναι το άκρο της πλευράς του AWS για τη σύνδεση VPN.

  • Χειρίζεται την ασφαλή επικοινωνία μεταξύ του VPC σας και του δικτύου σας στον τόπο.

  1. Σύνδεση Site-to-Site VPN:

  • Μια σύνδεση Site-to-Site VPN συνδέει το δίκτυό σας στον τόπο με ένα VPC μέσω μιας ασφαλούς σήραγγας VPN IPsec.

  • Αυτός ο τύπος σύνδεσης απαιτεί μια Πύλη Πελάτη και μια Εικονική Ιδιωτική Πύλη.

  • Χρησιμοποιείται για ασφαλή, σταθερή και συνεπή επικοινωνία μεταξύ του κέντρου δεδομένων ή του δικτύου σας και του περιβάλλοντος AWS σας.

  • Χρησιμοποιείται συνήθως για τακτικές, μακροχρόνιες συνδέσεις και χρεώνεται με βάση τον όγκο δεδομένων που μεταφέρεται μέσω της σύνδεσης.

  1. Άκρο Πελάτη VPN:

  • Ένα άκρο πελάτη VPN είναι ένας πόρος που δημιουργείτε στο AWS για να ενεργοποιήσετε και να διαχειριστείτε συνεδρίες VPN πελατών.

  • Χρησιμοποιείται για τη δυνατότητα σύνδεσης ατομικών συσκευών (όπως φορητοί υπολογιστές, smartphones, κλπ.) για την ασφαλή σύνδεση με πόρους AWS ή το δίκτυό σας στον τόπο.

  • Διαφέρει από τη σύνδεση Site-to-Site VPN στο ότι σχεδιάστηκε για ατομικούς πελάτες αντί για τη σύνδεση ολόκληρων δικτύων.

  • Με το Client VPN, κάθε συσκευή πελάτη χρησιμοποιεί λογισμικό πελάτη VPN για να καθιερώσει μια ασφαλή σύνδεση.

Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τα οφέλη και τα στοιχεία των AWS VPN εδώ.

Απαρίθμηση

# 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 Client για σύνδεση σε ένα 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

Μετά την Εκμετάλλευση

pageAWS - VPN Post Exploitation

Αναφορές

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated