AWS - IAM Privesc
IAM
Więcej informacji o IAM znajdziesz tutaj:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
Daje możliwość tworzenia nowej wersji polityki IAM, omijając potrzebę posiadania uprawnienia iam:SetDefaultPolicyVersion
poprzez użycie flagi --set-as-default
. Umożliwia to definiowanie niestandardowych uprawnień.
Komenda Eksploatacyjna:
Wpływ: Bezpośrednio eskaluje uprawnienia, pozwalając na dowolne działanie na dowolnym zasobie.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
Pozwala na zmianę domyślnej wersji polityki IAM na inną istniejącą wersję, co może prowadzić do eskalacji uprawnień, jeśli nowa wersja ma więcej uprawnień.
Polecenie Bash:
Wpływ: Pośrednia eskalacja uprawnień poprzez umożliwienie większej liczby uprawnień.
iam:CreateAccessKey
iam:CreateAccessKey
Umożliwia tworzenie identyfikatora klucza dostępu i tajnego klucza dostępu dla innego użytkownika, co może prowadzić do potencjalnej eskalacji uprawnień.
Eksploit:
Wpływ: Bezpośrednia eskalacja uprawnień poprzez przejęcie rozszerzonych uprawnień innego użytkownika.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
Pozwala na tworzenie lub aktualizowanie profilu logowania, w tym ustawianie haseł do logowania do konsoli AWS, co prowadzi do bezpośredniej eskalacji uprawnień.
Eksploit dla tworzenia:
Eksploitacja dla Update:
Wpływ: Bezpośrednia eskalacja uprawnień poprzez zalogowanie się jako "dowolny" użytkownik.
iam:UpdateAccessKey
iam:UpdateAccessKey
Pozwala na włączenie wyłączonego klucza dostępu, co może prowadzić do nieautoryzowanego dostępu, jeśli atakujący posiada wyłączony klucz.
Eksploit:
Wpływ: Bezpośrednia eskalacja uprawnień poprzez reaktywację kluczy dostępu.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
Umożliwia generowanie lub resetowanie poświadczeń dla określonych usług AWS (np. CodeCommit, Amazon Keyspaces), dziedzicząc uprawnienia powiązanego użytkownika.
Eksploit dla tworzenia:
Exploit for Reset:
Wpływ: Bezpośrednia eskalacja uprawnień w ramach uprawnień użytkownika do usług.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Pozwala na dołączanie polityk do użytkowników lub grup, bezpośrednio eskalując uprawnienia poprzez dziedziczenie uprawnień dołączonej polityki.
Eksploit dla użytkownika:
Eksploitacja dla Grupy:
Wpływ: Bezpośrednia eskalacja uprawnień do wszystkiego, co przyznaje polityka.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Pozwala na dołączanie lub umieszczanie polityk do ról, użytkowników lub grup, umożliwiając bezpośrednią eskalację uprawnień poprzez przyznanie dodatkowych uprawnień.
Eksploit dla Roli:
Eksploitacja dla Polityk Wbudowanych:
Możesz użyć polityki takiej jak:
Wpływ: Bezpośrednia eskalacja uprawnień poprzez dodanie uprawnień za pomocą polityk.
iam:AddUserToGroup
iam:AddUserToGroup
Umożliwia dodanie siebie do grupy IAM, eskalując uprawnienia poprzez dziedziczenie uprawnień grupy.
Eksploit:
Wpływ: Bezpośrednia eskalacja uprawnień do poziomu uprawnień grupy.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Pozwala na zmianę dokumentu polityki przyjmowania roli, umożliwiając przyjęcie roli i jej związanych uprawnień.
Eksploit:
Gdzie polityka wygląda następująco, co daje użytkownikowi uprawnienia do przejęcia roli:
Wpływ: Bezpośrednia eskalacja uprawnień poprzez przejęcie uprawnień dowolnej roli.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
Pozwala na przesyłanie klucza publicznego SSH do uwierzytelniania w CodeCommit oraz dezaktywację urządzeń MFA, co może prowadzić do potencjalnej pośredniej eskalacji uprawnień.
Eksploit dla przesyłania klucza SSH:
Exploit for MFA Deactivation:
Eksploitacja dezaktywacji MFA:
Wpływ: Pośrednia eskalacja uprawnień poprzez włączenie dostępu do CodeCommit lub wyłączenie ochrony MFA.
iam:ResyncMFADevice
iam:ResyncMFADevice
Pozwala na ponowną synchronizację urządzenia MFA, co może prowadzić do pośredniej eskalacji uprawnień poprzez manipulację ochroną MFA.
Polecenie Bash:
Wpływ: Pośrednia eskalacja uprawnień poprzez dodanie lub manipulację urządzeniami MFA.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Z tymi uprawnieniami możesz zmienić metadane XML połączenia SAML. Następnie, możesz nadużyć federacji SAML, aby zalogować się z dowolną rolą, która jej ufa.
Należy zauważyć, że robiąc to, prawowici użytkownicy nie będą mogli się zalogować. Jednakże, możesz uzyskać XML, aby wstawić swoje, zalogować się i skonfigurować poprzednie z powrotem.
TODO: Narzędzie zdolne do generowania metadanych SAML i logowania się z określoną rolą
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(Niepewne) Jeśli atakujący ma te uprawnienia, może dodać nowy Thumbprint, aby zalogować się we wszystkich rolach ufających dostawcy.
Referencje
Last updated