AWS - IAM Privesc
IAM
Für mehr Informationen über IAM siehe:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
Gewährt die Fähigkeit, eine neue IAM-Policy-Version zu erstellen, wodurch die Notwendigkeit der iam:SetDefaultPolicyVersion
-Berechtigung durch Verwendung des --set-as-default
-Flags umgangen wird. Dies ermöglicht die Definition benutzerdefinierter Berechtigungen.
Exploit-Befehl:
Auswirkung: Eskaliert direkt die Privilegien, indem es jede Aktion auf jede Ressource erlaubt.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
Ermöglicht das Ändern der Standardversion einer IAM-Richtlinie zu einer anderen vorhandenen Version, was potenziell die Privilegien eskalieren kann, wenn die neue Version mehr Berechtigungen hat.
Bash-Befehl:
Auswirkung: Indirekte Privilegieneskalation durch Aktivierung weiterer Berechtigungen.
iam:CreateAccessKey
iam:CreateAccessKey
Ermöglicht das Erstellen einer Zugangs-ID und eines geheimen Zugangsschlüssels für einen anderen Benutzer, was zu einer potenziellen Privilegieneskalation führen kann.
Ausnutzung:
Auswirkung: Direkte Privilegieneskalation durch Übernahme der erweiterten Berechtigungen eines anderen Benutzers.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
Erlaubt das Erstellen oder Aktualisieren eines Login-Profils, einschließlich der Festlegung von Passwörtern für die AWS-Konsole, was zu einer direkten Privilegieneskalation führt.
Exploit für Erstellung:
Exploit für Update:
Auswirkung: Direkte Privilegieneskalation durch Anmeldung als "jeder" Benutzer.
iam:UpdateAccessKey
iam:UpdateAccessKey
Ermöglicht das Aktivieren eines deaktivierten Zugangsschlüssels, was zu unbefugtem Zugriff führen kann, wenn der Angreifer den deaktivierten Schlüssel besitzt.
Ausnutzung:
Auswirkung: Direkte Privilegieneskalation durch Reaktivierung von Zugangsschlüsseln.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
Ermöglicht das Erstellen oder Zurücksetzen von Anmeldeinformationen für bestimmte AWS-Dienste (z.B. CodeCommit, Amazon Keyspaces), wobei die Berechtigungen des zugehörigen Benutzers übernommen werden.
Exploit für Erstellung:
Exploit für Reset:
Auswirkung: Direkte Privilegieneskalation innerhalb der Dienstberechtigungen des Benutzers.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Ermöglicht das Anhängen von Richtlinien an Benutzer oder Gruppen, wodurch Privilegien direkt eskaliert werden, indem die Berechtigungen der angehängten Richtlinie übernommen werden.
Exploit für Benutzer:
Exploit für Gruppe:
Auswirkung: Direkte Privilegieneskalation auf alles, was die Richtlinie gewährt.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Erlaubt das Anhängen oder Hinzufügen von Richtlinien zu Rollen, Benutzern oder Gruppen, wodurch eine direkte Privilegieneskalation durch Gewährung zusätzlicher Berechtigungen ermöglicht wird.
Exploit für Rolle:
Exploit für Inline Policies:
Du kannst eine Richtlinie wie die folgende verwenden:
Impact: Direkte Privilegieneskalation durch Hinzufügen von Berechtigungen über Richtlinien.
iam:AddUserToGroup
iam:AddUserToGroup
Ermöglicht das Hinzufügen zu einer IAM-Gruppe, wodurch Privilegien durch die Übernahme der Berechtigungen der Gruppe eskaliert werden.
Exploit:
Auswirkung: Direkte Privilegieneskalation auf das Niveau der Berechtigungen der Gruppe.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Erlaubt das Ändern des Assume-Role-Policy-Dokuments einer Rolle, wodurch die Annahme der Rolle und ihrer zugehörigen Berechtigungen ermöglicht wird.
Exploit:
Wo die Richtlinie wie folgt aussieht, was dem Benutzer die Berechtigung gibt, die Rolle zu übernehmen:
Auswirkung: Direkte Privilegieneskalation durch Übernahme der Berechtigungen einer beliebigen Rolle.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
Erlaubt das Hochladen eines SSH-öffentlichen Schlüssels zur Authentifizierung bei CodeCommit und das Deaktivieren von MFA-Geräten, was zu einer potenziellen indirekten Privilegieneskalation führen kann.
Exploit für SSH-Schlüssel-Upload:
Exploit für MFA-Deaktivierung:
Auswirkung: Indirekte Privilegieneskalation durch Aktivierung des CodeCommit-Zugriffs oder Deaktivierung des MFA-Schutzes.
iam:ResyncMFADevice
iam:ResyncMFADevice
Erlaubt die Resynchronisierung eines MFA-Geräts, was potenziell zu einer indirekten Privilegieneskalation durch Manipulation des MFA-Schutzes führen kann.
Bash-Befehl:
Auswirkung: Indirekte Privilegieneskalation durch Hinzufügen oder Manipulieren von MFA-Geräten.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Mit diesen Berechtigungen können Sie die XML-Metadaten der SAML-Verbindung ändern. Dann könnten Sie die SAML-Föderation missbrauchen, um sich mit jeder Rolle, die ihr vertraut, anzumelden.
Beachten Sie, dass legitime Benutzer sich nicht anmelden können, wenn Sie dies tun. Sie könnten jedoch die XML erhalten, Ihre eigene einfügen, sich anmelden und die vorherige wiederherstellen.
TODO: Ein Tool, das in der Lage ist, die SAML-Metadaten zu generieren und sich mit einer angegebenen Rolle anzumelden
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(Nicht sicher darüber) Wenn ein Angreifer diese Berechtigungen hat, könnte er einen neuen Thumbprint hinzufügen, um sich in allen Rollen anzumelden, die dem Anbieter vertrauen.
Referenzen
Last updated