AWS - IAM Privesc
IAM
Per ulteriori informazioni su IAM, controlla:
pageAWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
Concede la possibilità di creare una nuova versione di una policy IAM, bypassando la necessità dell'autorizzazione iam:SetDefaultPolicyVersion
utilizzando il flag --set-as-default
. Ciò consente di definire autorizzazioni personalizzate.
Comando di exploit:
Impatto: Consente di aumentare direttamente i privilegi consentendo qualsiasi azione su qualsiasi risorsa.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
Consente di modificare la versione predefinita di una policy IAM con un'altra versione esistente, potenzialmente aumentando i privilegi se la nuova versione ha più autorizzazioni.
Comando Bash:
Impatto: Privilegio di escalation indiretta 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 un potenziale privilegio di escalation.
Sfruttamento:
Impatto: Privilegio diretto di escalation assumendo le autorizzazioni estese 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 una diretta escalation dei privilegi.
Exploit per la creazione:
Sfruttare l'aggiornamento:
Impatto: Escalazione diretta dei privilegi accedendo come "qualsiasi" utente.
iam:UpdateAccessKey
iam:UpdateAccessKey
Consente di abilitare una chiave di accesso disabilitata, potenzialmente portando ad un accesso non autorizzato se l'attaccante possiede la chiave disabilitata.
Sfruttamento:
Impatto: Escalazione diretta dei privilegi mediante la riattivazione delle chiavi di accesso.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
Consente di generare o reimpostare le credenziali per servizi specifici di AWS (ad esempio, CodeCommit, Amazon Keyspaces), ereditando i permessi dell'utente associato.
Sfruttamento per la creazione:
Exploit per il reset:
Impatto: Escalatione diretta dei privilegi all'interno delle autorizzazioni del servizio dell'utente.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Consente di allegare policy agli utenti o ai gruppi, consentendo l'escalation diretta dei privilegi ereditando le autorizzazioni della policy allegata.
Exploit per l'utente:
Exploit per il Gruppo:
Impatto: Privilegio diretto di escalation verso qualsiasi cosa 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
Consente di allegare o inserire policy a ruoli, utenti o gruppi, consentendo l'escalation diretta dei privilegi concedendo ulteriori autorizzazioni.
Sfruttamento per il ruolo:
Sfruttare le Politiche Inline:
An inline policy is a policy that is directly attached to an IAM user, group, or role. These policies are defined within the same JSON document as the user, group, or role, rather than being stored separately. This makes them more vulnerable to privilege escalation attacks.
To exploit an inline policy, you need to identify a user, group, or role that has an inline policy with excessive permissions. Once you have identified the target, you can modify the inline policy to grant yourself additional privileges.
Here are the steps to exploit an inline policy:
Identify the target user, group, or role with an inline policy.
Analyze the permissions granted by the inline policy.
Determine the additional privileges you want to grant yourself.
Modify the inline policy to include the additional privileges.
Test the modified policy to ensure it grants you the desired privileges.
Trigger the execution of the modified policy to escalate your privileges.
It is important to note that exploiting inline policies requires sufficient permissions to modify the policy. Additionally, you should exercise caution and ensure that you do not disrupt the normal functioning of the system while modifying the policy.
By exploiting inline policies, you can escalate your privileges within the AWS environment and gain unauthorized access to resources and sensitive information.
Puoi utilizzare una policy come:
Impatto: Escalatione diretta dei privilegi mediante l'aggiunta di autorizzazioni tramite le politiche.
iam:AddUserToGroup
iam:AddUserToGroup
Consente di aggiungersi a un gruppo IAM, aumentando i privilegi ereditando le autorizzazioni del gruppo.
Sfruttamento:
Impatto: Escalazione diretta dei privilegi al livello delle autorizzazioni del gruppo.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Consente di modificare il documento della politica di assunzione del ruolo di un ruolo, abilitando l'assunzione del ruolo e le relative autorizzazioni.
Sfruttamento:
Dove la policy ha l'aspetto seguente, che conferisce 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 disattivare i dispositivi MFA, portando a un potenziale escalation indiretta dei privilegi.
Exploit per il caricamento della chiave SSH:
Sfruttare la disattivazione dell'MFA:
To escalate privileges by exploiting the MFA deactivation vulnerability, follow these steps:
Per ottenere privilegi più elevati sfruttando la vulnerabilità di disattivazione dell'MFA, seguire questi passaggi:
Identify an IAM user or role with the necessary permissions to modify MFA settings. This user or role should have the
iam:UpdateLoginProfile
permission.Identificare un utente IAM o un ruolo con le autorizzazioni necessarie per modificare le impostazioni dell'MFA. Questo utente o ruolo dovrebbe avere l'autorizzazione
iam:UpdateLoginProfile
.Use the
update-login-profile
command to disable MFA for the targeted user or role. This command can be executed using the AWS CLI or SDKs.Utilizzare il comando
update-login-profile
per disabilitare l'MFA per l'utente o il ruolo prescelto. Questo comando può essere eseguito utilizzando AWS CLI o SDK.Once MFA is disabled, the targeted user or role will no longer require MFA for authentication.
Una volta disabilitato l'MFA, l'utente o il ruolo prescelto non richiederà più l'MFA per l'autenticazione.
By exploiting this vulnerability, an attacker can gain unauthorized access to the targeted user or role without the need for MFA authentication.
Sfruttando questa vulnerabilità, un attaccante può ottenere accesso non autorizzato all'utente o al ruolo prescelto senza la necessità di autenticazione MFA.
Impatto: Escalation di privilegi indiretta abilitando l'accesso a CodeCommit o disabilitando la protezione MFA.
iam:ResyncMFADevice
iam:ResyncMFADevice
Consente la resincronizzazione di un dispositivo MFA, potenzialmente portando a un'escalation di privilegi indiretta manipolando la protezione MFA.
Comando Bash:
Impatto: Privilegio di escalation indiretto mediante l'aggiunta o la manipolazione dei dispositivi MFA.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Con queste autorizzazioni è possibile modificare i metadati XML della connessione SAML. Successivamente, è possibile sfruttare la federazione SAML per effettuare l'accesso con qualsiasi ruolo che lo sta accettando.
Si noti che in questo modo gli utenti legittimi non saranno in grado di effettuare l'accesso. Tuttavia, è possibile ottenere l'XML, quindi è possibile inserire il proprio, effettuare l'accesso e configurare il precedente di nuovo.
TODO: Un tool 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 queste autorizzazioni, potrebbe aggiungere una nuova Thumbprint per riuscire ad accedere a tutti i ruoli che si fidano del provider.
Riferimenti
Last updated