AWS - IAM Privesc
IAM
IAM에 대한 자세한 정보는 다음을 참조하세요:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
--set-as-default
플래그를 사용하여 iam:SetDefaultPolicyVersion
권한 없이 새로운 IAM 정책 버전을 생성할 수 있는 권한을 부여합니다. 이를 통해 사용자 정의 권한을 정의할 수 있습니다.
Exploit Command:
영향: 모든 리소스에 대한 모든 작업을 허용하여 직접적으로 권한을 상승시킵니다.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
IAM 정책의 기본 버전을 다른 기존 버전으로 변경할 수 있으며, 새 버전이 더 많은 권한을 가지고 있는 경우 권한이 상승될 수 있습니다.
Bash Command:
영향: 더 많은 권한을 활성화하여 간접적인 권한 상승.
iam:CreateAccessKey
iam:CreateAccessKey
다른 사용자를 위해 액세스 키 ID와 비밀 액세스 키를 생성할 수 있게 하여 잠재적인 권한 상승을 초래할 수 있습니다.
Exploit:
영향: 다른 사용자의 확장된 권한을 가정하여 직접적인 권한 상승.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
AWS 콘솔 로그인을 위한 비밀번호 설정을 포함하여 로그인 프로필을 생성하거나 업데이트할 수 있게 허용하며, 이는 직접적인 권한 상승으로 이어질 수 있습니다.
생성을 위한 익스플로잇:
Exploit for Update:
업데이트를 위한 Exploit:
영향: "어떤" 사용자로 로그인하여 직접 권한 상승.
iam:UpdateAccessKey
iam:UpdateAccessKey
비활성화된 액세스 키를 활성화할 수 있으며, 공격자가 비활성화된 키를 소유하고 있는 경우 무단 접근으로 이어질 수 있습니다.
Exploit:
영향: 액세스 키를 재활성화하여 직접적인 권한 상승.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
특정 AWS 서비스(예: CodeCommit, Amazon Keyspaces)에 대한 자격 증명을 생성하거나 재설정할 수 있으며, 관련 사용자의 권한을 상속합니다.
생성을 위한 익스플로잇:
Reset을 위한 Exploit:
영향: 사용자의 서비스 권한 내에서 직접적인 권한 상승.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
사용자 또는 그룹에 정책을 첨부할 수 있어, 첨부된 정책의 권한을 상속받아 직접적으로 권한을 상승시킵니다.
사용자에 대한 익스플로잇:
Exploit for Group:
그룹을 위한 Exploit:
영향: 정책이 부여하는 모든 권한에 대한 직접적인 권한 상승.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
역할, 사용자 또는 그룹에 정책을 첨부하거나 부여할 수 있도록 허용하여 추가 권한을 부여함으로써 직접적인 권한 상승을 가능하게 합니다.
역할에 대한 익스플로잇:
Inline Policies에 대한 Exploit:
영향: 정책을 통해 권한을 추가하여 직접적인 권한 상승.
iam:AddUserToGroup
iam:AddUserToGroup
IAM 그룹에 자신을 추가할 수 있게 하여, 그룹의 권한을 상속받아 권한을 상승시킴.
익스플로잇:
영향: 그룹 권한 수준으로 직접 권한 상승.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
역할의 assume role 정책 문서를 변경할 수 있어, 역할과 관련된 권한을 가정할 수 있게 합니다.
Exploit:
정책이 다음과 같이 보이며, 사용자가 역할을 가정할 수 있는 권한을 부여합니다:
영향: 모든 역할의 권한을 가정하여 직접적인 권한 상승.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
CodeCommit에 인증하기 위한 SSH 공개 키 업로드 및 MFA 장치 비활성화를 허용하여 잠재적인 간접 권한 상승을 초래할 수 있습니다.
SSH 키 업로드를 위한 익스플로잇:
MFA 비활성화 익스플로잇:
영향: CodeCommit 액세스를 활성화하거나 MFA 보호를 비활성화하여 간접적인 권한 상승.
iam:ResyncMFADevice
iam:ResyncMFADevice
MFA 장치를 재동기화할 수 있게 하여, MFA 보호를 조작함으로써 간접적인 권한 상승을 초래할 수 있습니다.
Bash Command:
Impact: MFA 장치를 추가하거나 조작하여 간접적인 권한 상승.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)이 권한을 사용하면 SAML 연결의 XML 메타데이터를 변경할 수 있습니다. 그런 다음, SAML federation을 악용하여 이를 신뢰하는 모든 역할로 로그인할 수 있습니다.
이렇게 하면 정상 사용자는 로그인할 수 없게 됩니다. 그러나 XML을 가져와서 자신의 XML을 넣고 로그인한 후 이전 설정을 복원할 수 있습니다.
TODO: 지정된 역할로 로그인하고 SAML 메타데이터를 생성할 수 있는 도구
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(확실하지 않음) 공격자가 이러한 권한을 가지고 있다면, 공급자를 신뢰하는 모든 역할에 로그인할 수 있도록 새로운 Thumbprint를 추가할 수 있습니다.
References
Last updated