पिछले लेख में, हमने बताया था कि Debug Program पॉलिसी का उपयोग करके सिस्टम एडमिनिस्ट्रेटर्स के लिए डिबग विशेषाधिकार को अक्षम करना मिमिकैट्ज़ जैसी यूटिलिटीज के खिलाफ बचाव के तरीकों में से एक है। हालांकि, हाल ही में पता चला कि डिबग विशेषाधिकार के बिना (यह Windows में SeDebugPrivilege है), एक लोकल सर्वर एडमिनिस्ट्रेटर Microsoft SQL Server इंस्टॉल या अपडेट नहीं कर सकता। बात यह है कि शुरू होने पर, SQL Server इंस्टॉलर जांचता है कि क्या SeSecurity, SeBackup और SeDebug विशेषाधिकार हैं। इसे SQL Server प्रोसेस चलाने और SQL Server के सफल स्टार्ट के बारे में जानकारी प्राप्त करने की आवश्यकता है। यहां यह कैसा दिखता है।
SQL Server इंस्टॉलेशन के दौरान, इंस्टॉलर प्रारंभिक जांच करता है और Setup account privileges के साथ कुछ समस्याओं की पहचान करता है।
यदि आप Failed लिंक पर क्लिक करते हैं, तो आप निम्न संदेश देख सकते हैं:
Rule “Setup account privileges” failed.The account that is running SQL Server Setup does not have one or all of the following rights: the right to back up files and directories, the right to manage auditing and the security log and the right to debug programs. To continue, use an account with both of these rights. For more information, see https://msdn.microsoft.com/en-us/library/ms813696.aspx, https://msdn.microsoft.com/en-us/library/ms813959.aspx and https://msdn.microsoft.com/en-us/library/ms813847.aspx.
अब SystemConfigurationCheck_Report.htm रिपोर्ट खोलें।
जैसा कि आप देख सकते हैं, HasSecurityBackupAndDebugPrivilegesCheck नियम की जांच करते समय, इंस्टॉलर ने पाया कि वर्तमान प्रोसेस को निम्न विशेषाधिकारों में से एक नहीं मिला है:
- SeSecurity – ऑडिट और सिक्योरिटी लॉग्स मैनेज करना
- SeBackup – फाइलों और फोल्डर्स का बैकअप लेने की परमिशन
- SeDebug — प्रोग्राम डिबग करने का विशेषाधिकार
लॉग में विस्तृत जानकारी दिखाती है कि इंस्टॉलेशन प्रोसेस में SeDebug फ्लैग नहीं है।
(09) 2017-12-12 11:15:13 Slp: Initializing rule : Setup account privileges (09) 2017-12-12 11:15:13 Slp: Rule is will be executed : True (09) 2017-12-12 11:15:13 Slp: Init rule target object: Microsoft.SqlServer.Configuration.SetupExtension.FacetPrivilegeCheck (09) 2017-12-12 11:15:13 Slp: Rule ‘HasSecurityBackupAndDebugPrivilegesCheck’ Result: Running process has SeSecurity privilege, has SeBackup privilege and does not have SeDebug privilege. (09) 2017-12-12 11:15:13 Slp: Evaluating rule : HasSecurityBackupAndDebugPrivilegesCheck (09) 2017-12-12 11:15:13 Slp: Rule running on machine: rom-sql10 (09) 2017-12-12 11:15:13 Slp: Rule evaluation done : Failed
मैंने Debug programs पॉलिसी को बदले या अक्षम किए बिना SeDebugPrivilege प्राप्त करने के वर्कअराउंड समाधान की तलाश करने का फैसला किया। यह पता चला कि यदि आपके सर्वर पर लोकल एडमिनिस्ट्रेटर विशेषाधिकार हैं तो इस पॉलिसी को बायपास करने का एक काफी आसान तरीका है। secedit टूल जो सर्वर की लोकल सिक्योरिटी पॉलिसीज को मैनेज करने की अनुमति देता है, हमारी मदद करेगा।
वर्तमान विशेषाधिकार जांचें:
whoami /priv
जैसा कि आप देख सकते हैं, वर्तमान यूजर के टोकन में कोई SeDebugPrivilege नहीं है।
ग्रुप पॉलिसीज द्वारा सेट वर्तमान यूजर अधिकारों को टेक्स्ट फाइल में एक्सपोर्ट करें:
secedit /export /cfg secpolicy.inf /areas USER_RIGHTS
किसी भी टेक्स्ट एडिटर का उपयोग करके secpolicy.inf खोलें और [Privilege Rights] सेक्शन में एक स्ट्रिंग जोड़ें जो लोकल एडमिनिस्ट्रेटर्स ग्रुप को Debug Programs विशेषाधिकार सक्षम करता है।
SeDebugPrivilege = *S-1-5-32-544
फाइल सेव करें। अब नए यूजर अधिकार लागू करें:
secedit /configure /db secedit.sdb /cfg secpolicy.inf /overwrite /areas USER_RIGHTS
लॉग ऑफ और फिर से लॉग ऑन करें और secpol.msc का उपयोग करके सुनिश्चित करें कि Debug Program विशेषाधिकार लोकल एडमिनिस्ट्रेटर्स ग्रुप को असाइन किए गए हैं। वही whoami /priv कमांड के परिणामों में दिखाया गया है:
SeDebugPrivilege Debug programs Enabled
अब आप SQL Server की इंस्टॉलेशन या अपडेट चला सकते हैं। लेकिन ध्यान रखें कि SeDebugPrivilege अस्थायी रूप से असाइन किया गया है और अगले GPO अपडेट साइकिल पर रीसेट हो जाएगा (यूजर के लॉग ऑफ होने के बाद)।
आपको समझना चाहिए कि यदि आप Debug programs पॉलिसी सक्षम करते हैं तो यह आपको उस मालिशियस सॉफ्टवेयर से पूरी तरह से बचाएगा नहीं जो पहले से ही लोकल एडमिनिस्ट्रेटर अधिकारों के साथ आपके सर्वर में घुस चुका है, और यह सर्वर पर काम करने वाले सभी यूजर/एडमिनिस्ट्रेटर अकाउंट्स से समझौता कर सकता है।