जांचें कि किसी दिए गए उपयोगकर्ता को एक विशेषाधिकार प्राप्त है


16

एक उपयोगकर्ता की एक जोड़ी और एक विशेषाधिकार को देखते हुए मुझे यह निर्धारित करने की आवश्यकता है कि क्या उपयोगकर्ता के पास सर्वर पर विशेषाधिकार है। मेरे सेटअप में निम्नलिखित सत्य है:

  • सर्वर एक डोमेन का एक हिस्सा है लेकिन एक डोमेन नियंत्रक नहीं है
  • बुनियादी ढांचे में विश्वास संबंध के साथ कई डोमेन हैं
  • कभी-कभी उपयोगकर्ता (स्थानीय, डोमेन, या एक अलग डोमेन से) किसी स्थानीय समूह से संबंधित हो सकते हैं, जो किसी अन्य समूह (डोमेन या स्थानीय) में हो, जो सीधे समूह से संबंधित हो।

अंतिम बिंदु के लिए उदाहरण परिदृश्य:

  • User1 DomainA में समूह TeamA का है
  • DomaimA \ TeamA, DomainB \ SpecialAccess का सदस्य है
  • DomainB \ SpecialAccess डोमेनबी \ DomainAdmins का एक सदस्य है
  • अंत में DomainB \ DomainAdmins स्थानीय प्रशासक समूह से संबंधित है
  • स्थानीय व्यवस्थापकों के समूह में SeRemoteInteractiveLogonRight प्रिवलेज है

अब अगर मेरे पास इनपुट DomainA \ User1 और SeRemoteInteractiveLogonRight है तो मुझे हां या ना में जवाब देने की आवश्यकता है। इसलिए मैं मशीन पर स्थानीय नीति को खोलता हूं, ध्यान दें कि जिन समूहों को मैं रुचि रखता हूं उनके खिलाफ सूचीबद्ध किया गया है, फिर भी सर्वर प्रबंधकों के पास जाएं और देखें कि समूह के सदस्य क्या हैं और फिर मुझे यह देखने की जरूरत है कि इन समूहों में किसी भी समूह के सदस्य क्या हैं और इसी तरह।

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

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

संपादित करें : XY समस्या के जाल में न पड़ने की भावना में, मुझे वास्तव में क्या करना है यह सुनिश्चित करने के लिए कि सर्वर के समूह में कोई विशिष्ट उपयोगकर्ता खाते जो कि IIS एप्लिकेशन पूल पहचान के रूप में उपयोग किए जाते हैं, में SeInteractiveLogonRight या SeRemoteInteractiveLogonRight विशेषाधिकार हैं। मुझे IIS भाग से कोई समस्या नहीं है, लेकिन विशेषाधिकार के विरुद्ध किसी खाते की जाँच करने का अंतिम चरण कुछ ऐसा है जिसे मैं जाँचने के लिए सीधा रास्ता खोजने में संघर्ष कर रहा हूँ। मैं चेक को स्वचालित करना चाहूंगा क्योंकि यह कुछ ऐसा है जिसे नियमित रूप से करने की आवश्यकता होगी।


6
यह एक नौकरी के लिए लगता है ... नीति का परिणाम सेट (RSoP)! Technet.microsoft.com/en-us/library/cc758010%28v=WS.10%29.aspx
डेविड जुएल

1
@zespri - मेरा जवाब कचरा था और मैंने इसे हटा दिया। SeInteractiveLogonRight और SeRemoteInteractiveLogonRight उपयोगकर्ता अधिकारों को "सामान्य" विशेषाधिकारों से अलग तरीके से संभाला जाता है और ऐसा लगता है कि उन पर रिपोर्टिंग समस्याग्रस्त होने वाली है। अगर मैं तुम्हारे लिए एक समाधान के साथ आता हूं तो मैं एक और उत्तर दूंगा, लेकिन अभी के लिए मुझे कुछ नहीं मिला है।
इवान एंडरसन

