GCP - Artifact Registry Persistence
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)
Artifact Registry के बारे में अधिक जानकारी के लिए देखें:
GCP - Artifact Registry Enumक्या होता है अगर एक remote और एक standard repositories एक virtual में मिलाए जाएं और एक package दोनों में मौजूद हो?
वह जो virtual repository में उच्चतम प्राथमिकता सेट की गई है, का उपयोग किया जाता है
यदि priority समान है:
यदि version समान है, तो policy name वर्णानुक्रम में पहले virtual repository में उपयोग किया जाता है
यदि नहीं, तो उच्चतम version का उपयोग किया जाता है
इसलिए, यदि remote repository की प्राथमिकता उच्च या समान है, तो एक सार्वजनिक package registry में उच्चतम version (dependency confusion) का दुरुपयोग करना संभव है
यह तकनीक persistence और unauthenticated access के लिए उपयोगी हो सकती है क्योंकि इसे दुरुपयोग करने के लिए केवल Artifact Registry में संग्रहीत एक लाइब्रेरी का नाम जानना आवश्यक है और सार्वजनिक repository (उदाहरण के लिए python के लिए PyPi) में उसी लाइब्रेरी को उच्चतर version के साथ बनाना आवश्यक है।
persistence के लिए आपको निम्नलिखित चरणों का पालन करना होगा:
आवश्यकताएँ: एक virtual repository का अस्तित्व होना चाहिए और इसका उपयोग किया जाना चाहिए, एक internal package जिसका नाम सार्वजनिक repository में मौजूद नहीं है, का उपयोग किया जाना चाहिए।
यदि यह मौजूद नहीं है तो एक remote repository बनाएं
remote repository को virtual repository में जोड़ें
virtual registry की नीतियों को संपादित करें ताकि remote repository को उच्चतर प्राथमिकता (या समान) दी जा सके। कुछ ऐसा चलाएं:
वैध package डाउनलोड करें, अपने दुर्भावनापूर्ण कोड को जोड़ें और इसे उसी version के साथ सार्वजनिक repository में पंजीकृत करें। हर बार जब एक developer इसे स्थापित करता है, तो वह आपका स्थापित करेगा!
Dependency confusion के बारे में अधिक जानकारी के लिए देखें:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)