AWS - STS Privesc
STS
sts:AssumeRole
sts:AssumeRole
Ogni ruolo è creato con una policy di trust del ruolo, questa policy indica chi può assumere il ruolo creato. Se un ruolo dello stesso account dice che un account può assumerlo, significa che l'account sarà in grado di accedere al ruolo (e potenzialmente privesc).
Ad esempio, la seguente policy di trust del ruolo indica che chiunque può assumerlo, quindi qualsiasi utente sarà in grado di fare privesc alle autorizzazioni associate a quel ruolo.
Puoi impersonare un ruolo eseguendo:
Impatto Potenziale: Escalation dei privilegi al ruolo.
Si noti che in questo caso il permesso sts:AssumeRole
deve essere indicato nel ruolo da abusare e non in una policy appartenente all'attaccante.
Con un'eccezione, per poter assumere un ruolo da un account diverso l'account dell'attaccante deve avere anche il permesso sts:AssumeRole
sul ruolo.
sts:GetFederationToken
sts:GetFederationToken
Con questo permesso è possibile generare credenziali per impersonare qualsiasi utente:
Questo è come questa autorizzazione può essere concessa in modo sicuro senza concedere l'accesso all'impersonificazione di altri utenti:
sts:AssumeRoleWithSAML
sts:AssumeRoleWithSAML
Una policy di trust con questo ruolo concede agli utenti autenticati tramite SAML l'accesso per impersonare il ruolo.
Un esempio di una policy di trust con questo permesso è:
Per generare le credenziali per impersonare il ruolo in generale, potresti utilizzare qualcosa del genere:
Ma i fornitori potrebbero avere i loro strumenti per rendere questo processo più semplice, come onelogin-aws-assume-role:
Impatto Potenziale: Privesc al ruolo.
sts:AssumeRoleWithWebIdentity
sts:AssumeRoleWithWebIdentity
Questa autorizzazione concede il permesso di ottenere un set di credenziali di sicurezza temporanee per utenti che sono stati autenticati in un'applicazione mobile, web, EKS... con un fornitore di identità web. Ulteriori informazioni qui.
Ad esempio, se un account di servizio EKS dovrebbe essere in grado di impersonare un ruolo IAM, avrà un token in /var/run/secrets/eks.amazonaws.com/serviceaccount/token
e può assumere il ruolo e ottenere le credenziali facendo qualcosa del genere:
Abuso della Federazione
AWS - Federation AbuseLast updated