Files
hacktricks-cloud/src/pentesting-ci-cd/travisci-security/README.md
T

6.5 KiB

TravisCI Security

{{#include ../../banners/hacktricks-training.md}}

What is TravisCI

Travis CI एक होस्टेड या स्थानीय निरंतर एकीकरण सेवा है जिसका उपयोग विभिन्न विभिन्न गिट प्लेटफार्मों पर होस्ट किए गए सॉफ़्टवेयर प्रोजेक्ट्स को बनाने और परीक्षण करने के लिए किया जाता है।

{{#ref}} basic-travisci-information.md {{#endref}}

Attacks

Triggers

हमला शुरू करने के लिए, आपको पहले यह जानना होगा कि निर्माण को कैसे ट्रिगर करना है। डिफ़ॉल्ट रूप से, TravisCI पुश और पुल अनुरोधों पर निर्माण को ट्रिगर करेगा:

Cron Jobs

यदि आपके पास वेब एप्लिकेशन तक पहुंच है, तो आप निर्माण चलाने के लिए क्रोन सेट कर सकते हैं, यह निरंतरता के लिए या निर्माण को ट्रिगर करने के लिए उपयोगी हो सकता है:

Note

ऐसा लगता है कि इस के अनुसार .travis.yml के अंदर क्रोन सेट करना संभव नहीं है।

Third Party PR

डिफ़ॉल्ट रूप से, TravisCI तीसरे पक्ष से आने वाले PRs के साथ env वेरिएबल साझा करने को अक्षम करता है, लेकिन कोई इसे सक्षम कर सकता है और फिर आप रेपो में PR बना सकते हैं और रहस्यों को एक्सफिल्ट्रेट कर सकते हैं:

Dumping Secrets

जैसा कि बुनियादी जानकारी पृष्ठ में समझाया गया है, रहस्यों के 2 प्रकार होते हैं। पर्यावरण वेरिएबल रहस्य (जो वेब पृष्ठ में सूचीबद्ध होते हैं) और कस्टम एन्क्रिप्टेड रहस्य, जो .travis.yml फ़ाइल के अंदर base64 के रूप में संग्रहीत होते हैं (ध्यान दें कि दोनों एन्क्रिप्टेड के रूप में संग्रहीत होने पर अंतिम मशीनों में env वेरिएबल के रूप में समाप्त होंगे)।

  • पर्यावरण वेरिएबल के रूप में कॉन्फ़िगर किए गए रहस्यों की गणना करने के लिए, प्रोजेक्ट की सेटिंग्स पर जाएं और सूची की जांच करें। हालाँकि, ध्यान दें कि यहाँ सेट किए गए सभी प्रोजेक्ट env वेरिएबल निर्माण को ट्रिगर करते समय दिखाई देंगे।
  • कस्टम एन्क्रिप्टेड रहस्यों की गणना करने के लिए, सबसे अच्छा आप कर सकते हैं वह है .travis.yml फ़ाइल की जांच करना
  • एन्क्रिप्टेड फ़ाइलों की गणना करने के लिए, आप रेपो में .enc फ़ाइलों के लिए देख सकते हैं, कॉन्फ़िग फ़ाइल में openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d जैसी पंक्तियों के लिए, या पर्यावरण वेरिएबल में एन्क्रिप्टेड iv और कुंजी के लिए:

TODO:

  • Windows/Mac/Linux पर चलने वाले रिवर्स शेल के साथ उदाहरण निर्माण
  • लॉग में बेस64 एन्कोडेड env लीक करने वाले उदाहरण निर्माण

TravisCI Enterprise

यदि एक हमलावर एक ऐसे वातावरण में समाप्त होता है जो TravisCI enterprise का उपयोग करता है (इस बारे में अधिक जानकारी बुनियादी जानकारी में है), तो वह वर्कर में निर्माण को ट्रिगर करने में सक्षम होगा। इसका मतलब है कि एक हमलावर उस सर्वर पर पार्श्व रूप से स्थानांतरित करने में सक्षम होगा जिससे वह:

  • मेज़बान से भाग सकता है?
  • कुबेरनेट्स से समझौता कर सकता है?
  • उसी नेटवर्क में चल रही अन्य मशीनों से समझौता कर सकता है?
  • नए क्लाउड क्रेडेंशियल्स से समझौता कर सकता है?

References

{{#include ../../banners/hacktricks-training.md}}