Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-ec2-

This commit is contained in:
Translator
2026-05-26 19:15:41 +00:00
parent 2a2979d9de
commit 599ffae9c1
@@ -4,7 +4,7 @@
## VPC & Networking
Μάθετε τι είναι ένα VPC και για τα συστατικά του στα:
Μάθε τι είναι ένα VPC και τα components του στο:
{{#ref}}
aws-vpc-and-networking-basic-information.md
@@ -12,30 +12,30 @@ aws-vpc-and-networking-basic-information.md
## EC2
Amazon EC2 χρησιμοποιείται για την εκκίνηση **εικονικών διακομιστών**. Επιτρέπει τη διαμόρφωση της **ασφάλειας** και της **δικτύωσης** και τη διαχείριση της **αποθήκευσης**. Η ευελιξία του Amazon EC2 φαίνεται στην ικανότητά του να κλιμακώνει πόρους τόσο προς τα πάνω όσο και προς τα κάτω, προσαρμοζόμενο αποτελεσματικά σε μεταβολές απαιτήσεων ή σε αιφνίδιες αυξήσεις της ζήτησης. Αυτό το χαρακτηριστικό μειώνει την ανάγκη για ακριβείς προβλέψεις κίνησης.
Το Amazon EC2 χρησιμοποιείται για την εκκίνηση **virtual servers**. Επιτρέπει τη ρύθμιση της **security** και του **networking** και τη διαχείριση του **storage**. Η ευελιξία του Amazon EC2 είναι εμφανής στην ικανότητά του να κλιμακώνει resources τόσο προς τα πάνω όσο και προς τα κάτω, προσαρμοζόμενο αποτελεσματικά σε μεταβαλλόμενες απαιτήσεις ή σε αυξήσεις δημοτικότητας. Αυτό το feature μειώνει την ανάγκη για ακριβείς προβλέψεις traffic.
Ενδιαφέροντα πράγματα για καταγραφή στο EC2:
Ενδιαφέροντα πράγματα για enumeration στο EC2:
- Εικονικές μηχανές
- Virtual Machines
- SSH Keys
- User Data
- Existing EC2s/AMIs/Snapshots
- Δικτύωση
- Δίκτυα
- Υποδίκτυα
- Δημόσιες IP
- Ανοικτές θύρες
- Ενσωματωμένες συνδέσεις με άλλα δίκτυα εκτός AWS
- Networking
- Networks
- Subnetworks
- Public IPs
- Open ports
- Integrated connections with other networks outside AWS
### Instance Profiles
Η χρήση **roles** για την εκχώρηση δικαιωμάτων σε εφαρμογές που τρέχουν σε **EC2 instances** απαιτεί λίγο επιπλέον ρύθμιση. Μια εφαρμογή που τρέχει σε ένα EC2 instance είναι απομονωμένη από το AWS από το εικονικοποιημένο λειτουργικό σύστημα. Εξαιτίας αυτής της επιπλέον απομάκρυνσης, χρειάζεται ένα επιπλέον βήμα για να ανατεθεί ένα AWS role και τα συνδεδεμένα δικαιώματά του σε ένα EC2 instance και να γίνουν διαθέσιμα στις εφαρμογές του.
Η χρήση **roles** για την παροχή permissions σε applications που τρέχουν σε **EC2 instances** απαιτεί λίγη επιπλέον configuration. Μια application που εκτελείται σε ένα EC2 instance είναι απομονωμένη από το AWS μέσω του virtualized operating system. Εξαιτίας αυτής της επιπλέον απομόνωσης, χρειάζεται ένα επιπλέον βήμα για να αντιστοιχίσεις ένα AWS role και τα associated permissions του σε ένα EC2 instance και να τα καταστήσεις διαθέσιμα στις applications του.
Αυτό το επιπλέον βήμα είναι η **δημιουργία ενός** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) που επισυνάπτεται στο instance. Το **instance profile περιέχει το role και** μπορεί να παρέχει τα προσωρινά διαπιστευτήρια του role σε μια εφαρμογή που τρέχει στο instance. Αυτά τα προσωρινά διαπιστευτήρια μπορούν στη συνέχεια να χρησιμοποιηθούν στις κλήσεις API της εφαρμογής για πρόσβαση σε πόρους και για τον περιορισμό της πρόσβασης μόνο σε αυτούς τους πόρους που προσδιορίζει το role. Σημειώστε ότι **μόνο ένα role μπορεί να ανατεθεί σε ένα EC2 instance** κάθε φορά, και όλες οι εφαρμογές στο instance μοιράζονται το ίδιο role και δικαιώματα.
Αυτό το επιπλέον βήμα είναι η **δημιουργία ενός** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) που συνδέεται με το instance. Το **instance profile περιέχει το role και** μπορεί να παρέχει τα temporary credentials του role σε μια application που τρέχει στο instance. Αυτά τα temporary credentials μπορούν στη συνέχεια να χρησιμοποιηθούν στα API calls της application για πρόσβαση σε resources και για περιορισμό της πρόσβασης μόνο σε εκείνα τα resources που καθορίζει το role. Σημείωσε ότι **μόνο ένα role μπορεί να ανατεθεί σε ένα EC2 instance** τη φορά, και όλες οι applications στο instance μοιράζονται το ίδιο role και permissions.
### Metadata Endpoint
Τα metadata του AWS EC2 είναι πληροφορίες για ένα Amazon Elastic Compute Cloud (EC2) instance που είναι διαθέσιμες στο instance κατά το runtime. Αυτά τα metadata χρησιμοποιούνται για να παρέχουν πληροφορίες σχετικά με το instance, όπως το instance ID, τη availability zone στην οποία τρέχει, το IAM role που σχετίζεται με το instance, και το hostname του instance.
Τα AWS EC2 metadata είναι πληροφορίες σχετικά με ένα Amazon Elastic Compute Cloud (EC2) instance που είναι διαθέσιμες στο instance κατά τον χρόνο εκτέλεσης. Αυτά τα metadata χρησιμοποιούνται για να παρέχουν πληροφορίες σχετικά με το instance, όπως το instance ID του, τη availability zone στην οποία εκτελείται, το IAM role που σχετίζεται με το instance, και το hostname του instance.
{{#ref}}
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
@@ -130,7 +130,7 @@ aws ec2 describe-route-tables
aws ec2 describe-vpcs
aws ec2 describe-vpc-peering-connections
```
### Μη αυθεντικοποιημένη Πρόσβαση
### Μη πιστοποιημένη πρόσβαση
{{#ref}}
../../aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum/README.md
@@ -138,7 +138,7 @@ aws ec2 describe-vpc-peering-connections
### Privesc
Στην παρακάτω σελίδα μπορείτε να δείτε πώς να **abuse EC2 permissions to escalate privileges**:
Στην παρακάτω σελίδα μπορείς να δεις πώς να **abuse EC2 permissions to escalate privileges**:
{{#ref}}
../../aws-privilege-escalation/aws-ec2-privesc/README.md
@@ -152,17 +152,17 @@ aws ec2 describe-vpc-peering-connections
## EBS
Amazon **EBS** (Elastic Block Store) στιγμιότυπα είναι ουσιαστικά στατικά αντίγραφα ασφαλείας των AWS EBS volumes. Με άλλα λόγια, είναι αντίγραφα των δίσκων που είναι συνημμένοι σε ένα **EC2** Instance σε ένα συγκεκριμένο χρονικό σημείο. Τα EBS snapshots μπορούν να αντιγραφούν μεταξύ regions και accounts, ή ακόμα και να κατέβουν και να τρέξουν τοπικά.
Τα Amazon **EBS** (Elastic Block Store) **snapshots** είναι βασικά στατικά **backups** των AWS EBS volumes. Με άλλα λόγια, είναι **copies** των **disks** που είναι συνδεδεμένοι σε ένα **EC2** Instance σε μια συγκεκριμένη χρονική στιγμή. Τα EBS snapshots μπορούν να αντιγραφούν μεταξύ regions και accounts, ή ακόμα και να κατεβούν και να εκτελεστούν τοπικά.
Τα snapshots μπορεί να περιέχουν ευαίσθητες πληροφορίες όπως πηγαίο κώδικα ή API keys, επομένως, αν έχετε την ευκαιρία, συνιστάται να τα ελέγξετε.
Τα Snapshots μπορούν να περιέχουν **sensitive information** όπως **source code or APi keys**, επομένως, αν έχεις την ευκαιρία, συνιστάται να το ελέγξεις.
### Difference AMI & EBS
Ένα **AMI** χρησιμοποιείται για να **launch an EC2 instance**, ενώ ένα EC2 **Snapshot** χρησιμοποιείται για να **backup and recover data stored on an EBS volume**. Ενώ ένα EC2 Snapshot μπορεί να χρησιμοποιηθεί για να δημιουργήσει ένα νέο AMI, δεν είναι το ίδιο με ένα AMI και δεν περιλαμβάνει πληροφορίες σχετικά με το λειτουργικό σύστημα, τον application server ή άλλο λογισμικό που απαιτείται για να τρέξει μια εφαρμογή.
Ένα **AMI** χρησιμοποιείται για να **launch an EC2 instance**, ενώ ένα EC2 **Snapshot** χρησιμοποιείται για να **backup and recover data stored on an EBS volume**. Ενώ ένα EC2 Snapshot μπορεί να χρησιμοποιηθεί για τη δημιουργία ενός νέου AMI, δεν είναι το ίδιο πράγμα με ένα AMI και δεν περιλαμβάνει πληροφορίες για το operating system, το application server ή άλλο software που απαιτείται για να τρέξει μια εφαρμογή.
### Privesc
Στην παρακάτω σελίδα μπορείτε να δείτε πώς να **abuse EBS permissions to escalate privileges**:
Στην παρακάτω σελίδα μπορείς να δεις πώς να **abuse EBS permissions to escalate privileges**:
{{#ref}}
../../aws-privilege-escalation/aws-ebs-privesc/README.md
@@ -170,11 +170,11 @@ Amazon **EBS** (Elastic Block Store) στιγμιότυπα είναι ουσι
## SSM
**Amazon Simple Systems Manager (SSM)** επιτρέπει τη διαχείριση απομακρυσμένων στόλων από EC2 instances για να κάνει τη διαχείρισή τους πολύ πιο εύκολη. Κάθε ένα από αυτά τα instances πρέπει να τρέχει την **SSM Agent service καθώς αυτή θα λαμβάνει τις ενέργειες και θα τις εκτελεί** από το AWS API.
Το **Amazon Simple Systems Manager (SSM)** επιτρέπει την απομακρυσμένη διαχείριση fleets από EC2 instances για να κάνει τη διαχείρισή τους πολύ πιο εύκολη. Κάθε ένα από αυτά τα instances πρέπει να τρέχει την **SSM Agent service as the service will be the one getting the actions and performing them** από το AWS API.
Ο **SSM Agent** καθιστά δυνατό για το Systems Manager να ενημερώνει, να διαχειρίζεται και να ρυθμίζει αυτούς τους πόρους. Ο agent **processes requests from the Systems Manager service in the AWS Cloud**, και στη συνέχεια τις εκτελεί όπως ορίζεται στο αίτημα.
Το **SSM Agent** κάνει δυνατό για το Systems Manager να ενημερώνει, να διαχειρίζεται και να διαμορφώνει αυτούς τους πόρους. Ο agent **processes requests from the Systems Manager service in the AWS Cloud**, και στη συνέχεια τις εκτελεί όπως ορίζεται στο request.
Ο **SSM Agent** έρχεται[ **preinstalled in some AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) ή χρειάζεται να [**manually install them**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) στα instances. Επίσης, το IAM Role που χρησιμοποιείται μέσα στο instance πρέπει να έχει την policy **AmazonEC2RoleforSSM** συνδεδεμένη για να μπορεί να επικοινωνεί.
Το **SSM Agent comes**[ **preinstalled in some AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) ή χρειάζεται να το [**manually install them**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) στα instances. Επίσης, το IAM Role που χρησιμοποιείται μέσα στο instance πρέπει να έχει attached την policy **AmazonEC2RoleforSSM** για να μπορεί να επικοινωνεί.
### Enumeration
```bash
@@ -185,13 +185,13 @@ 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 instance αν το Systems Manager τρέχει απλώς εκτελώντας:
Μπορείς να ελέγξεις σε ένα EC2 instance αν το Systems Manager τρέχει απλώς εκτελώντας:
```bash
ps aux | grep amazon-ssm
```
### Privesc
Στην παρακάτω σελίδα μπορείτε να δείτε πώς να **abuse SSM permissions to escalate privileges**:
Στην ακόλουθη σελίδα μπορείτε να δείτε πώς να **abuse SSM permissions to escalate privileges**:
{{#ref}}
../../aws-privilege-escalation/aws-ssm-privesc/README.md
@@ -199,7 +199,7 @@ ps aux | grep amazon-ssm
### Perssistence
Στην παρακάτω σελίδα μπορείτε να δείτε πώς να **abuse SSM permissions to achieve persistence**:
Στην ακόλουθη σελίδα μπορείτε να δείτε πώς να **abuse SSM permissions to achieve persistence**:
{{#ref}}
../../aws-persistence/aws-ssm-persistence/README.md
@@ -207,7 +207,11 @@ ps aux | grep amazon-ssm
## ELB
**Elastic Load Balancing** (ELB) είναι μια υπηρεσία εξισορρόπησης φορτίου για αναπτύξεις στο Amazon Web Services (AWS). Το ELB αυτόματα **διανέμει την εισερχόμενη κυκλοφορία εφαρμογών** και κλιμακώνει πόρους για να ανταποκριθεί στις απαιτήσεις κίνησης.
Το **Elastic Load Balancing** (ELB) είναι μια **load-balancing service for Amazon Web Services** (AWS) deployments. Το ELB **distributes incoming application traffic** αυτόματα και κλιμακώνει τους πόρους για να καλύψει τις απαιτήσεις της κίνησης.
Για τους **Application Load Balancers (ALBs)**, οι listener rules, authentication actions, header handling και οι εναλλακτικές διαδρομές προς τα ίδια targets αποτελούν μέρος του **security boundary**. Ελέγξτε την πλήρη διαδρομή **CloudFront --> ALB/NLB --> listeners --> rules --> target groups --> instances/IPs/ports/security groups**, όχι μόνο έναν listener rule μεμονωμένα.
### Enumeration
```bash
# List internet-facing ELBs
aws elb describe-load-balancers
@@ -217,10 +221,77 @@ aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[]| select( .Sche
aws elbv2 describe-load-balancers
aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName'
aws elbv2 describe-listeners --load-balancer-arn <load_balancer_arn>
aws elbv2 describe-rules --listener-arn <listener_arn>
aws elbv2 describe-target-groups --load-balancer-arn <load_balancer_arn>
aws elbv2 describe-target-health --target-group-arn <target_group_arn>
aws elbv2 describe-load-balancer-attributes --load-balancer-arn <load_balancer_arn>
```
## Πρότυπα Εκκίνησης & Ομάδες Αυτόματης Κλιμάκωσης
### ELB / ALB Έκθεση & Παράκαμψη Access-Control
### Απογραφή
#### Παράκαμψη CloudFront / WAF μέσω άμεσης πρόσβασης στο ALB origin
Αν μια διανομή **CloudFront** βρίσκεται μπροστά από ένα **internet-facing ALB**, αλλά το security group του ALB εξακολουθεί να επιτρέπει δημόσια inbound traffic, ένας attacker συχνά μπορεί να **ζητήσει απευθείας το DNS name του ALB** και να παρακάμψει **CloudFront WAF, geo restrictions, rate limits και cache-layer controls**.
```bash
# Test the origin directly
curl -isk https://<alb-dns-name>/
# If the ALB routes on Host, replay the expected hostname directly to the ALB
curl -isk https://<alb-dns-name>/ -H 'Host: app.example.com'
```
**Σημειώσεις ελέγχου:**
- Καταγράψτε τα CloudFront distributions και τα origins τους, και μετά ελέγξτε αν το origin ALB είναι ακόμη **internet-facing**.
- Ελέγξτε τα **security groups** του ALB. Αν επιτρέπεται inbound traffic από `0.0.0.0/0` ή ευρείς CIDRs, το CloudFront πιθανότατα δεν είναι η μόνη προσβάσιμη διαδρομή.
- Μια άμεση απόκριση **non-error** από το ALB συνήθως σημαίνει ότι το CloudFront/WAF layer μπορεί να παρακαμφθεί.
**Hardening:** Αν το CloudFront πρέπει να είναι το μόνο entry point, επιτρέψτε inbound traffic στο ALB μόνο από το AWS-managed prefix list **`com.amazonaws.global.cloudfront.origin-facing`**.
#### Listener rule shadowing / auth bypass
Οι ALB rules αξιολογούνται με **αύξουσα σειρά προτεραιότητας**. Ένας **πιο ευρύς** rule με **μικρότερο αριθμό προτεραιότητας** μπορεί να αιχμαλωτίσει traffic πριν φτάσει ποτέ σε έναν restrictive rule με `authenticate-oidc`, `authenticate-cognito`, ή `source-ip`.
```text
[10] path /* -> forward -> tg-app
[20] path /admin* -> authenticate-oidc -> tg-app
```
Ένα request στο `/admin` ταιριάζει πρώτα στο `/*`, οπότε η ενέργεια authentication δεν εκτελείται ποτέ.
**Audit notes:**
- Κάνε dump κάθε listener και rule με `aws elbv2 describe-rules --listener-arn <listener_arn>`.
- Διέσχισε τα rules σε αύξουσα σειρά priority και έλεγξε αν ένα ευρύ **host/path/header/query** condition ταιριάζει σε traffic που θα έπρεπε να είχε πιάσει πρώτα ένα πιο restrictive rule.
- Αντιμετώπισε τη σειρά των listeners σαν τη σειρά middleware: **first matching rule wins**.
#### Τα `source-ip` restrictions μπορούν να παρακαμφθούν μέσω alternate paths
Ένα `source-ip` condition προστατεύει μόνο το **συγκεκριμένο listener rule** όπου έχει ρυθμιστεί. Αν το **ίδιο target group**, οι **ίδιες backend IPs/instances**, ή το **ίδιο service σε άλλη port** είναι προσβάσιμο μέσω άλλου ALB, άλλου listener, ή ενός NLB με πιο αδύναμους controls, το IP allowlist συχνά μπορεί να παρακαμφθεί χρησιμοποιώντας αυτό το alternate path.
**Audit notes:**
- Για κάθε restrictive rule, απαρίθμησε το **target group ARN** και τα registered targets.
- Σύγκρινε αυτά τα targets με **όλους τους άλλους listeners/load balancers** στο account/region.
- Έλεγξε επίσης για direct exposure μέσω **public instance IPs**, permissive **security groups**, ή πρόσθετων listeners σε ports όπως `80`, `443`, `8080`, ή `8443`.
Ένα καλό mental model είναι: **προστάτευσε το target, όχι μόνο μία διαδρομή προς το target**.
#### Client-controlled `X-Forwarded-For` trust
Αν το `routing.http.xff_header_processing.mode` είναι ρυθμισμένο σε **`preserve`** σε ένα **internet-facing ALB**, το backend μπορεί να λαμβάνει μια τιμή `X-Forwarded-For` που έχει δοθεί από τον **attacker** χωρίς αλλαγές. Αν η application εμπιστεύεται αυτό το header για **access control**, **rate limiting**, **logging**, ή **monitoring**, ο attacker μπορεί να spoofάρει το perceived client IP.
```bash
curl -isk https://<alb-dns-name>/ -H 'X-Forwarded-For: 127.0.0.1'
aws elbv2 describe-load-balancer-attributes --load-balancer-arn <load_balancer_arn>
```
Prefer `append` ή `remove` σε internet-facing ALBs, και απέφυγε να χρησιμοποιείς client-controlled forwarding headers ως authorization primitive.
#### Χρήσιμο εργαλείο
[**ELBaph**](https://github.com/doyensec/ELBaph) είναι ένα read-only auditor που μοντελοποιεί **ALBs, NLBs, listeners, rules, target groups, και targets ως γράφο δρομολόγησης** και στη συνέχεια κάνει probe για reachable exposures.
```bash
elbaph scan --region us-east-1
elbaph scan --all-regions -p my-pentest-profile
```
## Launch Templates & Autoscaling Groups
### Απαρίθμηση
```bash
# Launch templates
aws ec2 describe-launch-templates
@@ -237,7 +308,7 @@ aws autoscaling describe-load-balancers
```
## Nitro
AWS Nitro είναι ένα σύνολο από **καινοτόμες τεχνολογίες** που σχηματίζουν την υποκείμενη πλατφόρμα για τις AWS EC2 instances. Εισήχθη από την Amazon για να **βελτιώσει την ασφάλεια, την απόδοση και την αξιοπιστία**, το Nitro αξιοποιεί προσαρμοσμένα **hardware components και έναν lightweight hypervisor**. Απομονώνει μεγάλο μέρος της παραδοσιακής λειτουργικότητας virtualization σε αφιερωμένο hardware και software, **μειώνοντας την επιφάνεια επίθεσης** και βελτιώνοντας την αποδοτικότητα των πόρων. Αποφορτίζοντας λειτουργίες virtualization, το Nitro επιτρέπει στις EC2 instances να παρέχουν **near bare-metal performance**, καθιστώντας το ιδιαίτερα ωφέλιμο για εφαρμογές με υψηλές απαιτήσεις πόρων. Επιπλέον, το Nitro Security Chip εξασφαλίζει ειδικά την **ασφάλεια του hardware και του firmware**, ενισχύοντας περαιτέρω την ισχυρή του αρχιτεκτονική.
Το AWS Nitro είναι μια σουίτα από **καινοτόμες τεχνολογίες** που αποτελούν την υποκείμενη πλατφόρμα για τις AWS EC2 instances. Παρουσιάστηκε από την Amazon για να **ενισχύσει την ασφάλεια, την απόδοση και την αξιοπιστία**, και αξιοποιεί προσαρμοσμένα **hardware components και έναν ελαφρύ hypervisor**. Αφαιρεί μεγάλο μέρος της παραδοσιακής λειτουργικότητας virtualization σε dedicated hardware και software, **μειώνοντας το attack surface** και βελτιώνοντας την αποδοτικότητα των πόρων. Με την αποφόρτωση των virtualization functions, το Nitro επιτρέπει στις EC2 instances να προσφέρουν **σχεδόν bare-metal performance**, καθιστώντας το ιδιαίτερα χρήσιμο για resource-intensive applications. Επιπλέον, το Nitro Security Chip διασφαλίζει συγκεκριμένα την **ασφάλεια του hardware και του firmware**, ενισχύοντας περαιτέρω τη στιβαρή αρχιτεκτονική του.
Get more information and how to enumerate it from:
@@ -247,32 +318,32 @@ aws-nitro-enum.md
## VPN
Ένα VPN επιτρέπει τη σύνδεση του **τοπικού σας δικτύου (site-to-site VPN)** ή των **φορητών υπολογιστών των εργαζομένων (Client VPN)** με ένα **AWS VPC**, ώστε οι υπηρεσίες να μπορούν να προσπελαστούν χωρίς να χρειάζεται να εκτεθούν στο internet.
Ένα VPN επιτρέπει τη σύνδεση του **on-premise network (site-to-site VPN)** σας ή των **workers laptops (Client VPN)** με ένα **AWS VPC**, ώστε services να μπορούν να προσπελαστούν χωρίς να χρειάζεται να εκτεθούν στο internet.
#### Βασικά στοιχεία του AWS VPN
#### Basic AWS VPN Components
1. **Customer Gateway**:
- Το Customer Gateway είναι ένας πόρος που δημιουργείτε στο AWS για να αναπαριστά την πλευρά σας της σύνδεσης VPN.
- Στην ουσία είναι μια φυσική συσκευή ή μια εφαρμογή λογισμικού στην πλευρά σας της σύνδεσης Site-to-Site VPN.
- Παρέχετε πληροφορίες δρομολόγησης και τη δημόσια IP διεύθυνση της συσκευής δικτύου σας (όπως router ή firewall) στο AWS για να δημιουργήσετε ένα Customer Gateway.
- Λειτουργεί ως σημείο αναφοράς για τη ρύθμιση της σύνδεσης VPN και δεν επιφέρει επιπλέον χρεώσεις.
- Ένα Customer Gateway είναι ένας resource που δημιουργείτε στο AWS για να αντιπροσωπεύει την πλευρά σας μιας VPN connection.
- Ουσιαστικά είναι μια φυσική συσκευή ή μια software application στην πλευρά σας του Site-to-Site VPN connection.
- Παρέχετε routing information και τη δημόσια IP address της δικτυακής σας συσκευής (όπως ένα router ή ένα firewall) στο AWS για να δημιουργηθεί ένα Customer Gateway.
- Λειτουργεί ως σημείο αναφοράς για τη ρύθμιση του VPN connection και δεν επιφέρει πρόσθετες χρεώσεις.
2. **Virtual Private Gateway**:
- Ένα Virtual Private Gateway (VPG) είναι ο συγκεντρωτής VPN στην πλευρά του Amazon για τη σύνδεση Site-to-Site VPN.
- Συνδέεται με το VPC σας και χρησιμεύει ως ο προορισμός για τη σύνδεση VPN σας.
- Το VPG είναι το AWS side endpoint για τη σύνδεση VPN.
- Διαχειρίζεται την ασφαλή επικοινωνία μεταξύ του VPC σας και του τοπικού σας δικτύου.
- Ένα Virtual Private Gateway (VPG) είναι ο VPN concentrator στην πλευρά της Amazon του Site-to-Site VPN connection.
- Συνδέεται στο VPC σας και λειτουργεί ως ο στόχος για το VPN connection σας.
- Το VPG είναι το AWS side endpoint για το VPN connection.
- Χειρίζεται την ασφαλή επικοινωνία μεταξύ του VPC σας και του on-premises network σας.
3. **Site-to-Site VPN Connection**:
- Μια Site-to-Site VPN σύνδεση συνδέει το τοπικό σας δίκτυο με ένα VPC μέσω ενός ασφαλούς, IPsec VPN τούνελ.
- Ένα Site-to-Site VPN connection συνδέει το on-premises network σας με ένα VPC μέσω ενός ασφαλούς, IPsec VPN tunnel.
- Αυτός ο τύπος σύνδεσης απαιτεί ένα Customer Gateway και ένα Virtual Private Gateway.
- Χρησιμοποιείται για ασφαλή, σταθερή και συνεπή επικοινωνία μεταξύ του κέντρου δεδομένων ή του δικτύου σας και του AWS περιβάλλοντός σας.
- Συνήθως χρησιμοποιείται για τακτικές, μακροχρόνιες συνδέσεις και χρεώνεται με βάση τον όγκο δεδομένων που μεταφέρονται μέσω της σύνδεσης.
- Χρησιμοποιείται για ασφαλή, σταθερή και συνεπή επικοινωνία μεταξύ του data center ή του network σας και του AWS environment σας.
- Συνήθως χρησιμοποιείται για κανονικές, μακροχρόνιες συνδέσεις και χρεώνεται με βάση την ποσότητα των data που μεταφέρονται μέσω της σύνδεσης.
4. **Client VPN Endpoint**:
- Ένα Client VPN endpoint είναι ένας πόρος που δημιουργείτε στο AWS για να ενεργοποιείτε και να διαχειρίζεστε client VPN συνεδρίες.
- Χρησιμοποιείται για να επιτρέπει σε μεμονωμένες συσκευές (όπως laptops, smartphones, κ.λπ.) να συνδέονται με ασφάλεια σε πόρους AWS ή στο τοπικό σας δίκτυο.
- Διαφέρει από το Site-to-Site VPN καθώς είναι σχεδιασμένο για μεμονωμένους clients αντί για τη σύνδεση ολόκληρων δικτύων.
- Με το Client VPN, κάθε συσκευή client χρησιμοποιεί λογισμικό VPN client για να καθιερώσει μια ασφαλή σύνδεση.
- Ένα Client VPN endpoint είναι ένας resource που δημιουργείτε στο AWS για να ενεργοποιείτε και να διαχειρίζεστε client VPN sessions.
- Χρησιμοποιείται για να επιτρέπει σε μεμονωμένες συσκευές (όπως laptops, smartphones, κ.λπ.) να συνδέονται με ασφάλεια σε AWS resources ή στο on-premises network σας.
- Διαφέρει από το Site-to-Site VPN στο ότι έχει σχεδιαστεί για μεμονωμένους clients και όχι για τη σύνδεση ολόκληρων networks.
- Με το Client VPN, κάθε client device χρησιμοποιεί ένα VPN client software για να δημιουργήσει μια ασφαλή σύνδεση.
Μπορείτε [**find more information about the benefits and components of AWS VPNs here**](aws-vpc-and-networking-basic-information.md#vpn).
You can [**find more information about the benefits and components of AWS VPNs here**](aws-vpc-and-networking-basic-information.md#vpn).
### Enumeration
```bash
@@ -298,17 +369,17 @@ aws ec2 describe-vpn-gateways
# Get VPN site-to-site connections
aws ec2 describe-vpn-connections
```
### Τοπική Ανίχνευση
### Τοπική Απαρίθμηση
**Τοπικά Προσωρινά Διαπιστευτήρια**
Όταν το AWS VPN Client χρησιμοποιείται για σύνδεση σε VPN, ο χρήστης συνήθως **login in AWS** για να αποκτήσει πρόσβαση στο VPN. Στη συνέχεια, κάποια **AWS credentials are created and stored** τοπικά για να εγκαθιδρυθεί η σύνδεση VPN. Αυτά τα διαπιστευτήρια **αποθηκεύονται στο** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` και περιέχουν ένα **AccessKey**, ένα **SecretKey** και ένα **Token**.
Όταν χρησιμοποιείται το AWS VPN Client για σύνδεση σε ένα VPN, ο χρήστης συνήθως **συνδέεται στο AWS** για να αποκτήσει πρόσβαση στο VPN. Έπειτα, κάποια **AWS credentials δημιουργούνται και αποθηκεύονται** τοπικά για να εδραιωθεί η σύνδεση VPN. Αυτά τα credentials **αποθηκεύονται στο** `$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: να ερευνηθούν περισσότερα σχετικά με τα δικαιώματα αυτών των διαπιστευτηρίων).
Τα credentials ανήκουν στον χρήστη `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: research more about the permissions of this credentials).
**opvn config files**
Εάν μια **VPN connection was stablished** θα πρέπει να αναζητήσετε **`.opvn`** config files στο σύστημα. Επιπλέον, ένα μέρος όπου μπορείτε να βρείτε τις **ρυθμίσεις** είναι στο **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
Αν έχει **εγκαθιδρυθεί μια σύνδεση VPN** θα πρέπει να αναζητήσετε **`.opvn`** config files στο σύστημα. Επιπλέον, ένα σημείο όπου θα μπορούσατε να βρείτε τις **ρυθμίσεις** είναι στο **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
#### **Post Exploitaiton**
@@ -316,8 +387,13 @@ aws ec2 describe-vpn-connections
../../aws-post-exploitation/aws-vpn-post-exploitation/README.md
{{#endref}}
## Αναφορές
## References
- [https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html)
- [AWS Elastic Beanstalk and Amazon EC2 getting started](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html)
- [Doyensec - Navigating Lax Load Balancers: When an Intersection Gets You Inside](https://blog.doyensec.com/2026/05/25/cloudsectidbits-elbaph-alb.html)
- [AWS - Listener rules for your Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-rules.html)
- [AWS - HTTP headers and Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/x-forwarded-headers.html)
- [AWS - CloudFront managed prefix list for origin-facing servers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html)
- [Doyensec - ELBaph](https://github.com/doyensec/ELBaph)
{{#include ../../../../banners/hacktricks-training.md}}