AWS - Codebuild Enum

Tip

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)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

CodeBuild

AWS CodeBuild, tam yönetilen bir sürekli entegrasyon servisi olarak bilinir. Bu servisin temel amacı, kaynak kodunun derlenmesi, testlerin çalıştırılması ve yazılımın dağıtıma hazırlanması için paketlenmesi süreçlerini otomatikleştirmektir. CodeBuild’in başlıca faydası, kullanıcıların build sunucularını sağlamaları, yönetmeleri ve ölçeklendirmeleri gerekliliğini ortadan kaldırmasıdır; çünkü bu görevler servis tarafından yönetilir. AWS CodeBuild’in temel özellikleri şunlardır:

  1. Yönetilen Servis: CodeBuild, build sunucularını yönetir ve ölçeklendirir; böylece kullanıcılardan sunucu bakımı yükünü alır.
  2. Sürekli Entegrasyon: Geliştirme ve dağıtım iş akışlarıyla entegre olur, yazılım sürüm sürecinin build ve test aşamalarını otomatikleştirir.
  3. Paket Üretimi: Build ve test aşamalarından sonra yazılım paketlerini hazırlar ve dağıtıma hazır hale getirir.

AWS CodeBuild, diğer AWS servisleriyle sorunsuz bir şekilde entegre olur; CI/CD (Continuous Integration/Continuous Deployment) pipeline’ının verimliliğini ve güvenilirliğini artırır.

Github/Gitlab/Bitbucket Kimlik Bilgileri

Varsayılan kaynak kimlik bilgileri

Bu, bazı erişimlerin (ör. Github token veya app) yapılandırılabildiği eski bir seçenektir ve bu erişimler CodeBuild projeleri arasında paylaşılarak tüm projelerin yapılandırılmış bu kimlik bilgisi setini kullanmasına izin verir.

Depolanan kimlik bilgileri (tokenlar, parolalar…) CodeBuild tarafından yönetilir ve bunları AWS APIs üzerinden almanın herkese açık bir yolu yoktur.

Özel kaynak kimlik bilgisi

Repository platformuna (Github, Gitlab ve Bitbucket) bağlı olarak farklı seçenekler sunulur. Ancak genel olarak, bir token veya parola depolamayı gerektiren herhangi bir seçenek, bunu secrets manager içinde bir secret olarak depolar.

Bu, sadece varsayılan yapılandırılmış erişimi kullanmak yerine, sağlayıcılara yönelik farklı yapılandırılmış erişimleri kullanmak için farklı CodeBuild projelerinin farklı erişimler kullanmasına olanak tanır.

Keşif

# List external repo creds (such as github tokens)
## It doesn't return the token but just the ARN where it's located
aws codebuild list-source-credentials

# Projects
aws codebuild list-shared-projects
aws codebuild list-projects
aws codebuild batch-get-projects --names <project_name> # Check for creds in env vars

# Builds
aws codebuild list-builds
aws codebuild list-builds-for-project --project-name <p_name>
aws codebuild list-build-batches
aws codebuild list-build-batches-for-project --project-name <p_name>

# Reports
aws codebuild list-reports
aws codebuild describe-test-cases --report-arn <ARN>

Tip

Eğer codebuild:StartBuild izniniz varsa, build sırasında (--environment-variables-override) genellikle env vars’ları geçersiz kılabileceğinizi unutmayın. Bu, UpdateProject veya buildspec override’ları olmadan bile bazı saldırılar için yeterlidir (örneğin: artifact/upload buckets’ları yönlendirerek secrets’ı exfiltrate etmek veya language/runtime env vars’ları kötüye kullanarak komut çalıştırmak).

Privesc

Aşağıdaki sayfada, codebuild izinlerini kötüye kullanarak ayrıcalık yükseltmeyi nasıl yapacağınızı görebilirsiniz:

AWS - Codebuild Privesc

Post Exploitation

AWS - CodeBuild Post Exploitation

Unauthenticated Access

AWS - CodeBuild Unauthenticated Access

Referanslar

Tip

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)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin