अगर एक Windows cmd.exe एलिवेटेड विशेषाधिकारों के साथ चल रहा है, तो क्या मैं अपने प्रॉम्प्ट से निष्पादित कुछ भी उन्नत विशेषाधिकार के साथ चला रहा हूं?


11

अगर मेरा cmd.exe विंडो टाइटल बार में "एडमिनिस्ट्रेटर" कहती है, तो यह दर्शाता है कि इसे एलीवेटेड विशेषाधिकारों के साथ शुरू किया गया था, क्या इसका मतलब यह है कि मैं इस कमांड विंडो से एग्जीक्यूटेड एलीवेटेड एग्जीक्यूटिव भी चला रहा हूं?

विशेष रूप से, अगर मैं कुछ चलाता हूं जैसे:

msiexec SomeProgram.msi

क्या मेरा इंस्टॉलर एलिवेटेड विशेषाधिकारों के साथ चलाया जा रहा है क्योंकि इसे cmd.exe से निष्पादित किया गया था जो एलीवेटेड विशेषाधिकार के साथ चल रहा था?

अधिक विशेष रूप से: मैं सोच रहा हूं कि क्या एप्लिकेशन यूआई प्रस्तुत करते हैं और तुरंत cmd.exe विंडो में प्रॉम्प्ट वापस करते हैं, जैसे msiexecऊपर कॉल, उन्नत विशेषाधिकार के साथ निष्पादित कर रहे हैं।

जवाबों:


16

हां, यह उन्नत विशेषाधिकार के साथ निष्पादित होता है।

सरल परीक्षण:

आप एक उन्नत और एक गैर-एलिवेटेड कमांड प्रॉम्प्ट खोलकर इसे काफी आसानी से परख सकते हैं। notepad.exeदोनों में कमांड चलाएँ , और एक खाली पाठ फ़ाइल को सहेजने का प्रयास करें C:\Windows। एक बचाएगा, एक अनुमतियाँ त्रुटि फेंक देगा।

पूरी तरह से परीक्षण:

अगर है कि आप के लिए यह पुष्टि करने के लिए पर्याप्त नहीं है (यह वास्तव में मुझे पूरा नहीं किया) आप उपयोग कर सकते AccessChk SysInternals से। आपको इसे एक उन्नत कमांड प्रॉम्प्ट से चलाने की आवश्यकता होगी।

चल रहे दो नोटपैड प्रक्रियाओं की जाँच करके शुरू करें:

नोटपैड: ( accesschk.exe -v -p notepad)

[11140] notepad.exe
  Medium Mandatory Level [No-Write-Up, No-Read-Up]
  RW DOMAIN\Tannerf
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS
[11004] notepad.exe
  High Mandatory Level [No-Write-Up, No-Read-Up]
  RW BUILTIN\Administrators
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS

एक मेरे डोमेन उपयोगकर्ता नाम के तहत चल रहा है, दूसरा अंतर्निहित समूह के तहत चल रहा है। इसका एक उच्च अनिवार्य स्तर भी है । आप -fविशेषाधिकारों और टोकन के टूटने के लिए ध्वज के साथ भी चल सकते हैं ।

MSIExec और MSI फाइलें

मुझे लगा कि दौड़ते समय चीजें थोड़ी अधिक जटिल हो सकती हैं msiexec। मेरे पास एक Google Chrome स्टैंडअलोन इंस्टॉलर है जो परीक्षण के लिए आसान था।

msiexec.exe ऊंचे संकेत से Chrome इंस्टॉलर को लॉन्च करना:

D:\Users\tannerf>accesschk.exe -p msiexec.exe

[10540] msiexec.exe
  RW BUILTIN\Administrators
  RW NT AUTHORITY\SYSTEM

MSI द्वारा chrome_installer.exe

D:\Users\tannerf>accesschk.exe -p chrome_installer.exe

[5552] chrome_installer.exe
     NT AUTHORITY\SYSTEM
     OWNER RIGHTS
  RW NT SERVICE\msiserver

अब कट और सूखा नहीं है! ऐसा लगता है chrome_installer.exeकि MSIServer सेवा के माध्यम से एक प्रक्रिया चलाई गई थी।


इससे मुझे आश्चर्य होता है कि अन्य इंस्टॉलर का व्यवहार कैसा हो सकता है, इसलिए मैंने एक एवरनोट चलाया।

उन्नत msiexec.exe एक एवरनोट इंस्टॉलर को लॉन्च करना:

[6916] msiexec.exe
  High Mandatory Level [No-Write-Up, No-Read-Up]
  RW BUILTIN\Administrators
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS
[4652] msiexec.exe
  System Mandatory Level [No-Write-Up, No-Read-Up]
  R  BUILTIN\Administrators
        PROCESS_QUERY_INFORMATION
        PROCESS_QUERY_LIMITED_INFORMATION

दिलचस्प; एक msiexec.exe है जो इस समय सिस्टम स्तर के अंतर्गत आता है। मैंने प्रोसेस मॉनीटर का उपयोग यह जानने के लिए किया कि वास्तविक इंस्टॉल विंडो जो पॉप अप होती है वह सिस्टम स्तर msiexec प्रक्रिया से आती है। उच्च अनिवार्य स्तर की हत्या ने सिस्टम स्तर की प्रक्रिया को भी मार दिया।

नॉन-एलीवेटेड msiexec.exe एक एवरनोट इंस्टॉलर को लॉन्च करना:

