AWS - IAM Privesc
IAM
IAMに関する詳細情報は以下をチェックしてください:
pageAWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
新しいIAMポリシーバージョンを作成する権限を付与し、iam:SetDefaultPolicyVersion
権限が不要になるように --set-as-default
フラグを使用します。これにより、カスタム権限を定義できます。
Exploit Command:
影響: 任意のリソースで任意のアクションを許可することで特権を直接昇格させます。
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
IAMポリシーのデフォルトバージョンを別の既存バージョンに変更することを許可し、新しいバージョンにより多くの権限がある場合、特権を昇格させる可能性があります。
Bashコマンド:
影響: より多くの権限を有効にすることで間接的な特権昇格が発生します。
iam:CreateAccessKey
iam:CreateAccessKey
別のユーザーのためにアクセスキーIDとシークレットアクセスキーを作成できるようになり、潜在的な特権昇格が発生します。
攻撃:
影響: 他のユーザーの拡張権限を仮定することによる直接的な特権昇格。
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
ログインプロファイルの作成または更新を許可し、AWSコンソールログインのパスワードを設定することができ、直接的な特権昇格につながります。
作成のためのエクスプロイト:
アップデートの悪用:
影響: 「任意の」ユーザーとしてログインすることによる直接的な特権昇格。
iam:UpdateAccessKey
iam:UpdateAccessKey
無効化されたアクセスキーを有効にすることを許可し、攻撃者が無効化されたキーを所有している場合には権限のないアクセスにつながる可能性があります。
攻撃手法:
影響: アクセスキーを再アクティブ化することで直接特権昇格が可能。
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
特定のAWSサービス(例:CodeCommit、Amazon Keyspaces)の資格情報を生成またはリセットし、関連するユーザーの権限を継承することができます。
作成のためのエクスプロイト:
リセットのためのエクスプロイト:
影響: ユーザーのサービス権限内での直接的な特権昇格。
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
ユーザーまたはグループにポリシーを添付することを許可し、添付されたポリシーの権限を継承することで特権を直接昇格させることができます。
ユーザー向けエクスプロイト:
グループ用のエクスプロイト:
影響: ポリシーが許可するすべてに対する直接的な特権昇格。
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
ロール、ユーザー、またはグループにポリシーを添付または設定することを許可し、追加の権限を付与することで直接的な特権昇格を可能にします。
ロールへの悪用:
インラインポリシーの悪用:
次のようなポリシーを使用できます:
影響: ポリシーを介して権限を追加することによる直接的な特権昇格。
iam:AddUserToGroup
iam:AddUserToGroup
IAMグループに自分自身を追加し、グループの権限を継承することで特権を昇格させることができます。
Exploit:
影響: グループの権限レベルへの直接的な特権昇格。
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
ロールのアサムロールポリシードキュメントを変更し、そのロールと関連する権限を前提とすることを可能にします。
攻撃:
以下のようなポリシーがある場合、ユーザーにロールを前提とする権限が与えられます:
影響: 任意のロールの権限を仮定した直接的な特権昇格。
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
CodeCommitへの認証用のSSH公開鍵のアップロードとMFAデバイスの無効化を許可し、潜在的な間接的な特権昇格を引き起こす。
SSHキーのアップロードの悪用:
MFA解除のためのエクスプロイト:
影響: CodeCommitアクセスの有効化またはMFA保護の無効化による間接的な特権昇格。
iam:ResyncMFADevice
iam:ResyncMFADevice
MFAデバイスの再同期を許可し、MFA保護を操作することで間接的な特権昇格が可能になります。
Bashコマンド:
影響: MFA デバイスの追加や操作による間接的な特権昇格。
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)これらの権限を持つと、SAML 接続の XML メタデータを変更できます。その後、SAML フェデレーションを悪用して、それを信頼している任意のロールでログインできます。
これを行うと、正規のユーザーはログインできなくなります。ただし、XML を取得して自分のものを置き、ログインして前の設定を戻すことができます。
TODO: 指定されたロールで SAML メタデータを生成し、ログインできるツール
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(これについては不確かです) 攻撃者がこれらの権限を持っている場合、新しいThumbprintを追加してプロバイダを信頼するすべてのロールにログインできるようにすることができます。
参考文献
最終更新