
CVE-2021-26700 के लिए VS Code npm एक्सटेंशन में शैक्षिक RCE शोषण, दुर्भावनापूर्ण package.json निष्पादन के माध्यम से Caldera C2 सर्वर पर DNS सुरंग का प्रदर्शन।
(नोट: यह मैनुअल केवल DSNS लैब के सदस्यों के लिए मान्य है।)
यह एक रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता है जो Visual Studio Code (VS Code) के npm नामक एक एक्सटेंशन में मौजूद थी, जिसे Microsoft द्वारा विकसित किया गया था और इसका उद्देश्य package.json फ़ाइल में परिभाषित npm स्क्रिप्ट को चलाने में सहायता करना था।
इस भेद्यता का शोषण करने के लिए, हमलावर अपने सार्वजनिक GitHub रिपॉजिटरी में फ़ाइलों में छिपी कुछ दुर्भावनापूर्ण स्क्रिप्ट अपलोड कर सकता है, जिसमें npm एक्सटेंशन द्वारा उपयोग किए जाने वाले कॉन्फ़िगरेशन में मामूली समायोजन होता है। यदि कोई इस रिपॉजिटरी को डाउनलोड करता है और इसे VS Code वातावरण में खोलता है जिसमें निर्दिष्ट एक्सटेंशन स्थापित है, तो जैसे ही वह package.json फ़ाइल देखता है, दुर्भावनापूर्ण स्क्रिप्ट निष्पादित हो जाएगी। मेरे परिदृश्य में, दुर्भावनापूर्ण स्क्रिप्ट calc.bat नामक एक बैच फ़ाइल है और यह deployagent.ps1 प्रोग्राम को निष्पादित करेगी, जो फिर http://192.168.1.29:8888 पर DSNS लैब के Caldera सर्वर के लिए DNS टनलिंग स्थापित करेगी।
चूंकि यह CVE 2021 में पाया गया था और Microsoft टीम ने बाद के संस्करणों में इसे ठीक कर दिया था, हमें npm एक्सटेंशन का एक पुराना संस्करण ([v0.3.13](https://eg2.gallery.vsassets.io/_apis/public/gallery/publisher/eg2/extension/vscode-npm- script/0.3.13/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage)) डाउनलोड करने का एक तरीका खोजने की आवश्यकता है। इसके बजाय, मैंने इसे सुविधा के लिए GitHub पर शामिल किया है। विंडोज पर VS Code स्थापित करने के लिए एक स्क्रिप्ट भी शामिल है।
विंडोज सिस्टम पर (जैसे DSNS लैब में APT3), इस रिपॉजिटरी को प्राप्त करने के लिए कमांड चलाएँ
git clone https://github.com/jason-ntu/CVE-2021-26700.git
(आप GUI के माध्यम से भी रिपॉजिटरी को डाउनलोड और एक्सट्रैक्ट कर सकते हैं)। निम्नलिखित चरणों को रिपॉजिटरी के अंदर (अर्थात क्लोन किए गए CVE-2021-26700 निर्देशिका) निष्पादित किया जाना माना जाता है।
विंडोज पर VS Code स्थापित करने के लिए, .\install-vscode.bat चलाएँ
VS Code के settings.json में निम्नलिखित कॉन्फ़िगरेशन जोड़कर code कमांड को VS Code खोलने के शॉर्टकट के रूप में सेट करें।
npm एक्सटेंशन के आवश्यक संस्करण को स्थापित करने के लिए, .\install-extension.bat चलाएँ
CVE का शोषण करने के लिए, आपको VS Code में रिपॉजिटरी खोलनी होगी और package.json फ़ाइल देखनी होगी। कुछ सेकंड प्रतीक्षा करने के बाद, http://192.168.1.29:8888 पर Caldera से पीड़ित के लिए एक DNS कनेक्शन स्थापित हो जाना चाहिए। RCE हो गया है!
संदर्भ: jackadamson का github