AWS Codebuild - Token Leakage
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Eerstens, kyk of daar enige bron geloofsbriewe geconfigureer is wat jy kan lek:
As jy vind dat outentikasie na byvoorbeeld Github in die rekening gestel is, kan jy exfiltrate daardie toegang (GH token of OAuth token) deur Codebuild te laat gebruik 'n spesifieke docker image om die bou van die projek te loop.
Vir hierdie doel kan jy 'n nuwe Codebuild projek skep of die omgewing van 'n bestaande een verander om die Docker image in te stel.
Die Docker image wat jy kan gebruik is https://github.com/carlospolop/docker-mitm. Dit is 'n baie basiese Docker image wat die env veranderlikes https_proxy
, http_proxy
en SSL_CERT_FILE
sal stel. Dit sal jou toelaat om die meeste van die verkeer van die gasheer wat in https_proxy
en http_proxy
aangedui is, te onderskep en die SSL CERT wat in SSL_CERT_FILE
aangedui is, te vertrou.
Skep & Laai jou eie Docker MitM image op
Volg die instruksies van die repo om jou proxy IP adres in te stel en jou SSL sertifikaat in te stel en bou die docker image.
MOENIE http_proxy
INSTEL om nie versoeke na die metadata eindpunt te onderskep nie.
Jy kan ngrok
gebruik soos ngrok tcp 4444
om die proxy na jou gasheer in te stel.
Sodra jy die Docker image gebou het, laai dit op na 'n publieke repo (Dockerhub, ECR...)
Stel die omgewing in
Skep 'n nuwe Codebuild projek of wysig die omgewing van 'n bestaande een.
Stel die projek in om die voorheen gegenereerde Docker image te gebruik.
Stel die MitM proxy in jou gasheer in
Soos aangedui in die Github repo kan jy iets soos gebruik:
Die mitmproxy weergawe wat gebruik is, was 9.0.1, daar is gerapporteer dat dit met weergawe 10 dalk nie sal werk nie.
Voer die bou uit & vang die geloofsbriewe
Jy kan die token in die Authorization koptekst sien:
Dit kan ook vanaf die aws cli gedoen word met iets soos
Codebuild projekte het 'n instelling genaamd insecureSsl
wat in die web versteek is en jy kan dit slegs vanaf die API verander.
Deur dit in te skakel, kan Codebuild met die repository verbind sonder om die sertifikaat wat deur die platform aangebied word, te kontroleer.
Eerstens moet jy die huidige konfigurasie opnoem met iets soos:
Dan, met die ingesamelde inligting kan jy die projekinstelling insecureSsl
op True
opdateer. Die volgende is 'n voorbeeld van my opdatering van 'n projek, let op die insecureSsl=True
aan die einde (dit is die enigste ding wat jy moet verander van die ingesamelde konfigurasie).
Boonop, voeg ook die omgewingsveranderlikes http_proxy en https_proxy by wat na jou tcp ngrok wys soos:
Dan, voer die basiese voorbeeld uit van https://github.com/synchronizing/mitm in die poort aangedui deur die proxy veranderlikes (http_proxy en https_proxy)
Laastens, klik op Bou die projek, die bewyse sal in duidelike teks (base64) na die mitm-poort gestuur word:
Hierdie kwesbaarheid is op 'n stadium in die week van die 20ste Februarie 2023 deur AWS reggestel (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 geconfigureer is, lek of as regte via OAuth geconfigureer is, die tydelike OAuth-token wat gebruik word om toegang tot die kode te verkry.
'n Aanvaller kan die omgewing veranderlikes 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-repo om HTTP in plaas van HTTPS te gebruik, byvoorbeeld: http://github.com/carlospolop-forks/TestActions
Voer dan die basiese voorbeeld van https://github.com/synchronizing/mitm uit in die poort wat deur die proxy-variabeles (http_proxy en https_proxy) aangedui word.
Laastens, klik op Bou die projek, die bewyse sal in duidelike teks (base64) na die mitm-poort gestuur word:
Nou sal 'n aanvaller in staat wees om die token vanaf sy masjien te gebruik, al die voorregte wat dit het op te lys en (mis)bruik makliker as om die CodeBuild-diens direk te gebruik.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)