1
@ डेविड - आरएसओपी समस्याग्रस्त है कि आउटपुट में स्थानीय सुरक्षा नीति चूक दिखाई नहीं देगी। तो, कोई भी "कॉन्फ़िगर नहीं की गई" प्रविष्टियां सिर्फ "कॉन्फ़िगर नहीं की गई" के रूप में दिखाई देंगी और आप वास्तव में यह नहीं देख पाएंगे कि स्थानीय सुरक्षा नीति द्वारा प्रिंसिपलों को क्या अधिकार दिया गया है। अंत में, भले ही आप समूह नीति से प्रिंसिपलों की सूची प्राप्त करें, आप ओएस कार्यक्षमता को दोहराने के लिए समूह सदस्यता (संभावित क्रॉस-डोमेन, भी) का विस्तार करेंगे। यह वास्तव में एक बहुत अधिक चुनौतीपूर्ण सवाल निकला है जितना मैंने इसे होने की उम्मीद की थी।
इवान एंडरसन

1
@ इवानर्ससन बिल्कुल! जब मुझे यह अनुमान लगाने के लिए कहा गया कि मुझे कितना समय लगेगा, तो यह एक सीधा काम लग रहा था। और कुछ दिनों के लिए गुगली करने और अलग-अलग चीजों की कोशिश करने के बाद ... कुछ भी नहीं। वर्तमान में मेरी योजना टोकन सूचना के टोकन के साथ GetTokenInformation को पिन करने की है । निश्चित रूप से मुझे टोकन की पकड़ कैसे प्राप्त करनी है, यह जानने की जरूरत है। यह मार्ग इस समय सबसे अधिक आशाजनक लगता है।
एंड्रयू सविनाख

@zespri - NtOpenProcessToken () शायद टोकन पाने का सबसे अच्छा तरीका है। ( Leeholmes.com/blog/2006/07/21/… पर एक नज़र डालें )
इवान एंडरसन

जवाबों:


1

एक्सेस टोकन में अधिकारों के बारे में जानकारी नहीं है, केवल विशेषाधिकारों के बारे में।

आपको यह करने की आवश्यकता है:

  • IIS कार्यकर्ता प्रक्रिया खोजें जो आपके ऐप पूल से मेल खाती है। चूंकि आप ऐप पूल की पहचान जानते हैं, जो कार्यकर्ता प्रक्रिया के नाम के साथ सभी प्रक्रियाओं की गणना करके और पहचान वाले व्यक्ति को फ़िल्टर करके आसान होना चाहिए। यदि एक से अधिक हैं, तो आप किसी का उपयोग कर सकते हैं।
  • टोकनेनग्रुप सूचना वर्ग के साथ GetTokenInformation का उपयोग करें, टोकन टोकन प्रक्रिया पर नहीं। परिणाम आपको सभी सकर्मक समूहों की पहचान देगा जो कि पहचान के हैं। इसका मतलब अप्रत्यक्ष भी है।
  • अब आप इन समूहों के माध्यम से लूप कर सकते हैं और प्रत्येक पर LsaEnumerateAccountRights को कॉल कर सकते हैं और जानकारी को सम्‍मिलित कर सकते हैं। इससे आपको वही मिलेगा जो आप चाहते हैं।

उपरोक्त खाता पहचान के अनुसार प्रक्रिया (और टोकन) के अस्तित्व पर निर्भर करता है। आपके परिदृश्य में यह समस्या नहीं होनी चाहिए। परिदृश्यों में जब यह एक समस्या है, तो आप टोकन-समूह गणना विशेषता के लिए सक्रिय निर्देशिका लुकअप का उपयोग करने का प्रयास कर सकते हैं । यह आलेख कुछ दृष्टिकोणों को सूचीबद्ध करता है कि इसे कैसे खींचना है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.