
Windows विशेषाधिकार वृद्धि, गलत कॉन्फ़िगर किए गए ACLs, सेवाओं, निर्धारित कार्यों और कमजोर ड्राइवरों की आक्रामक खोज के लिए क्यूरेटेड SIEM क्वेरीज़ और तकनीकें।
SIEM को एक आक्रामक खोज उपकरण के रूप में उपयोग करने की व्यावहारिक तकनीकें, जो रक्षकों को हमलावरों की तरह सोचने में मदद करती हैं ताकि भीतर से सुरक्षा को मजबूत किया जा सके।
ऊपर देखें - queries.md फ़ाइल।
आवश्यकता पड़ने पर इसे अद्यतन किया जाता रहेगा। विचार यह है कि विभिन्न event.codes/event.providers का उपयोग करके परत दर परत कवरेज प्राप्त की जाए।
भेद्यता प्रबंधन के लिए क्वेरीज़ फ़ाइल में: vulnerabilitymanagement.md
हमें आशा है कि आपको प्रस्तुति पसंद आई होगी। यदि आपको (मैं कहूंगा जब आपको) इस विधि का उपयोग करके भेद्यताएं मिलें तो हमें पिंग करें। "आपकी एक क्वेरी ने अच्छी चीज़ें पकड़ीं" जैसा एक साधारण संदेश.. पर्याप्त से अधिक है :) इसे ping.md फ़ाइल में कमिट करके करें या वैकल्पिक तरीकों से हमसे संपर्क करें! हमें आपकी सफलता साझा करने में खुशी होगी!
यह रेपो आपको आक्रामक मानसिकता रखने में सहायता करेगा। रेपो उस सामग्री और क्वेरीज़ को साझा करने के लिए है जिनके बारे में हमने अपनी प्रस्तुति में बात की थी:
SEC-T सितंबर 2025 ⭐ https://www.youtube.com/watch?v=5nfL_4ek4dY
x33fcon अद्यतन टॉक जून 2026 जिसमें कुछ नए क्षेत्रों को शामिल किया गया है ⭐ https://youtu.be/dD_7AdEoj0k?is=CMp22Q9evBcqZe7L
हमने सबसे रोचक ACL संबंधित भागों को शामिल किया है और टिप्स एवं ट्रिक्स दिए हैं।
Windows स्थानीय विशेषाधिकार उन्नयन और Windows एंडपॉइंट गलत कॉन्फ़िगरेशन के बारे में उत्कृष्ट वेबिनार देखें जो आपको आगे सहायता करेंगे। देखने के लिए और भी क्षेत्र हैं.. यह केवल शुरुआती बिंदु है। यदि आप अन्य क्षेत्रों में अच्छी क्वेरीज़ बनाते हैं - तो कृपया इसे हमारे साथ साझा करें ताकि समुदाय में अधिक लोग उनका उपयोग कर सकें।
⭐ चिह्न वाली क्वेरीज़ अतिरिक्त रूप से अत्यधिक प्रासंगिक हैं। नीचे दिए गए ⭐ चिह्न वाले विषय वास्तव में अच्छी सामग्री हैं।
अवश्य देखें, विशेष रूप से बाइनरीज़, सेवाओं और शेड्यूल कार्यों के लिए ACL।
विषय 2 (असुरक्षित रूप से इंस्टॉल/कॉन्फ़ किया गया सॉफ़्टवेयर) और विषय 5 (असुरक्षित सेवाएं और कार्य)
SYSMON से event.code 1 या event.code 4688 (या सेवाओं, शेड्यूल कार्यों, C-root उपफ़ोल्डरों से DLL लोड के लिए event.codes) का उपयोग करके प्रोसेस क्रिएशन क्वेरी बनाएं C:\ रूट ड्राइव में इंस्टॉल किए गए एप्लिकेशन खोजें
C:\myapplication\myapplication.exe
C:\myapp\subfolder\myapp.exe
C:\SoftwareCompany\software.exe
C:\myapplication\myapplication.dll
C:\myapp\subfolder\myapp.dll
C:\SoftwareCompany\software.dll
C-root फ़ोल्डर में इंस्टॉल किए गए एप्लिकेशन के साथ समस्या यह है कि इसमें डिफ़ॉल्ट रूप से गलत ACL अनुमतियाँ होती हैं जो Authenticated Users को फ़ोल्डर और संभवतः इसकी फ़ाइलों को संशोधित (M) करने की अनुमति देती हैं। यदि सॉफ़्टवेयर इंस्टॉलेशन इंस्टॉलेशन प्रक्रिया में ACL को ठीक नहीं करता है तो संभवतः विशेषाधिकार उन्नयन होगा (इसकी पुष्टि करें) यदि कोई सेवा या अन्य उच्च विशेषाधिकार प्राप्त प्रोसेस C-roots उपफ़ोल्डर में किसी इंस्टॉलेशन पथ से स्पॉन कर रहा है (उदा. myapplication.exe या myapp.exe)।
आपको एक विचार देता है कि कौन से इवेंट कोड का उपयोग करना है और इवेंट कोड में ही आप क्या देखेंगे।
सेवा सुरक्षा डिस्क्रिप्टर रजिस्ट्री में सादे SDDL के रूप में संग्रहीत नहीं होते हैं। रजिस्ट्री केवल Security उपकुंजी को बाइनरी प्रारूप में दिखाती है जब:
अन्यथा: डिस्क्रिप्टर Windows में हार्डकोड किए गए अंतर्निहित डिफ़ॉल्ट से गणना की जाती है।
उस कुंजी के अंदर, आपको Security नाम का एक मान मिलेगा जो सेवा के लिए SDDL का बाइनरी प्रारूप दिखाता है जहाँ आप सेवा पर ही गलत कॉन्फ़िगर किए गए ACL को खोज सकते हैं। उन्हें एक अच्छी तरह से कॉन्फ़िगर किए गए Sysmon के साथ लॉग करें।
आपको एक विचार देता है कि कौन से इवेंट कोड का उपयोग करना है और इवेंट कोड में ही आप क्या देखेंगे।
UserId जहाँ S-1-5-18 SYSTEM उपयोगकर्ता के लिए है।
GroupId जहाँ S-1-5-32-544 स्थानीय Administrators समूह के लिए है।
RunLevel जहाँ HighestAvailable निर्दिष्ट उपयोगकर्ता के लिए उच्चतम संभव विशेषाधिकार के रूप में कार्य चलाएगा। LeastPrivilege कार्य को निचले सेट विशेषाधिकार (Medium integrity) के रूप में चलाएगा लेकिन यदि उपयोगकर्ता Administrator है, तो UAC bypass आपको विशेषाधिकार बढ़ाने में मदद करेगा।
अधिक संदर्भ के लिए event.code 4698 में winlog.event_data.TaskContent जांचें जिसमें शेड्यूल किए गए कार्य की लगभग अधिकांश XML परिभाषा होती है, और यह आपको इसका संदर्भ देती है
Microsoft को क्या करना चाहिए वह है event code 4698 में <SecurityDescriptor> तत्व जोड़ना। शेड्यूल किए गए कार्य को मैन्युअल रूप से निर्यात करने पर आपको निर्यातित XML में SecurityDescriptor मान मिलता है लेकिन हमेशा इवेंट कोड में ही नहीं।
"SecurityDescriptor इवेंट में शामिल होता है, लेकिन यह केवल इवेंट 4700 और 4701 (Task Enabled/Disabled) में पार्स और दृश्यमान होता है, और 4698 (Task Created) में शायद ही कभी मौजूद होता है।"
उस कुंजी के अंदर, आपको SD नाम का एक मान मिलेगा जो शेड्यूल किए गए कार्य के लिए SDDL का बाइनरी प्रारूप दिखाता है जहाँ आप कार्य पर ही गलत कॉन्फ़िगर किए गए ACL को खोज सकते हैं। उन्हें एक अच्छी तरह से कॉन्फ़िगर किए गए Sysmon के साथ लॉग करें।
यहाँ एक उत्कृष्ट टॉक है जो .sys फ़ाइलों और Bring Your Own Vulnerable Driver (BYOVD) तकनीकों का उपयोग करके विशेषाधिकार उन्नयन का वर्णन करती है।
टॉक का सारांश दिखाता है कि snowagent.exe C:\Windows\Temp\cpuz143\cpuz143_x64.sys में sys-फ़ाइलें ड्रॉप करता है और CVE-2021-21551 के लिए भेद्य ड्राइवर का उपयोग करके स्थानीय विशेषाधिकार उन्नयन करता है।
OpenSSL DLL (legacy) जब संकलित किया जाता है यदि --openssldir पैरामीटर निर्दिष्ट नहीं है तो यह डिफ़ॉल्ट रूप से /usr/local/ssl पर जाता है जिसे Windows में c:/usr/local/ssl में अनुवादित किया जाता है, जो एक सामान्य पथ है जहाँ cnf खोजा जाएगा। यह प्रमाणपत्रों/कुंजियों के लिए डिफ़ॉल्ट सेट करता है और क्रिप्टो इंजन या प्रदाताओं को लोड/कॉन्फ़िगर भी कर सकता है। Windows पर, यह एक इंजन/प्रदाता DLL को संदर्भित कर सकता है ताकि OpenSSL अतिरिक्त क्रिप्टोग्राफिक मॉड्यूल का उपयोग कर सके। यही वह चीज़ है जिसका हम दुरुपयोग कर सकते हैं और इसे "दुर्भावनापूर्ण" dll की ओर इंगित कर सकते हैं। जब कोई एप्लिकेशन OpenSSL को प्रारंभ करता है — तो उसे कॉन्फ़िग फ़ाइल को संसाधित करने के लिए स्पष्ट रूप से OPENSSL_config(NULL) या CONF_modules_load_file(...) कॉल करना होता है। यदि यह नहीं करता है, तो openssl.cnf से आपका इंजन DLL (दुर्भावनापूर्ण) लोड नहीं होगा।
अन्य सामान्य पथ जहाँ एप्लिकेशन openssl.cnf खोज सकते हैं वे हैं c:\etc\ssl\ या अन्य कस्टम उपयोगकर्ता-लेखन योग्य पथ।
openssl.cnf OpenSSL को क्रिप्टो इंजन के रूप में कस्टम DLL लोड करने का निर्देश दे सकता है:```
openssl_conf = openssl_init
[openssl_init] engines = engine_section
[engine_section] dynamic = dynamic_section
[dynamic_section] SO_PATH = C:\path\to\evil.dll LOAD = EMPTY init = 0
**एक व्यावहारिक मानसिक मॉडल यह है:**
प्रक्रिया libeay32.dll लोड करती है
→ प्रक्रिया OPENSSL_config(NULL) कॉल करती है
→ OpenSSL openssl.cnf पढ़ता है
→ engine अनुभाग एक निर्दिष्ट dll लोड प्रयास का कारण बनता है
→ Windows लोडर dll और उसकी निर्भरताओं को स्वीकार करता है
***यदि कोई भी चरण अनुपस्थित है, तो आपकी DLL लोड नहीं होगी।***
डिबगिंग के दौरान उपयोग किया जा सकने वाला एक न्यूनतम नियम:
यदि प्रक्रिया केवल libeay32.dll लोड करती है, तो यह पर्याप्त नहीं है।
इसे OpenSSL config लोडिंग भी कॉल करनी चाहिए और इसे अक्षम नहीं करना चाहिए।
- काम करने के लिए इसे OPENSSL_config कॉल करना चाहिए या
- CONF_modules_load_file या
- OPENSSL_no_config सेट नहीं है।
कोई हस्ताक्षर जाँच नहीं। कोई सत्यापन नहीं। निर्दिष्ट कोई भी DLL लोड हो जाती है, यदि प्रक्रिया OPENSSL_config कॉल करती है।
हम OpenSSL से संबंधित सामान्य DLL नामों के लिए क्वेरी कर सकते हैं ताकि परीक्षण के लिए संभावित अनुप्रयोगों की गणना की जा सके। हम DLLs के OPENSSLDIR की जाँच करना चाहते हैं और यह कि क्या प्रक्रिया OpenSSL_conf कॉल कर रही है।
हम इस रेपो में सूची के विरुद्ध फ़ाइल हैश की जाँच करके OpenSSLDIR की जाँच कर सकते हैं, या क्रिप्टो संबंधित dll की एक प्रति प्राप्त कर सकते हैं और क्रिप्टोडल (libeay32.dll आदि) पर openssldir_check चला सकते हैं।
हम यह जाँचने के लिए ProcMon का भी उपयोग कर सकते हैं कि क्या प्रक्रिया कोई openssl.cnf कॉल करती है। यदि हम procmon में openssl.cnf देखते हैं तो हम निश्चित रूप से जानते हैं कि अनुप्रयोग इसे कॉल करता है। अन्य विधियों में हम जो प्राप्त करना चाहते हैं वह है संस्करण जानकारी (event.code 7 के फ़ील्ड में) और यह कि यह किस पथ से openssl.cnf फ़ाइल लोड करता है, इस रेपो में सूची के विरुद्ध फ़ाइल हैश की जाँच करके, उसी DLL की एक प्रति प्राप्त करके और मैन्युअल जाँच करके।
**openssldir_check.exe चलाते समय उदाहरण**
`openssldir_check32.exe libeay32.dll`
`openssldir_check v1.0 by 0xm1rch`
**आउटपुट:**
`SSLeay_version() returned OpenSSL 1.0.1g 7 Apr 2014`
`SSLeay_version() returned OPENSSLDIR: "/usr/local/ssl"`
- ref https://github.com/mirchr/openssldir_check
> कस्टम संशोधित openssldir_check के साथ समान आउटपुट जो इस रेपो में पूर्व-संकलित है।
> आउटपुट OpenSSL संस्करण 1.0.1g देता है और यह कि OpenSSLDIR **/usr/local/ssl** पर सेट है जो **अत्यधिक रोचक है!**
> **Sysmon event.code 7** आपको लोड की गई OpenSSL DLLs और file.pe.file_version फ़ील्ड में dll के लिए संस्करण जानकारी भी देता है।
#### एस्केलेशन परिदृश्य
1. एक सेवा **SYSTEM** के रूप में चलती है और OpenSSL का उपयोग करती है
2. OpenSSL DLL openssl_conf कॉल करती है और स्टार्टअप पर `C:\usr\local\ssl\openssl.cnf` पढ़ती है लेकिन वह फ़ाइल संपादन योग्य है या अनुपस्थित है
3. यदि एक निम्न विशेषाधिकार प्राप्त उपयोगकर्ता उस फ़ोल्डर में लिख सकता है तो वे कर सकते हैं:
- एक दुर्भावनापूर्ण `openssl.cnf` ड्रॉप करें
- अपनी DLL ड्रॉप करें
- सेवा पुनः आरंभ होने की प्रतीक्षा करें
- कोड **SYSTEM** के रूप में निष्पादित होता है
> परिणाम: एक openssl.cnf लगाकर स्थानीय विशेषाधिकार एस्केलेशन जिसे अनुप्रयोग की openssl dll लोड करती है और एक कस्टम "दुर्भावनापूर्ण" dll लोड करने पर समाप्त होती है।
### NSIS इंस्टॉलर/अनइंस्टॉलर भेद्यता
NSIS एक व्यापक रूप से उपयोग किया जाने वाला Windows इंस्टॉलर फ्रेमवर्क है। यहाँ वर्णित समस्या यह है कि, जब एक NSIS इंस्टॉलर या अनइंस्टॉलर उन्नत विशेषाधिकारों के साथ चलता है, तो यह C:\Windows\Temp के अंतर्गत अस्थायी निर्देशिकाओं का उपयोग इस तरह कर सकता है कि एक सामान्य स्थानीय उपयोगकर्ता इसमें हस्तक्षेप कर सके।
व्यवहार में, इसका मतलब है कि एक निम्न-विशेषाधिकार प्राप्त हमलावर उन फ़ाइलों पर नियंत्रण ले सकता है जिन पर इंस्टॉलर भरोसा करता है, जैसे अस्थायी प्लगइन फ़ाइलें या अनइंस्टॉलर फ़ाइलें, और इसे SYSTEM के रूप में कोड निष्पादन में बदल सकता है। दूसरे शब्दों में, कमज़ोरी "इंस्टॉलर व्यवस्थापक के रूप में चलता है" नहीं है, बल्कि यह है कि इंस्टॉलर की अस्थायी-फ़ाइल हैंडलिंग एक गैर-विशेषाधिकार प्राप्त उपयोगकर्ता को एक उन्नत इंस्टॉल या अनइंस्टॉल प्रवाह को हाईजैक करने दे सकती है
#### NSIS इंस्टॉलर में देखी जाने वाली सामान्य DLLs
> नोट: इनमें से कुछ **आधिकारिक NSIS प्लगइन** हैं, जबकि अन्य **सामान्य तृतीय-पक्ष प्लगइन** हैं जो अक्सर NSIS इंस्टॉलर द्वारा उपयोग किए जाते हैं।
> इनमें से किसी एक DLL को देखना एक सुराग है, लेकिन पूर्ण प्रमाण नहीं, कि एक इंस्टॉलर NSIS का उपयोग करता है। `C:\Windows\Temp\*.tmp\*.dll` का फ़ाइल पथ एक मजबूत संकेत है।
| DLL | सामान्य उद्देश्य | प्रकार | नोट्स |
|---|---|---|---|
| `System.dll` | NSIS स्क्रिप्ट से Win32 APIs और बाहरी DLL फ़ंक्शन कॉल करता है | आधिकारिक NSIS प्लगइन | NSIS के सबसे मजबूत संकेतकों में से एक |
| `nsDialogs.dll` | कस्टम इंस्टॉलर डायलॉग और नियंत्रण बनाता है | आधिकारिक NSIS प्लगइन | आधुनिक NSIS इंस्टॉलर में सामान्य |
| `nsExec.dll` | कंसोल कमांड निष्पादित करता है और आउटपुट कैप्चर करता है | आधिकारिक NSIS प्लगइन | अक्सर साइलेंट हेल्पर कमांड के लिए उपयोग किया जाता है |
| `StartMenu.dll` | उपयोगकर्ता को Start Menu फ़ोल्डर चुनने देता है | आधिकारिक NSIS प्लगइन | क्लासिक इंस्टॉलर में सामान्य |
| `LangDLL.dll` | भाषा चयन डायलॉग प्रदर्शित करता है | आधिकारिक NSIS प्लगइन | अक्सर बहुभाषी इंस्टॉलर में दिखाई देता है |
| `Banner.dll` | इंस्टॉल चरणों के दौरान बैनर/प्रगति UI दिखाता है | आधिकारिक NSIS प्लगइन | अधिकतर कॉस्मेटिक |
| `InstallOptions.dll` | INI परिभाषाओं से पुरानी-शैली के कस्टम पृष्ठ बनाता है | आधिकारिक NSIS प्लगइन | काफी हद तक `nsDialogs.dll` द्वारा प्रतिस्थापित |
| `UserInfo.dll` | वर्तमान उपयोगकर्ता/खाते के बारे में जानकारी प्राप्त करता है | आधिकारिक NSIS प्लगइन | विशेषाधिकार या खाता जाँच के लिए उपयोग किया जाता है |
| `Dialer.dll` | डायल-अप/नेटवर्क कनेक्शन व्यवहार प्रबंधित करता है | आधिकारिक NSIS प्लगइन | अधिकतर लीगेसी |
| `Math.dll` | NSIS स्क्रिप्ट के लिए अंकगणितीय सहायक प्रदान करता है | आधिकारिक NSIS प्लगइन | नई स्क्रिप्ट में कम सामान्य रूप से आवश्यक |
| `NSISdl.dll` | इंटरनेट से फ़ाइलें डाउनलोड करता है | आधिकारिक NSIS प्लगइन | पुराना डाउनलोड प्लगइन; अक्सर `inetc.dll` द्वारा प्रतिस्थापित |
| `Splash.dll` | स्प्लैश स्क्रीन दिखाता है | आधिकारिक NSIS प्लगइन | अधिकतर लीगेसी/कॉस्मेटिक |
| `AdvSplash.dll` | अधिक उन्नत स्प्लैश स्क्रीन दिखाता है | सामान्य NSIS प्लगइन | `Splash.dll` के समान भूमिका |
| `BgImage.dll` | इंस्टॉलर UI में पृष्ठभूमि छवि प्रदर्शित करता है | आधिकारिक / सामान्य NSIS प्लगइन | अधिकतर कॉस्मेटिक |
| `inetc.dll` | HTTP/FTP पर फ़ाइलें डाउनलोड करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | वेब इंस्टॉलर में बहुत सामान्य |
| `InetLoad.dll` | इंटरनेट से फ़ाइलें डाउनलोड करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | `NSISdl.dll` / `inetc.dll` का विकल्प |
| `UAC.dll` | एलिवेशन और UAC-संबंधित व्यवहार संभालता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | मजबूत NSIS-संबंधित सुराग |
| `AccessControl.dll` | फ़ाइल/फ़ोल्डर ACLs और अनुमतियाँ बदलता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | व्यवस्थापक-संवेदनशील इंस्टॉल में उपयोग किया जाता है |
| `Registry.dll` | उन्नत Windows Registry संचालन | सामान्य तृतीय-पक्ष NSIS प्लगइन | कुछ मामलों में अंतर्निहित रजिस्ट्री कमांड से अधिक सक्षम |
| `ShellLink.dll` | Windows शॉर्टकट (`.lnk`) फ़ाइलें बनाता या संपादित करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | शॉर्टकट प्रबंधन सहायक |
| `SimpleFC.dll` | फ़ाइलों की तुलना करता है या फ़ाइल अंतर की जाँच करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | उपयोगिता/सहायक प्लगइन |
| `FindProcDLL.dll` | पता लगाता है कि कोई प्रक्रिया चल रही है या नहीं | सामान्य तृतीय-पक्ष NSIS प्लगइन | अक्सर अपग्रेड से पहले उपयोग किया जाता है |
| `KillProcDLL.dll` | चल रही प्रक्रियाओं को समाप्त करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | अनइंस्टॉलर/अपडेटर में सामान्य |
| `NScurl.dll` | curl-शैली कार्यक्षमता का उपयोग करके डेटा डाउनलोड/स्थानांतरित करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | नया/अधिक सक्षम नेटवर्क सहायक |
| `ZipDLL.dll` | ZIP संग्रह निष्कर्षण या निर्माण संभालता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | संग्रह उपयोगिता |
| `unzipdll.dll` | ZIP संग्रह निकालता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | पुराना संग्रह प्लगइन |
| `untgz.dll` | `.tar.gz` संग्रह निकालता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | कम सामान्य, लेकिन कुछ पैकेजों में देखा जाता है |
| `VPatch.dll` | बाइनरी पैच/अपडेट लागू करता है | सामान्य NSIS-संबंधित प्लगइन | अक्सर पैच इंस्टॉलर में उपयोग किया जाता है |
| `CabDLL.dll` | CAB संग्रह के साथ काम करता है | सामान्य NSIS-संबंधित प्लगइन | अधिकतर पुराने पैकेजिंग वर्कफ़्लो में देखा जाता है |
| `nsJSON.dll` | JSON डेटा पार्स या उत्पन्न करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | आधुनिक स्क्रिप्टेड इंस्टॉलर में अधिक सामान्य |
| `StdUtils.dll` | NSIS के लिए सामान्य-उद्देश्य सहायक उपयोगिताएँ | सामान्य तृतीय-पक्ष NSIS प्लगइन | अक्सर OS/संस्करण/पथ सहायकों के लिए उपयोग किया जाता है |
| `ExecDos.dll` | I/O और प्रतीक्षा पर बेहतर नियंत्रण के साथ कमांड निष्पादित करता है | सामान्य तृतीय-पक्ष NSIS प्लगइन | `nsExec.dll` का विकल्प/विस्तार |
#### मजबूत NSIS संकेतक
निम्नलिखित DLLs विशेष रूप से NSIS का सुझाव देती हैं:
- `System.dll`
- `nsDialogs.dll`
- `nsExec.dll`
- `LangDLL.dll`
- `StartMenu.dll`
- `NSISdl.dll`
- `inetc.dll`
- `UAC.dll`
#### सावधानी
कुछ इंस्टॉलर इन DLLs को अस्थायी रूप से इस तरह के फ़ोल्डर में निकालते हैं:
- `$PLUGINSDIR`
इसलिए वे केवल रनटाइम पर दिखाई दे सकती हैं, डिस्क पर इंस्टॉलर निष्पादन योग्य के बगल में नहीं।
### DotLocal रीडायरेक्शन भेद्यताएँ
**DotLocal रीडायरेक्शन दुरुपयोग एक Windows DLL हाईजैकिंग समस्या है जहाँ एक लिखने योग्य ऐप फ़ोल्डर एक हमलावर को एक वैध प्रोग्राम को पहले एक दुर्भावनापूर्ण DLL लोड करने के लिए धोखा देने देता है**
DotLocal रीडायरेक्शन भेद्यता Windows की अंतर्निहित .local / DotLocal DLL रीडायरेक्शन सुविधा का दुरुपयोग करती है। Windows App.exe.local जैसे नाम वाली फ़ाइल या फ़ोल्डर का सम्मान करके DLL रीडायरेक्शन का समर्थन करता है; जब मौजूद होता है, तो लोडर DLLs के लिए पहले निष्पादन योग्य के फ़ोल्डर या उस .local फ़ोल्डर की जाँच करता है, और यह तब भी लागू हो सकता है जब पूर्ण DLL पथ निर्दिष्ट किया गया हो। Microsoft इसे DLL लोड को रीडायरेक्ट करने के लिए एक वैध सुविधा के रूप में प्रलेखित करता है।
यह भेद्यता क्यों बन जाती है: यदि एक हमलावर निष्पादन योग्य की निर्देशिका में (उपयोगकर्ता लिखने योग्य पथ), या एक विशेषाधिकार प्राप्त प्रक्रिया द्वारा उपयोग की जाने वाली अस्थायी निष्कर्षण निर्देशिका में लिख सकता है, तो वे Target.exe.local फ़ोल्डर बना सकते हैं और एक दुर्भावनापूर्ण DLL रख सकते हैं जहाँ Windows इसे प्राथमिकता देगा। यह सुविधा को DLL हाईजैकिंग में बदल देता है, इसलिए विश्वसनीय प्रक्रिया इच्छित लाइब्रेरी के बजाय हमलावर लाइब्रेरी लोड करती है।
#### मैन्युअल नियंत्रण
विश्व-लिखने योग्य पथों में पहचानी गई उच्च विशेषाधिकार प्राप्त प्रक्रियाओं की जाँच की जानी चाहिए कि क्या वे DotLocal रीडायरेक्शन के प्रति भेद्य हैं। यदि आप उनके लिए क्वेरी करते हैं और अनुप्रयोग पाते हैं। यह देखने के लिए ProcMon का उपयोग करके अंतिम नियंत्रण करें कि क्या प्रक्रिया बनाए गए .exe.local फ़ोल्डर से लाइब्रेरी लोड करने का प्रयास करती है। पूर्ण फ़ाइल पथ निर्धारित करने के लिए आप GetSxsPath टूल का उपयोग कर सकते हैं। यदि यह भेद्य है तो Procmon आपको .exe.local निर्देशिका की ओर इशारा करते हुए NAME NOT FOUND / PATH NOT FOUND इवेंट दिखाना चाहिए। सार्वजनिक रिपोर्टों के आधार पर स्थापना प्रक्रिया के दौरान अनुप्रयोग विशेष रूप से भेद्य होते हैं।
**एक अच्छा नियम है:**
ProcMon .local प्रोबिंग का प्रमाण प्रदान कर सकता है, लेकिन दृश्यमान .exe.local मिस की अनुपस्थिति यह साबित नहीं करती कि ऐप अतिसंवेदनशील नहीं है। विशेष रूप से comctl32.dll के लिए, ट्रेस अक्सर सरल ऐप-फ़ोल्डर DLL खोज के बजाय manifest/SxS बाइंडिंग को दर्शाता है।
#### यदि कोई प्रोग्राम लोड करता है:
`C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\comctl32.dll`
#### यह जाँचें:
`C:\Path\To\Application.exe.local\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\comctl32.dll`
**SxS DotLocal DLL हाईजैकिंग के लिए रीडायरेक्शन पथ निर्धारित करें** - https://gist.github.com/rxwx/1717e95e5ec11bea12d33e93a3832508
#### DotLocal Wiz इंस्टॉलर
**WiX Burn EXE बूटस्ट्रैपर** प्रभावित संस्करण >= 4, < 4.0.4 < 3.14.0। यह WiX इंस्टॉलर फ्रेमवर्क के साथ बनाए गए किसी भी इंस्टॉलर को प्रभावित करता है।
WiX लेखकों को डिफ़ॉल्ट आइकन बदलने और स्टॉक WixStdBA UI या कस्टम बूटस्ट्रैपर एप्लिकेशन का उपयोग करने की भी अनुमति देता है, इसलिए EXE को "WiX" के बजाय विक्रेता जैसा दिखने के लिए ब्रांड किया जा सकता है
##### विवरण
यदि बंडल व्यवस्थापक के रूप में नहीं चलाया जाता है, तो उपयोगकर्ता का TEMP फ़ोल्डर उपयोग किया जाता है न कि सिस्टम TEMP फ़ोल्डर। एक उपयोगिता उपयोगकर्ता के TEMP फ़ोल्डर में परिवर्तनों की निगरानी करने और .be फ़ोल्डर बनाए जाते ही अपनी DLL को .be/.Local फ़ोल्डर में ड्रॉप करने में सक्षम है। जब बर्न इंजन उन्नत होता है, तो दुर्भावनापूर्ण DLL उन्नत विशेषाधिकार प्राप्त करती है।
> **Ref** https://github.com/wixtoolset/issues/security/advisories/GHSA-7wh2-wxc7-9ph5
"एक अलग wixstdba.exe प्रक्रिया एक अच्छा WiX Burn फिंगरप्रिंट है, लेकिन प्रभावित संस्करणों के लिए सबसे मजबूत संकेतक बर्न इंजन संस्करण ही है: भेद्य यदि यह <3.14.0 या 4.0.0–4.0.3 के रूप में पहचानता है।"
## पूर्वापेक्षाएँ
रुचि के इवेंट पकड़ने के लिए अच्छी तरह से कॉन्फ़िगर किया गया SYSMON कॉन्फ़िग, जैसे User-writable पथों और उल्लिखित रजिस्ट्री हाइव्स के लिए event.code 1, 7, 11 और 13।
- https://github.com/SwiftOnSecurity/sysmon-config
- https://github.com/olafhartong/sysmon-modular
कुछ Windows इवेंट के लिए Advanced auditing सक्षम।
Event ID 4688 (प्रक्रिया निर्माण) को नव निर्मित प्रक्रियाओं को लॉग करने के लिए स्पष्ट रूप से सक्षम किया जाना चाहिए।
डिफ़ॉल्ट रूप से, यह प्रक्रिया शुरू करने के लिए उपयोग की गई कमांड लाइन को कैप्चर नहीं करता है; यह सुविधा सुरक्षा नीति में विशेष रूप से सक्षम की जानी चाहिए।
Scheduled task - 4698 डिफ़ॉल्ट रूप से सक्षम नहीं है।
## ACL ⭐
### 🔹 लॉग-इन उपयोगकर्ताओं को कवर करने वाले कुछ सामान्य ACL प्रिंसिपल
| प्रिंसिपल | विवरण |
|--------------------------|-----------------------------------------------------------------------------|
| **Everyone** | सभी उपयोगकर्ता, Guests सहित (और पुराने Windows संस्करणों में, Anonymous Logon भी)। बहुत व्यापक, आमतौर पर पढ़ने की पहुँच तक सीमित। |
| **Authenticated Users** | कोई भी खाता जिसने सफलतापूर्वक लॉग इन किया है (स्थानीय या डोमेन)। अनाम उपयोगकर्ताओं को छोड़कर। |
| **BUILTIN\Users** | मशीन पर स्थानीय **Users** समूह। सभी मानक (गैर-व्यवस्थापक) स्थानीय खाते शामिल हैं। |
| **INTERACTIVE** | कोई भी उपयोगकर्ता जो **स्थानीय रूप से कंसोल पर** लॉग इन है (कीबोर्ड/सत्र)। स्थानीय बनाम दूरस्थ पहुँच को अलग करने के लिए उपयोगी। |
| **COMPUTERNAME\\Username** | उस कंप्यूटर पर एक विशिष्ट **स्थानीय खाता** (जैसे, `LAPTOP01\Bob`)। अनुमतियाँ केवल तब लागू होती हैं जब वह उपयोगकर्ता स्थानीय रूप से लॉग ऑन करता है। |
| **DOMAIN\\Username** | एक विशिष्ट **डोमेन खाता** (जैसे, `CORP\Alice`)। अनुमतियाँ सभी डोमेन-जुड़े मशीनों पर उपयोगकर्ता का अनुसरण करती हैं। |
### 📑 ACL विशेषताएँ (देखने के लिए कुछ रोचक)
Access Control List (ACL) विशेषताएँ परिभाषित करती हैं कि एक उपयोगकर्ता या समूह फ़ाइलों या फ़ोल्डरों पर कौन सी क्रियाएँ कर सकता है।
यहाँ कुछ प्रमुख हैं जो ध्यान देने योग्य हैं:
| विशेषता | नाम / अर्थ | यह रोचक क्यों है |
|-----------|--------------------------|--------------------------------------------------------------------------------------|
| **F** | पूर्ण पहुँच | **सभी संभावित अधिकार** प्रदान करता है (पढ़ना, लिखना, निष्पादित करना, हटाना, अनुमतियाँ बदलना, स्वामित्व लेना)। "स्वामी-स्तर" नियंत्रण के बराबर। |
| **M** | संशोधन पहुँच | फ़ाइलों/फ़ोल्डरों को पढ़ने, लिखने और हटाने की अनुमति देता है, लेकिन **ACLs या स्वामित्व बदलने की नहीं**। नियमित उपयोगकर्ताओं के लिए सबसे सामान्य। |
| **W** | केवल-लिखने की पहुँच | उपयोगकर्ता **सामग्री बना या संशोधित कर** सकता है लेकिन इसे वापस नहीं पढ़ सकता। दुर्लभ, लेकिन "ड्रॉप बॉक्स" परिदृश्यों में उपयोगी (जैसे, सुरक्षित फ़ाइल सबमिशन)। |
| **WD** | डेटा लिखें / फ़ाइल जोड़ें | विशेष रूप से **निर्देशिका में फ़ाइलें बनाने या लिखने** की अनुमति देता है। फ़ोल्डर के अंदर फ़ाइलें जोड़ने या अधिलेखित करने में सक्षम होने के लिए आवश्यक। |
| **AD** | डेटा जोड़ें / उपनिर्देशिका जोड़ें | फ़ाइलों पर: फ़ाइल के अंत में डेटा जोड़ें (अधिलेखित नहीं कर सकते)। फ़ोल्डरों पर: अंदर नई उपनिर्देशिकाएँ बनाएँ। |
## गलत सकारात्मक
#### अपनी क्वेरी करें, उन्हें फाइन-ट्यून करें और अंत में उनके अलर्ट बनाएँ।
आपको कुछ व्हाइटलिस्टिंग करने की आवश्यकता हो सकती है (ProgramData में सामान्य पथों के लिए नीचे देखें)। विचार सामान्य उपयोगकर्ता लिखने योग्य पथों की क्वेरी करना है लेकिन ऐसा होता है कि (फ़ाइलों या फ़ोल्डरों) में सही ACL सेट है। यदि आक्रामक मानसिकता विशेषाधिकार बढ़ाने में मदद नहीं करती - तो उन्हें व्हाइटलिस्ट करें।
कम रोचक वाले फ़िल्टर करें: सही ACL वाले, रैंडमuninstall.exe – सबसे सामान्य और व्यापक रूप से उपयोग किया जाने वाला।
unins000.exe, unins001.exe – Inno Setup इंस्टॉलर के साथ सामान्य।
unwise.exe – अक्सर पुराने Wise Installer पैकेजों द्वारा उपयोग किया जाता है।
uninst.exe – संक्षिप्त संस्करण, अक्सर लेगेसी सॉफ़्टवेयर में पाया जाता है।
uninstaller.exe – थोड़ा लंबा, वर्णनात्मक प्रकार।
remove.exe – कभी-कभी न्यूनतम इंस्टॉलर के लिए उपयोग किया जाता है।
setup.exe (/uninstall या /remove पैरामीटर के साथ) – कुछ ऐप्स अनइंस्टॉलेशन के लिए इंस्टॉलर एक्जीक्यूटेबल का पुनः उपयोग करते हैं।
appname_uninstall.exe (जैसे, chrome_uninstall.exe)
update.exe (--uninstall के साथ) – Slack या Discord जैसे ऐप्स में Squirrel इंस्टॉलर का उपयोग करते हुए देखा गया।
#### विचार करने योग्य पैटर्न
*_uninstall.exe – कई ऐप्स ऐप का नाम पहले जोड़ते हैं, जैसे, teams_uninstall.exe, zoom_uninstall.exe।
*_cleanup.exe – रिमूवल टूल्स में अक्सर cleanup वेरिएंट होते हैं, जैसे, driver_cleanup.exe।
*_remover.exe – एक और सामान्य AV/vendor नामकरण शैली।
## PE / बाइनरी फ़ाइलें जो लोड पर कोड निष्पादित करती हैं
### सूची में दिए गए लोगों के लिए windows/sysmon लॉग और procmon लॉग दोनों में क्वेरी पर विचार करें
| Extension | PE Type | Code execution on load? | Entry point / mechanism | Notes |
|-----------|---------|--------------------------|-------------------------|-------|
| `.exe` | PE executable | Yes | PE `AddressOfEntryPoint` | एक्जीक्यूटेबल लॉन्च होने पर कोड शुरू होता है |
| `.dll` | PE DLL | Yes | `DllMain` / TLS callbacks | DLL किसी प्रोसेस में लोड होने पर कोड निष्पादित हो सकता है |
| `.sys` | PE kernel driver | Yes | `DriverEntry` | ड्राइवर लोड होने पर ड्राइवर इनिशियलाइज़ेशन कोड निष्पादित होता है |
| `.scr` | PE executable | Yes | PE `AddressOfEntryPoint` | मूल रूप से एक एक्जीक्यूटेबल; `.scr` मुख्य रूप से एक परंपरा है |
| `.cpl` | PE DLL | Yes | `DllMain` + `CPlApplet` | Control Panel इंफ्रास्ट्रक्चर द्वारा लोड किया जाता है |
| `.ocx` | PE DLL / ActiveX | Yes | `DllMain` + COM/ActiveX entry points | लोड होने पर DLL इनिशियलाइज़ेशन होता है |
| `.drv` | PE DLL / legacy driver | Usually | `DllMain` या ड्राइवर-विशिष्ट एंट्री पॉइंट | विशिष्ट `.drv` प्रकार पर निर्भर करता है |
| `.efi` | PE/COFF EFI binary | Yes | EFI entry point | UEFI द्वारा लोड होने पर कोड निष्पादित होता है |
| `.ax` | PE DLL | Yes | `DllMain` + DirectShow interfaces | लोड होने पर DLL इनिशियलाइज़ेशन होता है |
| `.acm` | PE DLL | Yes | `DllMain` + ACM entry points | Audio Compression Manager कोडेक के रूप में लोड किया जाता है |
| `.ime` | PE DLL | Yes | `DllMain` + IME entry points | लोड होने पर DLL इनिशियलाइज़ेशन होता है |
| `.tsp` | PE DLL | Yes | `DllMain` + TAPI entry points | लोड होने पर DLL इनिशियलाइज़ेशन होता है |
| `.pyd` | PE DLL | Yes | `DllMain` + Python module initialization | नेटिव Python एक्सटेंशन |
| `.node` | PE DLL | Yes | `DllMain` + Node.js addon initialization | नेटिव Node.js ऐडऑन |
| `.xll` | PE DLL | Yes | `DllMain` + Excel XLL entry points | `EXCEL.EXE` द्वारा लोड किया जाता है |
| `.wll` | PE DLL | Yes | `DllMain` + Word add-in loading | `WINWORD.EXE` द्वारा लोड किया जाता है |
## स्क्रिप्ट फ़ाइलें
### सूची में दिए गए लोगों के लिए क्वेरी पर विचार करें
| Extension | Language / Type | Purpose / Usage | Execution Context |
|-----------|---------------------------|---------------------------------------------------------|------------------------------------------------------------|
| .bat | Batch Script | लेगेसी कमांड-लाइन ऑटोमेशन कार्य, सरल स्क्रिप्ट | `cmd.exe` (Command Prompt) |
| .cmd | Batch Script (NT style) | `.bat` के समान, NT-आधारित सिस्टम पर पसंदीदा | `cmd.exe` (Command Prompt) |
| .vbs | VBScript | ऑटोमेशन कार्य, लॉगऑन स्क्रिप्ट, एडमिन स्क्रिप्ट | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .vbe | VBScript (encoded) | ऑब्फस्केशन के लिए `.vbs` का एन्कोडेड संस्करण | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .ps1 | PowerShell Script | आधुनिक Windows ऑटोमेशन और कॉन्फ़िगरेशन कार्य | PowerShell (`powershell.exe`, `pwsh.exe`) |
| .js | JScript | WSH कार्यों के लिए Microsoft का JavaScript संस्करण | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .jse | JScript (encoded) | ऑब्फस्केशन के लिए `.js` का एन्क्रिप्टेड संस्करण | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .wsf | Windows Script File (XML) | XML प्रारूप में VBScript, JScript, अन्य स्क्रिप्ट मिलाएं | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .wsh | Windows Script Host Settings | WSH स्क्रिप्ट के लिए कॉन्फ़िगरेशन सेटिंग्स | Windows Script Host (`wscript.exe`, `cscript.exe`) |
| .jar | Java Archive | एकल फ़ाइल के रूप में पैकेज्ड Java एप्लिकेशन | `java.exe` (console) / `javaw.exe` (no console window) |
| .hta | HTML Application (HTA) | HTML, CSS, और JScript/VBScript का उपयोग करने वाली GUI-आधारित Windows स्क्रिप्ट | `mshta.exe` (Microsoft HTML Application Host) |
| .com | MS-DOS Application / DOS Executable | लेगेसी एक्जीक्यूटेबल प्रोग्राम, छोटे कमांड-लाइन यूटिलिटी | सीधे प्रोग्राम के रूप में निष्पादित; आधुनिक Windows पर, क्लासिक 16-बिट .com प्रोग्राम 32-बिट Windows पर NTVDM के माध्यम से चलते हैं, और x64/ARM Windows पर मूल रूप से समर्थित नहीं हैं |
| .chm | Compiled HTML Help | Windows प्रोग्राम के लिए ऑफ़लाइन सहायता/दस्तावेज़ीकरण फ़ाइलें | `hh.exe` (Microsoft HTML Help Viewer) |
## स्टार्टअप/लॉगऑन स्क्रिप्ट
स्टार्टअप और लॉगऑन स्क्रिप्ट (और शटडाउन या लॉगऑफ) ऑटोमेशन स्क्रिप्ट हैं जो डोमेन-जॉइंड कंप्यूटरों पर या उपयोगकर्ताओं के साइन इन करने पर स्वचालित रूप से चलती हैं (gpscript.exe), और इन्हें आमतौर पर Windows Active Directory वातावरण में डोमेन कंट्रोलर से Group Policy Objects (GPOs) का उपयोग करके तैनात किया जाता है।
स्टार्टअप/शटडाउन
- इस रूप में चलें: Local System account (उच्च विशेषाधिकार)।
लॉगऑन/लॉगऑफ
- इस रूप में चलें: वर्तमान उपयोगकर्ता (यदि एडमिनिस्ट्रेटर है तो उच्च विशेषाधिकार)।
### सामान्य उपयोग:
- सभी उपयोगकर्ताओं के लिए नेटवर्क ड्राइव मैप करना
- सॉफ़्टवेयर इंस्टॉल करना
- सिस्टम-व्यापी सेटिंग्स लागू करना
- सेवाएं शुरू करना या कॉन्फ़िगर करना
- स्क्रिप्ट या एक्जीक्यूटेबल चलाना
### प्रभावित रजिस्ट्री हाइव्स
जब GPO के माध्यम से स्टार्टअप/लॉगऑन स्क्रिप्ट चलती है:
| Hive / Path | Purpose |
|-------------|---------|
| HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logon | उपयोगकर्ता लॉगऑन स्क्रिप्ट, उनके निष्पादन क्रम, स्थिति, अंतिम रन समय, और पैरामीटर को ट्रैक करता है। |
| HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Logoff | लॉगऑफ स्क्रिप्ट के लिए समान ट्रैकिंग। |
| HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup | स्टार्टअप स्क्रिप्ट (सभी उपयोगकर्ताओं पर लागू) ट्रैकिंग जानकारी। |
| HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown | शटडाउन स्क्रिप्ट जानकारी। |
#### gpscript.exe की चाइल्ड प्रोसेस में स्क्रिप्ट और एक्जीक्यूटेबल के लिए User-writable पथ, या writable नेटवर्क शेयर या genereic (SYSVOL) देखें।
चलाई जाने वाली स्क्रिप्ट पढ़ें और देखें कि क्या कोई गलत कॉन्फ़िगरेशन है जैसे अन्य User-Writable पथ या ऐसे पथ जो मौजूद नहीं हैं या संवेदनशील जानकारी। संभावित उपयोग किए गए पासवर्ड (net use z: \\server\share /user:domain\username password) या अन्य संवेदनशील जानकारी देखें।
**लॉगऑन स्क्रिप्ट गलत कॉन्फ़िगरेशन श्रेणियां**
- SS1 – Plaintext क्रेडेंशियल
- SS2 – असुरक्षित अनुमतियां (नियमित उपयोगकर्ता द्वारा संशोधन योग्य लॉगऑन स्क्रिप्ट)
- SS3 – गैर-मौजूद शेयर (जो नियमित उपयोगकर्ता द्वारा बनाए जा सकते हैं)
- SS4 - लॉगऑन स्क्रिप्ट वाले एडमिन
**लॉगऑन स्क्रिप्ट गलत कॉन्फ़िगरेशन**
1. SS1 - लॉगऑन स्क्रिप्ट के भीतर Plaintext क्रेडेंशियल
2. SS2 - असुरक्षित शेयर अनुमतियां
3. SS2 - असुरक्षित फ़ाइल अनुमतियां
4. SS2 - असुरक्षित NETLOGON/SYSVOL अनुमतियां
5. SS2 - असुरक्षित लॉगऑन स्क्रिप्ट अनुमतियां
6. SS2 - असुरक्षित GPO लॉगऑन स्क्रिप्ट अनुमतियां
7. SS3 - गैर-मौजूद शेयर
8. SS4 - लॉगऑन स्क्रिप्ट वाले एडमिन
9. SS4 - गैर-मौजूद शेयर से मैप की गई लॉगऑन स्क्रिप्ट वाले एडमिन
## MSIExec / MSI मरम्मत
##### हमारे परीक्षण ने उन परिदृश्यों में विशेषाधिकार बढ़ाने में कोई परिणाम नहीं दिया जहां हम edge को स्पॉन कर सकते थे और cmd प्रॉम्प्ट तक बाहर निकल सकते थे। यह संभवतः इसलिए है क्योंकि chromium आधारित ब्राउज़र उपयोगकर्ता का प्रतिरूपण कर रहे हैं/रेंडरिंग प्रोसेस को SYSTEM के रूप में चलाने तक सीमित कर रहे हैं और internet explorer/edge को SYSTEM उपयोगकर्ता के रूप में cmd या अन्य प्रोसेस स्पॉन करने की अनुमति नहीं देते हैं। हमारा मानना है कि यदि कोई भी chromium आधारित ब्राउज़र इंस्टॉल नहीं है (जैसे firefox) या पुराने संस्करण हैं। यदि आप ऐसी प्रोसेस स्पॉन कर सकते हैं और उससे कमांड प्रॉम्प्ट तक बाहर निकल सकते हैं तो विशेषाधिकार वृद्धि संभव हो सकती है।
यदि आप इससे संबंधित संभावित घटनाओं की गणना करना चाहते हैं तो msiexec.exe को पैरेंट प्रोसेस के रूप में cmd.exe या conhost.exe या powershell.exe या pwsh.exe को चाइल्ड प्रोसेस के रूप में क्वेरी करें।
उन उपयोगकर्ताओं से संपर्क करें जिनसे आपकी क्वेरी परिणाम प्राप्त करती है और उनसे पूछें कि उन्होंने क्या इंस्टॉल/मरम्मत किया। आप यह भी जांच सकते हैं कि event.provider: "MsiInstaller" और event.code: (1033 OR 11707) या समान, ताकि उसी टाइमस्टैम्प के आसपास कौन सा msi इंस्टॉलर इंस्टॉल किया गया था, इसके बारे में अधिक संदर्भ प्राप्त कर सकें।
आप स्वयं भी Software Center में यह आज़मा सकते हैं और एप्लिकेशन इंस्टॉल करें और कमांड प्रॉम्प्ट देखें जिन्हें आप विंडो में एक सेक्शन मार्क करके गायब होने से पहले रोक सकते हैं। फिर नीचे दिए गए लिंक में बताई गई समान तकनीकों का उपयोग करके बाहर निकलें।
##### उदाहरण क्वेरी```
(event.provider: "Microsoft-Windows-Sysmon" AND event.code: 1 AND winlog.event_data.IntegrityLevel: System AND process.parent.name: msiexec.exe AND process.name: (cmd.exe OR conhost.exe OR powershell.exe OR pwsh.exe))
OR
(event.provider: Microsoft-Windows-Security-Auditing AND event.code: 4688 AND winlog.event_data.TokenElevationType: "%%1936" AND winlog.event_data.MandatoryLabel: "S-1-16-16384" AND process.parent.name: msiexec.exe AND process.name: (cmd.exe OR conhost.exe OR powershell.exe OR pwsh.exe))
ऐसी स्थितियों में जहाँ उपलब्ध टेलीमेट्री सीमित है, शोधकर्ता Process Monitor में बूट लॉगिंग का उपयोग करके गहरी होस्ट गतिविधि एकत्र कर सकते हैं। Procmon Microsoft Windows में Windows बूट प्रक्रिया की बहुत प्रारंभिक अवस्था से प्रक्रिया निर्माण, फ़ाइल एक्सेस, रजिस्ट्री संचालन, ड्राइवर लोड और सेवा गतिविधि जैसी निम्न-स्तरीय सिस्टम गतिविधि को कैप्चर कर सकता है। कैप्चर किए गए बूट लॉग को CSV में निर्यात किया जा सकता है और NDJSON में परिवर्तित करके आगे की शिकार और विश्लेषण के लिए SIEM में इनजेस्ट किया जा सकता है। यह दृष्टिकोण विशेषाधिकार वृद्धि या दृढ़ता तकनीकों की जाँच करते समय अतिरिक्त दृश्यता प्रदान कर सकता है जो मानक लॉगिंग स्रोतों में दिखाई नहीं दे सकती हैं। अधिक जानकारी के लिए procmon अनुभाग देखें।
यह दिखाने के लिए कि गलत कॉन्फ़िगर किए गए तृतीय-पक्ष सॉफ़्टवेयर के साथ यह कितना सामान्य है।
| CVE | विक्रेता / उत्पाद | पथ / फ़ाइल(ें) | SYSTEM के रूप में लोड होता है | CWE | नोट्स |
|---|
| CVE-2025-42598 | Epson Printer Drivers | C:\ProgramData\EPSON\EPSON Series Dlls | spoolsv.exe / PrintIsolationHost.exe | CWE-276 | DLL overwrite → SYSTEM |
| CVE-2025-64669 | Windows Admin Center | C:\ProgramData\WindowsAdminCenter\Updater | WindowsAdminCenterUpdater.exe | CWE-276 | DLL Hijacking |
| CVE-2019-19363 | Ricoh Printer Drivers | C:\ProgramData\RICOH_DRV\ | PrintIsolationHost.exe | CWE-264* | DLL planting → SYSTEM |
| CVE-2025-1729 | Lenovo TrackPoint | C:\ProgramData\Lenovo\TPQM\Assistant | TPQMAssistant.exe | DLL Hijacking, Schtasks | |
| CVE-2025-47962 | Microsoft Windows SDK | C:\Microsoft Shared\Phone Tools\CoreCon\11.0\bin | cryptsp.dll | CWE-284 | DLL Hijacking, Service |
| CVE-2025-11772 | Synaptics Fingerprint | C:\ProgramData\Synaptics\CheckFPDatabase.exe | WTSAPI32.dll etc | DLL Hijacking USB Co-Installers | |
| CVE-2020-5896 | BIG IP F5 Client | C:\Windows\Temp\f5tmp\cachecleaner.exe | cachecleaner.dll | CWE-276 | DLL planting → SYSTEM |
| CVE-2020-13885 | Citrix Workspace App | %PROGRAMDATA%\Citrix\Citrix Workspace ####\webio.dll | Citrix services / uninstall | CWE-276 | DLL planting → SYSTEM |
| CVE-2018-17778 | SnowAgent | C:\Windows\Temp\cpuz143\cpuz143_x64.sys | snowagent.exe CPUID SDK | SYS file planting → SYSTEM | |
| CVE-2026-3991 | Symantec DLP Agent for Windows | C:\VontuDev\workDir\openssl\output\x64\Release\SSL\openssl.cnf | edpa.exe | LPE openssl.cnf | |
| CVE-2025-8069 | AWS Client VPN | C:\usr\local\windows-x86_64-openssl-localbuild\ssl | LPE openssl.cnf | ||
| CVE-2025-2272 | ForcePoint Endpoint DLP | C:\usr\local\ssl\openssl.cnf | ENdPointClassifier.exe | LPE openssl.cnf | |
| CVE-2025-13176 | ESET Inspect EDR | C:\src\vcpkg\packages\openssl_x64-windows-static\openssl.cnf | ElConnector.exe | LPE openssl.cnf | |
| CVE-2024-6975 | Cato Client | C:\Work\WinVPNClient\ThirdParty\openssl\openssl-3.1.1\VS2022\SSL64\openssl.cnf | winvpnclient.cli.exe | LPE openssl.cnf | |
| CVE-2023–6338 | Lenovo UDC | C:\J\w\prod\BUildSIngleReference....... | UDClientService.exe | LPE openssl.cnf | |
| CVE-2023-41840 | FortiClient Windows OpenSSL component | CWE-426 | openssl.cnf | ||
| CVE-2021-21999 | VMWare Workstation tools | LPE openssl.cfg | |||
| CVE-2020-8224 | Nextcloud windows desktop application | C:\usr\local\ssl\openssl.cnf | nextcloud.exe | LPE openssl.cnf | |
| CVE-2020–26050 | SaferVPN | C:\etc\ssl\openssl.cnf | C:\Program Files (x86)\SaferVPN for Windows\bin\openvpn.exe | LPE openssl.cfg | |
| CVE-2019-12572 | PIA Windows service | C:\etc\ssl\openssl.cnf | pia-service.exe | LPE openssl.cnf | |
| CVE-2024-34474 | Clario for Desktop | C:\ProgramData\Clario\ | ClarioService.exe | CWE-276 | Loads DLLs from ProgramData |
| CVE-2022-34043 | NoMachine (Windows) | C:\ProgramData\NoMachine\var\uninstall\ | Uninstaller | CWE-732 | DLL hijack in uninstall folder |
| CVE-2020-15145 | Composer-Setup (Windows) | C:\ProgramData\ComposerSetup\bin\composer.bat (+ DLLs) | Maintenance/repair actions | CWE-276 | Writable bin → LPE |
| CVE-2019-14935 | 3CX Phone for Windows | %PROGRAMDATA%\3CXPhone for Windows\PhoneApp\ | Startup / elevated context | CWE-732 | Everyone:Full Control |
| CVE-2024-54131 | Kolide Launcher | C:\ProgramData\Kolide\Launcher-[ID]\data\ | Launcher service | CWE-276 | Weak perms → DLL load |
| CVE-2021-28098 | Forescout SecureConnector | %PROGRAMDATA%\ForeScout SecureConnector\ | SecureConnector service | CWE-264* | Writable log → symlink → SYSTEM |
| CVE-2019-15752 | Docker Desktop (Windows) | %ProgramData%\DockerDesktop\version-bin\docker-credential-wincred.exe | Docker auth flow | CWE-276 | EXE planting → SYSTEM |
| CVE-2022-39959 | Panini Everest Engine | %PROGRAMDATA%\Panini\Everest Engine\EverestEngine.exe | Engine service (SYSTEM) | CWE-276 | Unquoted path → EXE planting |
| CVE-2018-10204 | PureVPN (Windows) | %PROGRAMDATA%\purevpn\config\config.ovpn | openvpn.exe (service) | CWE-276 | Writable config → DLL load |
| CVE-2020-27643 | 1E Client (Windows) | %PROGRAMDATA%\1E\Client\ | Client service | CWE-276 | Writable dir → LPE |
| CVE-2020-1985 | Palo Alto Secdo Agent | C:\ProgramData\Secdo\Logs\ | Secdo service | CWE-276 | Incorrect default perms |
| CVE-2024-36495 | Faronics WINSelect | C:\ProgramData\WINSelect\WINSelect.wsd / Faronics\StorageSpace\WS\WINSelect.wsd | WINSelect service | CWE-276 | Config writable → LPE |
| CVE-2024-20656 | Visual Studio Setup WMI | C:\ProgramData\Microsoft\VisualStudio\SetupWMI\MofCompiler.exe | Repair action (SYSTEM) | CWE-276 | Replace binary → SYSTEM |
| CVE-2025-3224 | Docker Desktop (Windows) | C:\ProgramData\Docker\config\ | Updater (high priv) | CWE-276 | Creatable/deletable path → LPE |