AWS Codebuild - Token Leakage
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)
Öncelikle, sızdırabileceğiniz herhangi bir kaynak kimlik bilgisi yapılandırılıp yapılandırılmadığını kontrol edin:
Eğer örneğin Github'a kimlik doğrulamanın hesapta ayarlandığını bulursanız, Codebuild'i projeyi oluşturmak için belirli bir docker görüntüsü kullanmaya zorlayarak bu erişimi (GH token veya OAuth token) sızdırabilirsiniz.
Bu amaçla yeni bir Codebuild projesi oluşturabilir veya mevcut birinin ortamını değiştirerek Docker görüntüsünü ayarlayabilirsiniz.
Kullanabileceğiniz Docker görüntüsü https://github.com/carlospolop/docker-mitm. Bu, env değişkenlerini https_proxy
, http_proxy
ve SSL_CERT_FILE
ayarlayacak çok temel bir Docker görüntüsüdür. Bu, https_proxy
ve http_proxy
'da belirtilen ana bilgisayarın trafiğinin çoğunu kesmenizi ve SSL_CERT_FILE
'da belirtilen SSL CERT'ine güvenmenizi sağlar.
Kendi Docker MitM görüntünüzü oluşturun ve yükleyin
Proxy IP adresinizi ayarlamak ve SSL sertifikanızı belirlemek için repo talimatlarını izleyin ve docker görüntüsünü oluşturun.
Metadata uç noktasına yapılan istekleri kesmemek için http_proxy
'yu ayarlamayın.
Proxy'yi ana bilgisayarınıza ayarlamak için ngrok
kullanabilirsiniz, örneğin ngrok tcp 4444
.
Docker görüntünüzü oluşturduktan sonra, bunu halka açık bir repoya yükleyin (Dockerhub, ECR...).
Ortamı ayarlayın
Yeni bir Codebuild projesi oluşturun veya mevcut birinin ortamını değiştirin.
Projeyi önceden oluşturulmuş Docker görüntüsünü kullanacak şekilde ayarlayın.
Ana bilgisayarınızda MitM proxy'yi ayarlayın
Github repo'sunda belirtildiği gibi, şunu kullanabilirsiniz:
Kullanılan mitmproxy sürümü 9.0.1 idi, sürüm 10 ile bunun çalışmayabileceği bildirildi.
Yapıyı çalıştırın ve kimlik bilgilerini yakalayın
Token'ı Authorization başlığında görebilirsiniz:
Bu, aws cli üzerinden de şöyle yapılabilir:
Codebuild projelerinin, yalnızca API üzerinden değiştirilebilen, webde gizli bir ayarı olan insecureSsl
vardır.
Bunu etkinleştirmek, Codebuild'in platform tarafından sunulan sertifikayı kontrol etmeden depoya bağlanmasına olanak tanır.
Öncelikle mevcut yapılandırmayı şu şekilde listelemeniz gerekir:
Ardından, toplanan bilgilerle proje ayarını insecureSsl
değerini True
olarak güncelleyebilirsiniz. Aşağıda bir projeyi güncellememe dair bir örnek var, sonunda insecureSsl=True
olduğunu unutmayın (bu, toplanan yapılandırmadan değiştirmeniz gereken tek şeydir).
Ayrıca, tcp ngrok'unuza işaret eden http_proxy ve https_proxy ortam değişkenlerini de ekleyin:
Ardından, proxy değişkenleri tarafından belirtilen portta https://github.com/synchronizing/mitm adresinden temel örneği çalıştırın.
Son olarak, Projeyi oluştur butonuna tıklayın, kimlik bilgileri düz metin olarak (base64) mitm portuna gönderilecektir:
Bu zafiyet, 2023 Şubat ayının 20'si haftasında AWS tarafından bir noktada düzeltildi (sanırım Cuma günü). Bu nedenle bir saldırgan bunu artık kötüye kullanamaz :)
Yükseltilmiş izinlere sahip bir saldırgan, yapılandırılmış Github/Bitbucket token'ını sızdırabilir veya izinler OAuth aracılığıyla yapılandırılmışsa, koda erişmek için kullanılan geçici OAuth token'ını sızdırabilir.
Bir saldırgan, kendi makinesine işaret eden http_proxy ve https_proxy ortam değişkenlerini CodeBuild projesine ekleyebilir (örneğin http://5.tcp.eu.ngrok.io:14972
).
Ardından, github reposunun URL'sini HTTPS yerine HTTP kullanacak şekilde değiştirin, örneğin: http://github.com/carlospolop-forks/TestActions
Daha sonra, proxy değişkenleri (http_proxy ve https_proxy) tarafından işaret edilen portta https://github.com/synchronizing/mitm temel örneğini çalıştırın.
Son olarak, Projeyi oluştur butonuna tıklayın, kimlik bilgileri düz metin olarak (base64) mitm portuna gönderilecektir:
Artık bir saldırgan, makinesinden token'ı kullanarak, sahip olduğu tüm ayrıcalıkları listeleyebilir ve CodeBuild hizmetini doğrudan kullanmaktan daha kolay bir şekilde (kötüye) kullanabilir.
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)