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