AWS Codebuild - Token Leakage
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kwanza, angalia kama kuna akidi za chanzo zilizowekwa ambazo unaweza kuvuja:
Ikiwa unapata kuwa uthibitisho kwa mfano Github umewekwa katika akaunti, unaweza kuondoa hiyo ufikiaji (GH token au OAuth token) kwa kufanya Codebuild itumie picha maalum ya docker kuendesha ujenzi wa mradi.
Kwa kusudi hili unaweza kuunda mradi mpya wa Codebuild au kubadilisha mazingira ya moja iliyopo ili 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 itakamilisha env variables https_proxy
, http_proxy
na SSL_CERT_FILE
. Hii itakuruhusu kukamata sehemu kubwa ya trafiki ya mwenyeji iliyoonyeshwa katika https_proxy
na http_proxy
na kuamini SSL CERT iliyoonyeshwa katika SSL_CERT_FILE
.
Create & Upload your own Docker MitM image
Fuata maelekezo ya repo kuweka anwani yako ya IP ya proxy na kuweka cheti chako cha SSL na ujenge picha ya docker.
USIWEKE http_proxy
ili usikamate maombi kwa kiungo cha metadata.
Unaweza kutumia ngrok
kama ngrok tcp 4444
kuweka proxy kwa mwenyeji wako.
Mara tu unapokuwa na picha ya Docker iliyojengwa, ipakie kwenye repo ya umma (Dockerhub, ECR...)
Set the environment
Unda mradi mpya wa Codebuild au badilisha mazingira ya moja iliyopo.
Weka mradi kutumia picha ya Docker iliyozalishwa hapo awali.
Set the MitM proxy in your host
Kama ilivyoonyeshwa katika Github repo unaweza kutumia kitu kama:
Toleo la mitmproxy lililotumika lilikuwa 9.0.1, iliripotiwa kwamba na toleo la 10 hii huenda isifanye kazi.
Kimbia ujenzi & kamata akreditivu
Unaweza kuona token katika kichwa cha Authorization:
Hii pia inaweza kufanywa kutoka kwa aws cli kwa kitu kama
Codebuild miradi ina mipangilio inayoitwa insecureSsl
ambayo imefichwa kwenye wavuti unaweza kubadilisha tu kutoka kwa API.
Kuwezesha hii, inaruhusu Codebuild kuungana na hifadhi bila kuangalia cheti kinachotolewa na jukwaa.
Kwanza unahitaji kuorodhesha usanidi wa sasa kwa kutumia kitu kama:
Kisha, kwa taarifa zilizokusanywa unaweza kuboresha mipangilio ya mradi insecureSsl
kuwa True
. Ifuatayo ni mfano wa jinsi nilivyoboresha mradi, angalia insecureSsl=True
mwishoni (hii ndiyo kitu pekee unachohitaji kubadilisha kutoka kwa usanidi ulio kusanywa).
Zaidi ya hayo, ongeza pia mabadiliko ya mazingira http_proxy na https_proxy yanayoelekeza kwenye tcp ngrok yako kama:
Kisha, endesha mfano wa msingi kutoka https://github.com/synchronizing/mitm katika bandari iliyoonyeshwa na mabadiliko ya proxy (http_proxy na https_proxy)
Hatimaye, bonyeza Build the project, credentials zitatumwa kwa clear text (base64) kwenye bandari ya mitm:
Ukatili huu ulirekebishwa na AWS wakati fulani katika wiki ya 20 ya Februari ya 2023 (nadhani Ijumaa). Hivyo, mshambuliaji hawezi kuutumia tena :)
Mshambuliaji mwenye permissions za juu katika CodeBuild anaweza kuvuja token ya Github/Bitbucket iliyowekwa au ikiwa permissions zilipangwa kupitia OAuth, token ya muda ya OAuth inayotumika kufikia msimbo.
Mshambuliaji anaweza kuongeza mabadiliko ya mazingira http_proxy na https_proxy kwenye mradi wa CodeBuild ukielekeza 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 iliyotajwa na mabadiliko ya proxy (http_proxy na https_proxy)
Hatimaye, bonyeza Build the project, credentials zitatumwa katika maandiko wazi (base64) kwa bandari ya mitm:
Sasa mshambuliaji ataweza kutumia token kutoka kwa mashine yake, orodhesha haki zote alizo nazo na (ku)zitumia kwa urahisi zaidi kuliko kutumia huduma ya CodeBuild moja kwa moja.
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)