AWS Codebuild - Token Leakage
Vraćanje Github/Bitbucket Konfigurisanih Tokena
Prvo, proverite da li postoje bilo kakvi konfigurisani izvorni kredencijali koje biste mogli da otkrijete:
Preko Docker slike
Ako otkrijete da je autentikacija na primer postavljena za Github u nalogu, možete izvući taj pristup (GH token ili OAuth token) tako što ćete naterati Codebuild da koristi određenu docker sliku za pokretanje izgradnje projekta.
Za tu svrhu možete kreirati novi Codebuild projekat ili promeniti okruženje postojećeg da biste postavili Docker sliku.
Docker sliku koju možete koristiti je https://github.com/carlospolop/docker-mitm. Ovo je veoma osnovna Docker slika koja će postaviti env promenljive https_proxy
, http_proxy
i SSL_CERT_FILE
. Ovo će vam omogućiti da presretnete većinu saobraćaja sa hosta naznačenog u https_proxy
i http_proxy
i da verujete SSL CERT-u naznačenom u SSL_CERT_FILE
.
Kreirajte i otpremite svoju sopstvenu Docker MitM sliku
Pratite uputstva iz repozitorijuma da biste postavili IP adresu vašeg proksi servera i postavili vaš SSL sertifikat i izgradili docker sliku.
NE POSTAVLJAJTE
http_proxy
da ne biste presreli zahteve ka metapodacima.Možete koristiti
ngrok
poputngrok tcp 4444
da biste postavili proksi ka vašem hostuKada izgradite Docker sliku, otpremite je na javni repozitorijum (Dockerhub, ECR...)
Postavite okruženje
Kreirajte novi Codebuild projekat ili izmenite okruženje postojećeg.
Postavite projekat da koristi prethodno generisanu Docker sliku
Postavite MitM proksi na vašem hostu
Kao što je naznačeno u Github repozitorijumu, možete koristiti nešto poput:
Korišćena je mitmproxy verzija 9.0.1, prijavljeno je da ovo možda neće raditi sa verzijom 10.
Pokrenite izgradnju i zabeležite pristupne podatke
Možete videti token u zaglavlju Authorization:
Ovo takođe može biti urađeno sa aws cli-om nečim sličnim kao
Preko HTTP protokola
Ova ranjivost je ispravljena od strane AWS-a negde tokom nedelje 20. februara 2023. godine (mislim da je bilo u petak). Dakle, napadač više ne može zloupotrebljavati ovu ranjivost :)
Napadač sa povišenim dozvolama u okviru CodeBuild-a mogao bi otkriti Github/Bitbucket token koji je konfigurisan ili, ako su dozvole konfigurisane putem OAuth-a, privremeni OAuth token korišćen za pristup kodu.
Napadač bi mogao dodati promenljive okoline http_proxy i https_proxy u CodeBuild projekat koji pokazuju ka njegovom računaru (na primer
http://5.tcp.eu.ngrok.io:14972
).
Zatim, promeniti URL repozitorijuma na Github-u da koristi HTTP umesto HTTPS, na primer: **http://**github.com/carlospolop-forks/TestActions
Zatim pokrenuti osnovni primer sa https://github.com/synchronizing/mitm na portu koji pokazuju promenljive proxy (http_proxy i https_proxy)
Konačno, kliknite na Izgradite projekat, poverljivi podaci će biti poslati u čistom tekstu (base64) na mitm port:
Sada će napadač moći da koristi token sa svoje mašine, da izlistava sve privilegije koje ima i (zlo)upotrebljava lakše nego korišćenjem CodeBuild servisa direktno.
Last updated