
विंडोज विशेषाधिकारों का (दुर)उपयोग करके ओएस के भीतर अपने अधिकारों को बढ़ाने की अनुमति देने वाले शोषण पथ।
यह विचार Windows OS के विशेषाधिकारों को एक ऐसे पथ में "अनुवाद" करना है जो निम्नलिखित की ओर ले जाता है:
विशेषाधिकार निम्नलिखित पर सूचीबद्ध और समझाए गए हैं: https://learn.microsoft.com/en-us/windows/win32/secauthz/privilege-constants
यदि लक्ष्य कई तरीकों से प्राप्त किया जा सकता है, तो प्राथमिकता है:
आप whoami /priv के साथ अपने स्वयं के विशेषाधिकारों की जांच कर सकते हैं। अक्षम विशेषाधिकार सक्षम विशेषाधिकारों के समान ही मान्य हैं। एकमात्र महत्वपूर्ण बात यह है कि आपके पास सूची में विशेषाधिकार है या नहीं।
नोट 1: जब भी हमला पथ टोकन निर्माण के साथ समाप्त होता है, आप मान सकते हैं कि अगला कदम ऐसे टोकन का उपयोग करके नई प्रक्रिया बनाना और फिर OS पर नियंत्रण लेना है।
नोट 2:
ए. सीधे NtQuerySystemInformation()/ZwQuerySystemInformation() को कॉल करने के लिए, आवश्यक विशेषाधिकार यहाँ पाए जा सकते हैं।
बी. NtSetSystemInformation()/ZwSetSystemInformation() के लिए आवश्यक विशेषाधिकार यहाँ सूचीबद्ध हैं।
नोट 3: मैं केवल OS पर ध्यान केंद्रित कर रहा हूं। यदि कोई विशेषाधिकार AD में काम करता है लेकिन OS में नहीं, तो मैं इसे OS में उपयोग नहीं किए जाने के रूप में वर्णित कर रहा हूं। यह अच्छा होगा यदि कोई AD-उन्मुख परिदृश्यों में गहराई से खोज करे।
बेझिझक योगदान दें और/या प्रस्तुत विचारों पर चर्चा करें।
श्रेय:
| विशेषाधिकार | प्रभाव | उपकरण | निष्पादन पथ | टिप्पणियाँ |
|---|
SeAssignPrimaryToken | प्रशासक | तृतीय-पक्ष उपकरण | "यह एक उपयोगकर्ता को टोकन का प्रतिरूपण करने और potato.exe, rottenpotato.exe और juicypotato.exe जैसे उपकरणों का उपयोग करके nt सिस्टम में विशेषाधिकार वृद्धि करने की अनुमति देगा" | Aurélien Chalot को अपडेट के लिए धन्यवाद। मैं इसे जल्द ही अधिक रेसिपी-जैसी चीज़ में पुनः लिखने का प्रयास करूंगा। |
SeAudit | खतरा | तृतीय-पक्ष उपकरण | ऑडिटिंग को मूर्ख बनाने या पुरानी घटनाओं को अधिलेखित करने के लिए सुरक्षा घटना लॉग में घटनाएँ लिखें। | स्वयं की घटनाएँ लिखना Authz Report Security Event API से संभव है।- @daem0nc0re द्वारा PoC देखें |
SeBackup | प्रशासक | तृतीय-पक्ष उपकरण | 1. HKLM\SAM और HKLM\SYSTEM रजिस्ट्री हाइव्स का बैकअप लें 2. SAM डेटाबेस से स्थानीय खातों के हैश निकालें 3. स्थानीय Administrators समूह के सदस्य के रूप में Pass-the-Hash करें वैकल्पिक रूप से, संवेदनशील फ़ाइलों को पढ़ने के लिए उपयोग किया जा सकता है। | अधिक जानकारी के लिए, SeBackupPrivilege फ़ाइल देखें।- @daem0nc0re द्वारा PoC देखें |
SeChangeNotify | कोई नहीं | - | - | यह विशेषाधिकार सभी के पास होता है। इसे रद्द करने से OS (Windows Server 2019) बूट करने योग्य नहीं रह सकता है। |
SeCreateGlobal | ? | ? | ? | |
SeCreatePagefile | कोई नहीं | अंतर्निहित कमांड | hiberfil.sys बनाएं, इसे ऑफ़लाइन पढ़ें, संवेदनशील डेटा देखें। | ऑफ़लाइन एक्सेस की आवश्यकता है, जो वैसे भी प्रशासक अधिकारों की ओर ले जाता है। - @daem0nc0re द्वारा PoC देखें |
SeCreatePermanent | ? | ? | ? | |
SeCreateSymbolicLink | ? | ? | ? | |
SeCreateToken | प्रशासक | तृतीय-पक्ष उपकरण | NtCreateToken के साथ स्थानीय प्रशासक अधिकारों सहित मनमाना टोकन बनाएं।- @daem0nc0re द्वारा PoC देखें | |
SeDebug | प्रशासक | PowerShell | lsass.exe टोकन की प्रतिलिपि बनाएं। | स्क्रिप्ट FuzzySecurity पर उपलब्ध है। - @daem0nc0re द्वारा PoC देखें |
SeDelegateSession-UserImpersonate | ? | ? | ? | कॉलम को संकीर्ण बनाने के लिए विशेषाधिकार का नाम तोड़ा गया। |
SeEnableDelegation | कोई नहीं | - | - | Windows OS में विशेषाधिकार का उपयोग नहीं किया जाता है। |
SeImpersonate | प्रशासक | तृतीय-पक्ष उपकरण | Potato परिवार के उपकरण (potato.exe, RottenPotato, RottenPotatoNG, Juicy Potato, SweetPotato, RemotePotato0), RogueWinRM, PrintSpoofer, आदि। | SeAssignPrimaryToken के समान, डिज़ाइन द्वारा किसी अन्य उपयोगकर्ता के सुरक्षा संदर्भ में प्रक्रिया बनाने की अनुमति देता है (उस उपयोगकर्ता के टोकन के हैंडल का उपयोग करके)। आवश्यक टोकन प्राप्त करने के लिए कई उपकरणों और तकनीकों का उपयोग किया जा सकता है। |
SeIncreaseBasePriority | उपलब्धता | अंतर्निहित कमांड | start /realtime SomeCpuIntensiveApp.exe | सर्वरों पर अधिक दिलचस्प हो सकता है। |
SeIncreaseQuota | उपलब्धता | तृतीय-पक्ष उपकरण | CPU, मेमोरी और कैश सीमाओं को कुछ ऐसे मानों में बदलें जो OS को बूट करने योग्य नहीं बनाते। | - सुरक्षित मोड में कोटा की जाँच नहीं की जाती है, जिससे मरम्मत अपेक्षाकृत आसान हो जाती है। - रजिस्ट्री कोटा प्रबंधित करने के लिए भी यही विशेषाधिकार उपयोग किया जाता है। |
SeIncreaseWorkingSet | कोई नहीं | - | - | यह विशेषाधिकार सभी के पास होता है। मेमोरी प्रबंधन कार्यों को ठीक करने के लिए कॉल करते समय जाँच की जाती है। |
SeLoadDriver | प्रशासक | तृतीय-पक्ष उपकरण | 1. बगी कर्नेल ड्राइवर जैसे szkg64.sys लोड करें2. ड्राइवर भेद्यता का शोषण करें वैकल्पिक रूप से, fltMC अंतर्निहित कमांड के साथ सुरक्षा-संबंधित ड्राइवरों को अनलोड करने के लिए विशेषाधिकार का उपयोग किया जा सकता है। उदा.: fltMC sysmondrv | 1. szkg64 भेद्यता CVE-2018-15732 के रूप में सूचीबद्ध है2. szkg64 शोषण कोड Parvez Anwar द्वारा बनाया गया था |
SeLockMemory | उपलब्धता | तृतीय-पक्ष उपकरण | पृष्ठों को स्थानांतरित करके सिस्टम मेमोरी विभाजन को भूखा करें। | Walied Assar (@waleedassar) द्वारा प्रकाशित PoC |
SeMachineAccount | कोई नहीं | - | - | Windows OS में विशेषाधिकार का उपयोग नहीं किया जाता है। |
SeManageVolume | प्रशासक | तृतीय-पक्ष उपकरण | 1. टोकन में विशेषाधिकार सक्षम करें 2. SYNCHRONIZE | FILE_TRAVERSE के साथ \.\C: के लिए हैंडल बनाएं3. S-1-5-32-544 को S-1-5-32-545 से बदलने के लिए FSCTL_SD_GLOBAL_CHANGE भेजें4. utilman.exe आदि को अधिलेखित करें। | FSCTL_SD_GLOBAL_CHANGE को इस कोड टुकड़े से बनाया जा सकता है। |
SeProfileSingleProcess | कोई नहीं | - | - | Prefetch, SuperFetch और ReadyBoost के मापदंडों को बदलने से पहले (और बहुत सीमित कमांड में, पूछताछ करने से पहले) विशेषाधिकार की जाँच की जाती है। वास्तविक प्रभाव ज्ञात नहीं होने के कारण प्रभाव को समायोजित किया जा सकता है। |
SeRelabel | खतरा | तृतीय-पक्ष उपकरण | एक वैध प्रशासक द्वारा सिस्टम फ़ाइलों का संशोधन | देखें: MIC दस्तावेज़ीकरण अखंडता लेबल ज्ञात ACL के शीर्ष पर अतिरिक्त सुरक्षा प्रदान करते हैं। दो मुख्य परिदृश्य शामिल हैं: - ब्राउज़र, PDF रीडर आदि जैसे शोषण योग्य अनुप्रयोगों का उपयोग करके हमलों से सुरक्षा - OS फ़ाइलों की सुरक्षा। टोकन में मौजूद SeRelabel किसी संसाधन (फ़ाइलों और फ़ोल्डरों सहित) तक WRITE_OWNER एक्सेस का उपयोग करने की अनुमति देगा। दुर्भाग्य से, High से कम IL वाले टोकन में SeRelabel विशेषाधिकार अक्षम होगा, जो इसे पहले से प्रशासक नहीं होने वाले किसी भी व्यक्ति के लिए बेकार बना देता है।विवरण के लिए @tiraniddo का शानदार ब्लॉग पोस्ट देखें। |
SeRemoteShutdown | उपलब्धता | अंतर्निहित कमांड | shutdown /s /f /m \\server1 /d P:5:19 | जब शटडाउन/रीस्टार्ट अनुरोध नेटवर्क से आता है तो विशेषाधिकार सत्यापित किया जाता है। 127.0.0.1 परिदृश्य की जाँच की जानी बाकी है। |
SeReserveProcessor | कोई नहीं | - | - | ऐसा लगता है कि विशेषाधिकार अब उपयोग नहीं किया जाता है और यह winnt.h के केवल कुछ संस्करणों में दिखाई दिया। आप इसे Microsoft द्वारा प्रकाशित स्रोत कोड में यहाँ सूचीबद्ध देख सकते हैं। |
SeRestore | प्रशासक | PowerShell | 1. SeRestore विशेषाधिकार उपस्थित होने पर PowerShell/ISE लॉन्च करें। 2. Enable-SeRestorePrivilege से विशेषाधिकार सक्षम करें। 3. utilman.exe का नाम बदलकर utilman.old करें 4. cmd.exe का नाम बदलकर utilman.exe करें 5. कंसोल को लॉक करें और Win+U दबाएँ | कुछ AV सॉफ़्टवेयर द्वारा हमले का पता लगाया जा सकता है। वैकल्पिक विधि समान विशेषाधिकार का उपयोग करके "Program Files" में संग्रहीत सेवा बाइनरी को बदलने पर निर्भर करती है। - @daem0nc0re द्वारा PoC देखें |
SeSecurity | खतरा | अंतर्निहित कमांड | - सुरक्षा घटना लॉग साफ़ करें: wevtutil cl Security- सुरक्षा लॉग को 20MB तक सिकोड़ें ताकि घटनाएँ जल्दी फ्लश हों: wevtutil sl Security /ms:0- सिस्टम के भीतर अन्य उपयोगकर्ताओं की प्रक्रियाओं, पहुँच और कार्यों के बारे में जानकारी रखने के लिए सुरक्षा घटना लॉग पढ़ें। - रडार के नीचे कार्य करने के लिए क्या लॉग किया गया है, यह जानना। - सफाई के स्पष्ट सबूत छोड़े बिना पुरानी घटनाओं को प्रभावी ढंग से हटाने के लिए बड़ी संख्या में घटनाएँ उत्पन्न करना। - ऑब्जेक्ट SACL देखना और बदलना (व्यवहार में: ऑडिटिंग सेटिंग्स) | @daem0nc0re द्वारा PoC देखें |
SeShutdown | उपलब्धता | अंतर्निहित कमांड | shutdown.exe /s /f /t 1 | अधिकांश NtPowerInformation() स्तरों को कॉल करने की अनुमति देता है। जाँच की जानी बाकी है। NtRaiseHardError() को कॉल करने की अनुमति देता है जिससे तत्काल BSOD और मेमोरी डंप होता है, जो संभावित रूप से संवेदनशील जानकारी के प्रकटीकरण की ओर ले जाता है - @daem0nc0re द्वारा PoC देखें |
SeSyncAgent | कोई नहीं | - | - | Windows OS में विशेषाधिकार का उपयोग नहीं किया जाता है। |
SeSystemEnvironment | अज्ञात | तृतीय-पक्ष उपकरण | यह विशेषाधिकार UEFI वेरिएबल्स में हेरफेर करने के लिए NtSetSystemEnvironmentValue, NtModifyDriverEntry और कुछ अन्य syscalls का उपयोग करने की अनुमति देता है। | sysprep.exe चलाने के लिए विशेषाधिकार आवश्यक है। इसके अतिरिक्त: |
SeSystemProfile | ? | ? | ? | |
SeSystemtime | खतरा | अंतर्निहित कमांड | cmd.exe /c date 01-01-01cmd.exe /c time 00:00 | विशेषाधिकार सिस्टम समय बदलने की अनुमति देता है, संभावित रूप से ऑडिट ट्रेल अखंडता समस्याओं का कारण बनता है, क्योंकि घटनाएँ गलत दिनांक/समय के साथ संग्रहीत होंगी। - दिनांक/समय प्रारूपों से सावधान रहें। यदि निश्चित नहीं हैं तो हमेशा सुरक्षित मानों का उपयोग करें। - कभी-कभी विशेषाधिकार का नाम बड़े "T" का उपयोग करता है और इसे SeSystemTime के रूप में संदर्भित किया जाता है। |
SeTakeOwnership | प्रशासक | अंतर्निहित कमांड | 1. takeown.exe /f "%windir%\system32"2. icacls.exe "%windir%\system32" /grant "%username%":F3. cmd.exe का नाम बदलकर utilman.exe करें 4. कंसोल को लॉक करें और Win+U दबाएँ | कुछ AV सॉफ़्टवेयर द्वारा हमले का पता लगाया जा सकता है। वैकल्पिक विधि समान विशेषाधिकार का उपयोग करके "Program Files" में संग्रहीत सेवा बाइनरी को बदलने पर निर्भर करती है। - @daem0nc0re द्वारा PoC देखें |
SeTcb | प्रशासक | तृतीय-पक्ष उपकरण | स्थानीय प्रशासक अधिकार शामिल करने के लिए टोकन में हेरफेर करें। | मनमाना टोकन बनाने का नमूना कोड+exe PsBits पर उपलब्ध है। |
SeTimeZone | गड़बड़ | अंतर्निहित कमांड | समय क्षेत्र बदलें। tzutil /s "Chatham Islands Standard Time" | |
SeTrustedCredManAccess | खतरा | तृतीय-पक्ष उपकरण | क्रेडेंशियल मैनेजर से क्रेडेंशियल डंप करना | @tiraniddo द्वारा शानदार ब्लॉग पोस्ट। - @daem0nc0re द्वारा PoC देखें |
SeUndock | कोई नहीं | - | - | अनडॉक करते समय विशेषाधिकार सक्षम होता है, लेकिन पहुँच देने/अस्वीकार करने के लिए कभी जाँचा गया नहीं देखा गया। व्यवहार में इसका अर्थ है कि यह वास्तव में अप्रयुक्त है और किसी भी वृद्धि की ओर नहीं ले जा सकता। |
SeUnsolicitedInput | कोई नहीं | - | - | Windows OS में विशेषाधिकार का उपयोग नहीं किया जाता है। |