AWS Codebuild - Token Leakage
Herstel Github/Bitbucket Geconfigureerde Tokens
Eerstens, kontroleer of daar enige bronkredensiale geconfigureer is wat jy kan uitlek:
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
.
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 soosngrok 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...)
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
Stel die MitM-proksi in jou gasheer in
Soos aangedui in die Github-bewaarplek kan jy iets soos gebruik:
Die mitmproxy weergawe wat gebruik is, was 9.0.1, daar is gerapporteer dat dit dalk nie met weergawe 10 sal werk nie.
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
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.
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.
Last updated