AWS - IAM Privesc
IAM
Per maggiori informazioni su IAM controlla:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
Concede la capacità di creare una nuova versione della policy IAM, bypassando la necessità del permesso iam:SetDefaultPolicyVersion
utilizzando il flag --set-as-default
. Questo consente di definire permessi personalizzati.
Comando di Exploit:
Impatto: Eleva direttamente i privilegi consentendo qualsiasi azione su qualsiasi risorsa.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
Consente di cambiare la versione predefinita di una policy IAM a un'altra versione esistente, potenzialmente elevando i privilegi se la nuova versione ha più permessi.
Comando Bash:
Impatto: Escalation indiretta dei privilegi abilitando più permessi.
iam:CreateAccessKey
iam:CreateAccessKey
Consente di creare un ID chiave di accesso e una chiave di accesso segreta per un altro utente, portando a una potenziale escalation dei privilegi.
Sfruttamento:
Impatto: Escalation diretta dei privilegi assumendo i permessi estesi di un altro utente.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
Permette di creare o aggiornare un profilo di login, inclusa l'impostazione delle password per il login alla console AWS, portando a un'escalation diretta dei privilegi.
Exploit per la Creazione:
Exploit for Update:
Impatto: Escalation diretta dei privilegi accedendo come "qualsiasi" utente.
iam:UpdateAccessKey
iam:UpdateAccessKey
Permette di abilitare una chiave di accesso disabilitata, potenzialmente portando ad accessi non autorizzati se l'attaccante possiede la chiave disabilitata.
Sfruttamento:
Impatto: Escalation diretta dei privilegi riattivando le chiavi di accesso.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
Consente di generare o reimpostare credenziali per servizi AWS specifici (ad esempio, CodeCommit, Amazon Keyspaces), ereditando i permessi dell'utente associato.
Sfruttamento per la Creazione:
Exploit per Reset:
Impatto: Escalation diretta dei privilegi all'interno delle autorizzazioni del servizio dell'utente.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Permette di allegare politiche a utenti o gruppi, aumentando direttamente i privilegi ereditando le autorizzazioni della politica allegata.
Exploit per Utente:
Exploit for Group:
Impatto: Escalation diretta dei privilegi a tutto ciò che la policy concede.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Permette di allegare o inserire policy a ruoli, utenti o gruppi, consentendo l'escalation diretta dei privilegi concedendo permessi aggiuntivi.
Exploit per Role:
Exploit for Inline Policies:
Puoi usare una policy come:
Impatto: Escalation diretta dei privilegi aggiungendo permessi tramite policy.
iam:AddUserToGroup
iam:AddUserToGroup
Consente di aggiungere se stessi a un gruppo IAM, aumentando i privilegi ereditando i permessi del gruppo.
Sfruttamento:
Impatto: Escalation diretta dei privilegi al livello dei permessi del gruppo.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Permette di modificare il documento della policy di assunzione del ruolo, consentendo l'assunzione del ruolo e i relativi permessi.
Sfruttamento:
Dove la policy appare come la seguente, che dà all'utente il permesso di assumere il ruolo:
Impatto: Escalation di privilegi diretta assumendo i permessi di qualsiasi ruolo.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
Permette di caricare una chiave pubblica SSH per autenticarsi a CodeCommit e disattivare i dispositivi MFA, portando a una potenziale escalation di privilegi indiretta.
Exploit per Caricamento Chiave SSH:
Exploit per la disattivazione di MFA:
Impatto: Escalation indiretta dei privilegi abilitando l'accesso a CodeCommit o disabilitando la protezione MFA.
iam:ResyncMFADevice
iam:ResyncMFADevice
Consente la risincronizzazione di un dispositivo MFA, potenzialmente portando a un'escalation indiretta dei privilegi manipolando la protezione MFA.
Comando Bash:
Impatto: Escalation indiretta dei privilegi aggiungendo o manipolando dispositivi MFA.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Con questi permessi puoi cambiare i metadati XML della connessione SAML. Poi, potresti abusare della federazione SAML per accedere con qualsiasi ruolo che la sta fidando.
Nota che facendo questo gli utenti legittimi non saranno in grado di accedere. Tuttavia, potresti ottenere l'XML, quindi puoi mettere il tuo, accedere e configurare il precedente indietro.
TODO: Uno strumento capace di generare i metadati SAML e accedere con un ruolo specificato
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(Non sicuro di questo) Se un attaccante ha questi permessi potrebbe aggiungere un nuovo Thumbprint per riuscire ad accedere a tutti i ruoli che si fidano del provider.
Riferimenti
Last updated