AWS - API Gateway Unauthenticated Enum
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo konuşmasına göre, Lambda Authorizers, API uç noktalarını çağırmak için izin vermek üzere IAM sözdizimi kullanılarak yapılandırılabilir. Bu, belgelerden alınmıştır:
Bu yöntemle uç noktaları çağırmak için izin vermenin sorunu, "*"nın "herhangi bir şey" anlamına gelmesidir ve daha fazla regex sözdizimi desteklenmemektedir.
Bazı örnekler:
Her kullanıcıya /dashboard/user/{username}
erişimi vermek için arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*
gibi bir kural, onlara örneğin /admin/dashboard/createAdmin
gibi diğer rotalara erişim verecektir.
"*" kesmelerle genişlemeyi durdurmaz, bu nedenle, örneğin api-id'de "*" kullanırsanız, bu "herhangi bir aşama" veya "herhangi bir yöntem" anlamına da gelebilir, son regex geçerli olduğu sürece.
Bu nedenle arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Örneğin /prod/GET/dashboard/admin
yoluna test aşamasında bir post isteğini doğrulayabilir.
Her zaman neye erişim izni vermek istediğinizi net bir şekilde belirlemeli ve ardından verilen izinlerle başka senaryoların mümkün olup olmadığını kontrol etmelisiniz.
Daha fazla bilgi için, docs dışında, bu resmi aws github üzerinde yetkilendiricileri uygulamak için kod bulabilirsiniz.
Aynı konuşmada, kodun kullanıcı girişi kullanarak IAM politikalarını oluşturduğuna dair bir gerçek ortaya konulmuştur; burada joker karakterler (ve "." veya belirli dizeler gibi diğerleri) kısıtlamaları aşma amacıyla dahil edilebilir.
S3 bucket'ları, Data Exchange ve Lambda URL'si geçitlerinde olduğu gibi, genel bir API Gateway URL'sinden aws:ResourceAccount
Policy Condition Key'sini kötüye kullanarak bir hesabın hesap ID'sini bulmak mümkündür. Bu, politikanın aws:ResourceAccount
bölümünde joker karakterleri kötüye kullanarak hesap ID'sini bir karakter bir seferde bulmakla yapılır.
Bu teknik, tag anahtarını biliyorsanız tag değerlerini de almanıza olanak tanır (bazı varsayılan ilginç olanlar vardır).
Daha fazla bilgi için orijinal araştırmaya ve bu istismarı otomatikleştirmek için conditional-love aracına göz atabilirsiniz.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)