AWS Codebuild - Token Leakage
Pata Tokeni za Github/Bitbucket Zilizosanidiwa
Kwanza, angalia kama kuna hati za chanzo zilizosanidiwa ambazo unaweza kuvuja:
Kupitia Picha ya Docker
Ikiwa utagundua kuwa uthibitishaji kwa mfano Github umewekwa kwenye akaunti, unaweza kuiba hiyo upatikanaji (GH token au OAuth token) kwa kufanya Codebuild itumia picha maalum ya docker kuendesha ujenzi wa mradi.
Kwa kusudi hili unaweza kuunda mradi mpya wa Codebuild au kubadilisha mazingira ya moja iliyopo kuweka picha ya Docker.
Picha ya Docker unayoweza kutumia ni https://github.com/carlospolop/docker-mitm. Hii ni picha ya Docker ya msingi sana ambayo itaweka env variables https_proxy
, http_proxy
na SSL_CERT_FILE
. Hii itakuruhusu kunasa trafiki nyingi ya mwenyeji iliyoonyeshwa katika https_proxy
na http_proxy
na kuamini SSL CERT iliyoonyeshwa katika SSL_CERT_FILE
.
Unda na Pakia picha yako ya Docker MitM
Fuata maagizo ya repo kuweka anwani ya IP ya wakala wako na kuweka SSL cert yako na jenga picha ya docker.
USIWEKE
http_proxy
ili usinase maombi kwa endpoint ya metadata.Unaweza kutumia
ngrok
kamangrok tcp 4444
kuweka wakala kwa mwenyeji wakoMara tu unapokuwa na picha ya Docker iliyojengwa, ipakie kwenye repo ya umma (Dockerhub, ECR...)
Weka mazingira
Unda mradi mpya wa Codebuild au badilisha mazingira ya moja iliyopo.
Weka mradi kutumia picha ya Docker iliyotengenezwa awali
Weka wakala wa MitM kwenye mwenyeji wako
Kama ilivyoonyeshwa katika repo ya Github unaweza kutumia kitu kama:
Toleo la mitmproxy lililotumika ni 9.0.1, iliripotiwa kuwa na toleo la 10 hili linaweza lisifanye kazi.
Endesha build & kamata vitambulisho
Unaweza kuona token kwenye Authorization header:
Hili linaweza pia kufanywa kutoka aws cli na kitu kama
Kupitia itifaki ya HTTP
Udhaifu huu ulirekebishwa na AWS wakati fulani wiki ya tarehe 20 Februari 2023 (nadhani Ijumaa). Kwa hivyo mshambulizi hawezi kuutumia tena :)
Mshambulizi mwenye ruhusa za juu katika CodeBuild anaweza kuvuja token ya Github/Bitbucket iliyosanidiwa au kama ruhusa zilisanikishwa kupitia OAuth, token ya muda ya OAuth inayotumika kufikia msimbo.
Mshambulizi anaweza kuongeza vigezo vya mazingira http_proxy na https_proxy kwenye mradi wa CodeBuild akielekeza kwenye mashine yake (kwa mfano
http://5.tcp.eu.ngrok.io:14972
).
Kisha, badilisha URL ya repo ya github kutumia HTTP badala ya HTTPS, kwa mfano: **http://**github.com/carlospolop-forks/TestActions
Kisha, endesha mfano wa msingi kutoka https://github.com/synchronizing/mitm kwenye bandari iliyowekwa na vigezo vya proxy (http_proxy na https_proxy)
Hatimaye, bonyeza Jenga mradi, credentials zitatumwa kwa maandishi wazi (base64) kwa bandari ya mitm:
Sasa mshambuliaji ataweza kutumia token kutoka kwenye mashine yake, orodhesha haki zote ilizonazo na (ab) kutumia kwa urahisi zaidi kuliko kutumia huduma ya CodeBuild moja kwa moja.
Last updated