AWS - IAM Privesc
IAM
Per ulteriori informazioni su IAM controlla:
iam:CreatePolicyVersion
iam:CreatePolicyVersion
Concede la possibilità 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 sfruttamento:
Impatto: Escalation diretta dei privilegi consentendo qualsiasi azione su qualsiasi risorsa.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
Consente di cambiare la versione predefinita di una policy IAM con un'altra versione esistente, potenzialmente elevando i privilegi se la nuova versione ha più autorizzazioni.
Comando Bash:
Impatto: Escalatione indiretta dei privilegi abilitando più permessi.
iam:CreateAccessKey
iam:CreateAccessKey
Abilita la creazione di un ID chiave di accesso e di una chiave di accesso segreta per un altro utente, portando a una potenziale escalatione dei privilegi.
Sfrutta:
Impatto: Escalation diretta dei privilegi assumendo i permessi estesi di un altro utente.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
Consente di creare o aggiornare un profilo di accesso, inclusa la configurazione delle password per l'accesso alla console AWS, portando a un'escalation diretta dei privilegi.
Sfruttamento per la Creazione:
Sfruttamento per Aggiornamento:
Impatto: Escalation diretta dei privilegi accedendo come "qualsiasi" utente.
iam:UpdateAccessKey
iam:UpdateAccessKey
Consente di abilitare una chiave di accesso disabilitata, portando potenzialmente a un accesso non autorizzato 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 ripristinare le credenziali per servizi AWS specifici (ad es., CodeCommit, Amazon Keyspaces), ereditando i permessi dell'utente associato.
Sfruttamento per la Creazione:
Sfruttamento per Reset:
Impatto: Escalation diretta dei privilegi all'interno delle autorizzazioni del servizio dell'utente.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Consente di allegare politiche a utenti o gruppi, aumentando direttamente i privilegi ereditando le autorizzazioni della politica allegata.
Sfruttamento per l'utente:
Sfruttamento per Gruppo:
Impatto: Escalation diretta dei privilegi a qualsiasi cosa concessa dalla policy.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Consente di allegare o impostare policy a ruoli, utenti o gruppi, abilitando l'escalation diretta dei privilegi concedendo permessi aggiuntivi.
Sfrutta per Ruolo:
Sfruttamento delle politiche inline:
Puoi utilizzare una policy come:
Impatto: Escalation diretta dei privilegi aggiungendo permessi tramite politiche.
iam:AddUserToGroup
iam:AddUserToGroup
Consente di aggiungersi a un gruppo IAM, aumentando i privilegi ereditando i permessi del gruppo.
Sfruttamento:
Impatto: Escalation diretta dei privilegi al livello delle autorizzazioni del gruppo.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Consente di modificare il documento della policy di assunzione del ruolo, abilitando l'assunzione del ruolo e delle sue autorizzazioni associate.
Sfruttamento:
Dove la policy appare come segue, che concede all'utente il permesso di assumere il ruolo:
Impatto: Escalation diretta dei privilegi assumendo i permessi di qualsiasi ruolo.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
Consente di caricare una chiave pubblica SSH per l'autenticazione a CodeCommit e di disattivare i dispositivi MFA, portando a una potenziale escalation indiretta dei privilegi.
Sfruttamento per il caricamento della chiave SSH:
Sfruttamento per la disattivazione di MFA:
Impatto: Escalation di privilegi indiretta abilitando l'accesso a CodeCommit o disabilitando la protezione MFA.
iam:ResyncMFADevice
iam:ResyncMFADevice
Consente la risincronizzazione di un dispositivo MFA, portando potenzialmente a un'escalation di privilegi indiretta manipolando la protezione MFA.
Comando Bash:
Impatto: Escalation di privilegi indiretta aggiungendo o manipolando i 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 potranno accedere. Tuttavia, potresti ottenere l'XML, così puoi inserire il tuo, accedere e configurare il precedente.
TODO: Uno strumento in grado 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