AWS - IAM Privesc
IAM
Aby uzyskać więcej informacji na temat IAM, sprawdź:
iam:CreatePolicyVersion
iam:CreatePolicyVersion
Przyznaje możliwość utworzenia nowej wersji polityki IAM, omijając potrzebę posiadania uprawnienia iam:SetDefaultPolicyVersion
za pomocą flagi --set-as-default
. Umożliwia to definiowanie niestandardowych uprawnień.
Exploit Command:
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ę, potencjalnie eskalując uprawnienia, jeśli nowa wersja ma więcej uprawnień.
Polecenie Bash:
Wpływ: Pośrednia eskalacja uprawnień poprzez włączenie 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 prowadzi do potencjalnej eskalacji uprawnień.
Eksploatacja:
Wpływ: Bezpośrednia eskalacja uprawnień poprzez przyjęcie rozszerzonych uprawnień innego użytkownika.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
Zezwala na tworzenie lub aktualizowanie profilu logowania, w tym ustawianie haseł do logowania w konsoli AWS, co prowadzi do bezpośredniej eskalacji uprawnień.
Eksploatacja dla utworzenia:
Eksploatacja dla aktualizacji:
Wpływ: Bezpośrednia eskalacja uprawnień przez logowanie 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.
Eksploatacja:
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 konkretnych usług AWS (np. CodeCommit, Amazon Keyspaces), dziedzicząc uprawnienia powiązanego użytkownika.
Eksploatacja dla utworzenia:
Eksploatacja dla Resetu:
Wpływ: Bezpośrednia eskalacja uprawnień w ramach uprawnień usługi użytkownika.
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.
Wykorzystanie dla użytkownika:
Eksploatacja 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 przyznawanie dodatkowych uprawnień.
Eksploatacja dla Roli:
Eksploatacja dla Polityk Inline:
Możesz użyć polityki takiej jak:
Wpływ: Bezpośrednia eskalacja uprawnień poprzez dodawanie uprawnień za pomocą polityk.
iam:AddUserToGroup
iam:AddUserToGroup
Umożliwia dodanie siebie do grupy IAM, eskalując uprawnienia poprzez dziedziczenie uprawnień grupy.
Eksploatacja:
Wpływ: Bezpośrednia eskalacja uprawnień do poziomu uprawnień grupy.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Pozwala na modyfikację dokumentu polityki zakupu roli, umożliwiając przyjęcie roli i jej powiązanych uprawnień.
Eksploatacja:
Gdy polityka wygląda następująco, co daje użytkownikowi uprawnienia do przyjęcia roli:
Wpływ: Bezpośrednia eskalacja uprawnień przez przyję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 prowadzi do potencjalnej pośredniej eskalacji uprawnień.
Wykorzystanie do przesyłania klucza SSH:
Eksploatacja 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 resynchronizację 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 dodawanie lub manipulowanie urządzeniami MFA.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Dzięki tym uprawnieniom 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.
Zauważ, że robiąc to legitni użytkownicy nie będą mogli się zalogować. Możesz jednak uzyskać XML, aby wprowadzić swój, zalogować się i skonfigurować poprzednie ustawienia.
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, mógłby dodać nowy odcisk palca, aby móc zalogować się we wszystkich rolach ufających dostawcy.
Odniesienia
Last updated