AWS - IAM Privesc
IAM
IAM hakkında daha fazla bilgi için:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
iam:CreatePolicyVersion
iam:SetDefaultPolicyVersion
izni gereksinimini atlayarak yeni bir IAM politika sürümü oluşturma yeteneği sağlar. --set-as-default
bayrağını kullanarak özel izinleri tanımlamanıza olanak tanır.
Sömürü Komutu:
Etki: Herhangi bir kaynak üzerinde herhangi bir işlem yaparak doğrudan ayrıcalıkları yükseltir.
iam:SetDefaultPolicyVersion
iam:SetDefaultPolicyVersion
Bir IAM politikasının varsayılan sürümünü başka bir mevcut sürüme değiştirmeye izin verir ve yeni sürüm daha fazla izinlere sahipse ayrıcalıkları yükseltebilir.
Bash Komutu:
Etki: Daha fazla izin vererek dolaylı ayrıcalık yükseltme.
iam:CreateAccessKey
iam:CreateAccessKey
Başka bir kullanıcı için erişim anahtarı kimliği ve gizli erişim anahtarı oluşturmayı etkinleştirir, bu da potansiyel bir ayrıcalık yükseltmeye yol açar.
Sömürü:
Etki: Başka bir kullanıcının genişletilmiş izinlerini kullanarak doğrudan ayrıcalık yükseltme.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
iam:CreateLoginProfile
| iam:UpdateLoginProfile
AWS konsolu girişi için şifre belirleme dahil, giriş profili oluşturma veya güncelleme izni verir, bu da doğrudan ayrıcalık yükseltmeye yol açar.
Oluşturma için Sömürü:
Güncelleme için Sömürü:
Bu betik, AWS IAM politikalarındaki bir yapılandırma hatasını sömürerek ayrıcalıkları yükseltir.
Gerekli araçların yüklü olup olmadığını kontrol eder.
AWS CLI'nin yapılandırılıp yapılandırılmadığını kontrol eder.
Mevcut IAM kullanıcısını alır.
Mevcut IAM kullanıcısının politikalarını alır.
Mevcut IAM kullanıcısının her politikasını kontrol eder ve ayrıcalık yükseltme durumunu kontrol eder.
Etki: "herhangi bir" kullanıcı olarak oturum açarak doğrudan ayrıcalık yükseltme.
iam:UpdateAccessKey
iam:UpdateAccessKey
Devre dışı bırakılmış bir erişim anahtarını etkinleştirmeye izin verir, saldırgan devre dışı bırakılmış anahtara sahipse yetkisiz erişime yol açabilir.
Sömürü:
Etki: Erişim anahtarlarını yeniden etkinleştirerek doğrudan ayrıcalık yükseltme.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
Belirli AWS hizmetleri için (örneğin, CodeCommit, Amazon Keyspaces) kimlik bilgileri oluşturmayı veya sıfırlamayı etkinleştirir ve ilişkili kullanıcının izinlerini devralır.
Oluşturma için Sömürü:
Sıfırlama İçin Sömürü:
Etki: Kullanıcının hizmet izinleri içinde doğrudan ayrıcalık yükselmesi.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Kullanıcılara veya gruplara politikaların eklenmesine izin verir, doğrudan eklenen politikanın izinlerini devralayarak ayrıcalıkları yükseltir.
Kullanıcı için Sömürü:
Grup İçin Sömürü:
Etki: Politika tarafından sağlanan herhangi bir şeye doğrudan ayrıcalık yükseltme.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Rollere, kullanıcılara veya gruplara politika eklemeyi veya politika yerleştirmeyi sağlar, ek izinler vererek doğrudan ayrıcalık yükseltmeyi mümkün kılar.
Rol İçin Sömürü:
Inline Politikalar için Sömürü:
An inline policy is a policy that is directly attached to an IAM user, group, or role. These policies are defined within the same JSON document as the user, group, or role.
Bir inline politika, IAM kullanıcısına, gruba veya role doğrudan eklenen bir politikadır. Bu politikalar, kullanıcı, grup veya rol ile aynı JSON belgesi içinde tanımlanır.
To exploit an inline policy, you need to have the necessary permissions to modify the policy document. Once you have the required permissions, you can modify the policy to grant yourself additional privileges.
Bir inline politikayı sömürmek için, politika belgesini değiştirmek için gerekli izinlere sahip olmanız gerekir. Gerekli izinlere sahip olduktan sonra, politikayı değiştirerek kendinize ek ayrıcalıklar verebilirsiniz.
Here are the steps to exploit an inline policy:
İşte bir inline politikayı sömürmek için adımlar:
Identify the IAM user, group, or role that has an inline policy attached.
Bir inline politikaya sahip olan IAM kullanıcısını, grubu veya rolü belirleyin.
Determine the permissions granted by the inline policy.
Inline politika tarafından verilen izinleri belirleyin.
Gain the necessary permissions to modify the policy document.
Politika belgesini değiştirmek için gerekli izinleri elde edin.
Modify the policy document to grant yourself additional privileges.
Politika belgesini değiştirerek kendinize ek ayrıcalıklar verin.
Test the modified policy to ensure that the privileges have been escalated.
Ayrıcalıkların yükseltildiğinden emin olmak için değiştirilmiş politikayı test edin.
By exploiting an inline policy, you can elevate your privileges and gain access to resources that you were not originally authorized to access.
Inline politikayı sömürerek, ayrıcalıklarınızı yükseltebilir ve başlangıçta erişim izniniz olmayan kaynaklara erişebilirsiniz.
Aşağıdaki gibi bir politika kullanabilirsiniz:
Etki: İzinlerin doğrudan artırılması, politikalar aracılığıyla izin ekleyerek gerçekleştirilir.
iam:AddUserToGroup
iam:AddUserToGroup
Bir IAM grubuna kendinizi eklemenizi sağlar, grup izinlerini devralarak ayrıcalıkları artırır.
Sömürü:
Etki: Grubun izin seviyesine doğrudan ayrıcalık yükseltme.
iam:UpdateAssumeRolePolicy
iam:UpdateAssumeRolePolicy
Bir rolün varsayılan rol politika belgesini değiştirmeye izin verir, böylece rolün ve ilişkili izinlerin varsayılan rolünü gerçekleştirir.
Sömürü:
Eğer politika aşağıdaki gibi görünüyorsa, kullanıcıya rolü üstlenme izni verir:
Etki: Herhangi bir rolün izinlerini alarak doğrudan ayrıcalık yükseltme.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
CodeCommit'e kimlik doğrulama için bir SSH genel anahtarı yüklemeye ve MFA cihazlarını devre dışı bırakmaya izin verir, bu da potansiyel dolaylı ayrıcalık yükseltmeye yol açar.
SSH Anahtarı Yükleme Sömürüsü:
MFA Devre Dışı Bırakma Sömürüsü:
Replace <IAM_USER_NAME>
with the username of the IAM user and <MFA_SERIAL_NUMBER>
with the serial number of the MFA device associated with the user. 5. Verify that MFA has been successfully disabled by attempting to log in to the AWS Management Console without providing an MFA code.
Etki: CodeCommit erişimini etkinleştirme veya MFA korumasını devre dışı bırakma yoluyla dolaylı ayrıcalık yükseltme.
iam:ResyncMFADevice
iam:ResyncMFADevice
Bir MFA cihazının yeniden senkronizasyonuna izin verir, MFA korumasını manipüle ederek dolaylı ayrıcalık yükseltmeye yol açabilir.
Bash Komutu:
Etki: MFA cihazları ekleyerek veya manipüle ederek dolaylı ayrıcalık yükseltme.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Bu izinlerle SAML bağlantısının XML meta verilerini değiştirebilirsiniz. Ardından, SAML federasyonunu kötüye kullanarak güvenen herhangi bir rolle giriş yapabilirsiniz.
Bununla birlikte, bunu yaparak meşru kullanıcılar giriş yapamaz. Ancak XML'yi alabilirsiniz, böylece kendi XML'inizi koyabilir, giriş yapabilir ve önceki yapılandırmayı geri alabilirsiniz.
TODO: Belirli bir rolle SAML meta verileri oluşturabilen ve oturum açabilen bir araç
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(Bu konuda emin değilim) Bir saldırganın bu izinlere sahip olması durumunda, sağlayıcıya güvenen tüm rollerde oturum açmayı yönetmek için yeni bir Thumbprint ekleyebilir.
Referanslar
Last updated