[7472] msiexec.exe
  Medium Mandatory Level [No-Write-Up, No-Read-Up]
  RW DOMAIN\Tannerf
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS
[4404] msiexec.exe
  System Mandatory Level [No-Write-Up, No-Read-Up]
  R  BUILTIN\Administrators
        PROCESS_QUERY_INFORMATION
        PROCESS_QUERY_LIMITED_INFORMATION

एवरनोट की तरह लग रहा है सिस्टम स्तर तक पहुँच प्राप्त होगा। इंस्टॉलर पर डबल-क्लिक करने का परिणाम समान होता है।


निष्कर्ष:

मुझे लगता है कि यह बहुत अच्छी तरह से प्रदर्शित किया गया है कि जब तक अन्यथा निर्दिष्ट न हो, एक प्रक्रिया अनुमति प्राप्त करेगी। यह गारंटी नहीं देता है कि msiexec SomeProgram.msiसभी प्रक्रियाओं की प्रक्रियाओं में उच्च अनिवार्य स्तर के साथ चलेगा; यह सिस्टम स्तर या MSIServer के तहत चल सकता है। आपका माइलेज अलग-अलग हो सकता है, और मुझे कई उदाहरणों को देखकर आश्चर्य नहीं होगा जहां ये नियम "टूटे हुए" प्रतीत होते हैं।


2
इसके अलावा अनुभवजन्य परीक्षण से, विंडोज प्रक्रियाओं कर रहे हैं चाहिए माता पिता से विरासत अनुमति।
बॉब

परीक्षण के साथ महान बिंदु। मैंने इसे एक cmd.exe से आज़माया, जिसे उन्नत अनुमतियों के साथ शुरू किया गया था और मुझे C:\Windowsऊंचे cmd.exe से Notepad प्रारंभ करने के बावजूद फ़ाइल को सहेजने की अनुमति देने से इनकार कर दिया गया है। क्या "माता-पिता से विरासत में मिली" नियम को तोड़ने का एक तरीका है?
इयान सी।

@IanC। कम विशेषाधिकारों के साथ एक बाल प्रक्रिया को चलाना संभव है। मुझे अपनी पिछली टिप्पणी " डिफ़ॉल्ट रूप से विरासत में मिलने वाली" के रूप में अंकित करनी चाहिए थी । मैंने उस जानकारी को शामिल करने के लिए अपने उत्तर में संशोधन किया है। हालांकि, नोटपैड को प्रशासनिक विशेषाधिकार प्राप्त होना चाहिए
बॉब

@IanC। अजीब, यह मेरे लिए काम किया। क्या आपने एक्सेसचेक की कोशिश की? निश्चित नहीं है कि अंतर क्या हो सकता है।
टान्नर फॉकनर

11

डिफ़ॉल्ट रूप से, Windows प्रक्रियाएं माता-पिता से उनका सुरक्षा संदर्भ प्राप्त करेंगी:

एक प्रक्रिया के लिए डिफ़ॉल्ट सुरक्षा डिस्क्रिप्टर में एसीएल प्राथमिक या प्रतिरूपण निर्माता के टोकन से आते हैं।

MSDN प्रक्रिया सुरक्षा और पहुँच अधिकारों पर

हालांकि, कम विशेषाधिकारों के साथ प्रक्रियाओं को फैलाना संभव है:

जबकि प्रक्रियाएं उस प्रक्रिया के अखंडता स्तर को प्राप्त करती हैं जो इसे पैदा करती हैं, प्रक्रिया के निर्माण के समय अखंडता स्तर को अनुकूलित किया जा सकता है। उपयोगकर्ता इंटरफ़ेस विशेषाधिकार अलगाव तकनीक में विंडो संदेशों के लिए सीमा को परिभाषित करने के लिए, अनिवार्य एकीकृत नियंत्रण का उपयोग विंडोज एक्सप्लोरर, इंटरनेट एक्सप्लोरर, Google क्रोम और एडोब रीडर जैसे अनुप्रयोगों द्वारा किया जाता है ताकि सिस्टम में कमजोर वस्तुओं से दस्तावेजों को अलग किया जा सके।

इस अन्य MSDN पृष्ठ से संबंधित अनिवार्य अखंडता नियंत्रण पर विकिपीडिया , यहाँ भी उल्लेख किया गया हैएक अन्य प्रस्तुति में विरासत की प्रक्रिया का भी उल्लेख किया गया है।

हालाँकि, मेरा मानना ​​है कि cmd.exe @ Tanner के परीक्षण और उत्तर शो के रूप में संभव के सबसे बड़े स्तर पर विशेषाधिकार विरासत के साथ बाल प्रक्रियाओं को लॉन्च करेगा।


2

निष्पादित कमांड के निजीकृत को उन्नत करने के दो तरीके हो सकते हैं:

  • runas /trustlevel:0x20000 "msiexec SomeProgram.msi"( runas /showtrustlevelsयह जानने के लिए दौड़ें कि 0x20000डिफ़ॉल्ट उपयोगकर्ता ट्रस्टलेवल है - यह प्रोग्राम को स्थापित करने / चलाने के लिए भी काम करता है जिसे "उन्नत विशेषाधिकार" की आवश्यकता होती है - वास्तव में व्यवस्थापक के रूप में चलाने पर उन्हें अनुदान दिए बिना। यह टान्नर के नोटपैड टेस्ट को पास करता है ) इस एसयू के अनुसार।
  • psexec -l -d msiexec SomeProgram.msiइस एसयू उत्तर के अनुसार (शायद कुछ "" भी आवश्यक हैं, मैंने इसका परीक्षण नहीं किया क्योंकि runasमेरे लिए यह ठीक काम करता है)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.