AWS - IAM Post Exploitation
IAM
Per maggiori informazioni sull'accesso IAM:
AWS - IAM, Identity Center & SSO EnumProblema del Deputy Confuso
Se permetti a un account esterno (A) di accedere a un ruolo nel tuo account, probabilmente avrai 0 visibilità su chi può esattamente accedere a quell'account esterno. Questo è un problema, perché se un altro account esterno (B) può accedere all'account esterno (A) è possibile che B possa anche accedere al tuo account.
Pertanto, quando si permette a un account esterno di accedere a un ruolo nel proprio account, è possibile specificare un ExternalId
. Questa è una stringa "segreta" che l'account esterno (A) deve specificare per assumere il ruolo nella tua organizzazione. Poiché l'account esterno B non conoscerà questa stringa, anche se ha accesso su A, non sarà in grado di accedere al tuo ruolo.
Tuttavia, nota che questo ExternalId
"segreto" non è un segreto, chiunque possa leggere la policy di assunzione del ruolo IAM sarà in grado di vederlo. Ma finché l'account esterno A lo conosce, ma l'account esterno B non lo conosce, si impedisce a B di abusare di A per accedere al tuo ruolo.
Esempio:
Per un attaccante sfruttare un confused deputy, dovrà trovare in qualche modo se i principali dell'account corrente possono impersonare ruoli in altri account.
Trust inaspettati
Wildcard come principale
Questa policy consente a tutti AWS di assumere il ruolo.
Service as principal
Questa policy consente a qualsiasi account di configurare il proprio apigateway per chiamare questo Lambda.
S3 come principal
Se un bucket S3 è dato come principal, poiché i bucket S3 non hanno un Account ID, se hai eliminato il tuo bucket e l'attaccante lo ha creato nel proprio account, allora potrebbe abusarne.
Non supportato
Un modo comune per evitare problemi di Confused Deputy è l'uso di una condizione con AWS:SourceArn
per verificare l'ARN di origine. Tuttavia, alcuni servizi potrebbero non supportarlo (come CloudTrail secondo alcune fonti).
Riferimenti
Last updated