AWS - STS Privesc
STS
sts:AssumeRole
sts:AssumeRole
Ogni ruolo viene creato con una policy di trust del ruolo, questa policy indica chi può assumere il ruolo creato. Se un ruolo dello stesso account indica che un account può assumerlo, significa che l'account sarà in grado di accedere al ruolo (e potenzialmente fare 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: Privesc al ruolo.
Si noti che in questo caso l'autorizzazione sts:AssumeRole
deve essere indicata nel ruolo da abusare e non in una policy appartenente all'attaccante.
Con un'eccezione, per assumere un ruolo da un account diverso, l'account dell'attaccante deve anche avere l'autorizzazione sts:AssumeRole
sul ruolo.
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 questa autorizzazione è:
Per generare le credenziali per impersonare il ruolo in generale, è possibile utilizzare qualcosa del genere:
Ma i provider potrebbero avere i loro propri strumenti per rendere questo più facile, come onelogin-aws-assume-role:
Impatto potenziale: Privesc al ruolo.
sts:AssumeRoleWithWebIdentity
sts:AssumeRoleWithWebIdentity
Questa autorizzazione consente di ottenere un set di credenziali di sicurezza temporanee per utenti autenticati in un'applicazione mobile, web, EKS... con un provider di identità web. Ulteriori informazioni qui.
Ad esempio, se un account di servizio EKS deve 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
pageAWS - Federation AbuseLast updated