Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Grouper — AD Group Policy में असुरक्षित सेटिंग्स खोजने में मदद करने के लिए एक PowerShell स्क्रिप्ट। (अप्रचलित, इसके बजाय Grouper2 का उपयोग करें!) | Kitploit
उपकरण/GitHubGitHub/l0ss/grouper
विशेषाधिकार वृद्धिभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगपेनिट्रेशन टेस्टिंग
GitHubl0ss/grouper

Grouper

AD Group Policy में असुरक्षित सेटिंग्स खोजने में मदद करने के लिए एक PowerShell स्क्रिप्ट। (अप्रचलित, इसके बजाय Grouper2 का उपयोग करें!)

रिपॉजिटरी देखें
73211617 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Grouper

DONT USE GROUPER ANY MORE. USE GROUPER2! https://github.com/l0ss/Grouper2

एक PowerShell स्क्रिप्ट जो AD ग्रुप पॉलिसी में कमजोर सेटिंग्स ढूंढने में मदद करती है।

मछली की तस्वीर

फोटो: जॉन हैनसन - https://www.flickr.com/people/61952179@N00?rb=1 - https://creativecommons.org/licenses/by-sa/2.0/

सारांश

Grouper एक PowerShell मॉड्यूल है जो पेंटेस्टर्स और रेड टीमर्स के लिए डिज़ाइन किया गया है (हालाँकि संभवतः sysadmins के लिए भी उपयोगी है) जो Get-GPOReport cmdlet (Microsoft के Group Policy मॉड्यूल का हिस्सा) से प्राप्त (आमतौर पर बहुत शोरगुल वाले) XML आउटपुट को छानता है और Group Policy Objects (GPOs) में परिभाषित उन सभी सेटिंग्स की पहचान करता है जो किसी ऐसे व्यक्ति के लिए उपयोगी हो सकती हैं जो कुछ मजेदार/बुरा करने की कोशिश कर रहा है।

GPOs में मिलने वाली चीज़ों के उदाहरण:

  • GPOs जो स्वयं GPO पर गैर-डिफ़ॉल्ट उपयोगकर्ताओं को संशोधित अनुमतियाँ प्रदान करते हैं।
  • स्टार्टअप और शटडाउन स्क्रिप्ट
    • तर्क और स्क्रिप्ट में स्वयं अक्सर क्रेडेंशियल शामिल होते हैं।
    • स्क्रिप्ट अक्सर ऐसी अनुमतियों के साथ संग्रहीत की जाती हैं जो आपको उन्हें संशोधित करने की अनुमति देती हैं।
  • MSI इंस्टॉलर स्वचालित रूप से तैनात किए जा रहे हैं
    • फिर से, अक्सर ऐसी जगह संग्रहीत होते हैं जो आपको संशोधित अनुमतियाँ प्रदान करेंगे।
  • अच्छे पुराने ज़माने के Group Policy Preferences पासवर्ड।
  • क्रेडेंशियल वाले ऑटोलोगॉन रजिस्ट्री एंट्रीज़।
  • VNC जैसी मजेदार चीज़ों के लिए रजिस्ट्री में संग्रहीत अन्य क्रेडेंशियल्स।
  • संग्रहीत क्रेडेंशियल्स के साथ शेड्यूल किए गए कार्य।
    • अक्सर खराब सुरक्षित फ़ाइल शेयरों से भी चीज़ें चलाते हैं।
  • उपयोगकर्ता अधिकार
    • यह देखने के लिए उपयोगी कि प्रशासकों ने गलती से 'Domain Users' को RDP एक्सेस या वे मजेदार अधिकार दे दिए जो आपको पूर्ण व्यवस्थापक विशेषाधिकारों के बिना भी mimikatz चलाने देते हैं।
  • स्थानीय फ़ाइल अनुमतियों में बदलाव
    • उन मशीनों को खोजने के लिए अच्छा है जहाँ प्रशासकों ने "C:\Program Files" पर "Everyone" के लिए "Full Control" लागू कर दिया है।
  • फ़ाइल शेयर
  • INI फ़ाइलें
  • पर्यावरण चर
  • ... और भी बहुत कुछ! (ठीक है, बहुत ज़्यादा नहीं, लेकिन कुछ)

हाँ, यह काफी खुरदरा है, लेकिन यह मुझे उन भयानक 150MB HTML GPO रिपोर्टों को पढ़ने में लगने वाले अत्यधिक समय से बचाता है, और अगर यह मेरे लिए काम करता है तो शायद आपके लिए भी काम करे।

ध्यान दें: जबकि कुछ फ़ंक्शन नामों में 'ऑडिट' शब्द शामिल हो सकता है, Groper स्पष्ट रूप से सर्वोत्तम अभ्यास कॉन्फ़िगरेशन आदि के लिए एक संपूर्ण ऑडिट नहीं है। अगर आप वह चाहते हैं, तो आपको Microsoft SCT और LGPO.exe या कुछ और का उपयोग करना चाहिए।

उपयोग

Group Policy cmdlets स्थापित Windows मशीन पर GPO रिपोर्ट जनरेट करें। ये डिफ़ॉल्ट रूप से डोमेन कंट्रोलर पर स्थापित होते हैं, RSAT का उपयोग करके Windows क्लाइंट पर स्थापित किए जा सकते हैं, या Windows सर्वर पर "Add Feature" विज़ार्ड के माध्यम से सक्षम किए जा सकते हैं।

root@kitploit:~
Get-GPOReport -All -ReportType xml -Path C:\temp\gporeport.xml

Grouper मॉड्यूल आयात करें।

root@kitploit:~
Import-Module .\grouper.psm1

Grouper चलाएँ।

root@kitploit:~
Invoke-AuditGPOReport -Path C:\temp\gporeport.xml

पैरामीटर

कुछ पैरामीटर भी हैं जिन्हें आप बदल सकते हैं जो Grouper द्वारा दिखाई जाने वाली पॉलिसी सेटिंग्स को बदल देते हैं:

root@kitploit:~
-showDisabled

डिफ़ॉल्ट रूप से, Grouper केवल उन GPOs को दिखाएगा जो वर्तमान में सक्षम हैं और AD में एक OU से लिंक हैं। यह उस व्यवहार को टॉगल करता है।

root@kitploit:~
-Online

डिफ़ॉल्ट रूप से Grouper केवल Get-GPOReport के वास्तविक XML आउटपुट के साथ काम करता है, और बिल्कुल भी नेटवर्क संचार नहीं करता है, जिससे यह काफी "opsec सुरक्षित" है, हालाँकि मुझे उस शब्द से नफ़रत है।

यदि आप इसे -Online के साथ इनवोक करते हैं, तो Grouper उन चेकों को चालू करेगा जिनमें कम से कम उस AD डोमेन से बात करना शामिल है जहाँ से रिपोर्ट जनरेट हुई थी, लेकिन संभवतः e.g. फ़ाइल सर्वर से बात करना भी शामिल होगा। यह Grouper को उपयोगी चीज़ें करने की अनुमति देगा जैसे GPOs द्वारा लक्षित फ़ाइलों पर ACLs रिपोर्ट करना, और जाँचना कि क्या e.g. वर्तमान उपयोगकर्ता प्रश्न में फ़ाइल में लिख सकता है।

root@kitploit:~
-Level

Grouper में 3 स्तरों का फ़िल्टरिंग है जिसे आप इसके आउटपुट पर लागू कर सकते हैं।

  1. मुझे वे सभी सेटिंग्स दिखाएँ जो आप कर सकते हैं।
  2. (डिफ़ॉल्ट) मुझे केवल वे सेटिंग्स दिखाएँ जो 'दिलचस्प' लगती हैं लेकिन कमजोर हो भी सकती हैं और नहीं भी।
  3. मुझे केवल वे सेटिंग्स दिखाएँ जो निश्चित रूप से एक बहुत बुरा विचार हैं और संभवतः उनमें क्रेडेंशियल होंगे या अन्यथा मुझे एक होस्ट पर व्यवस्थापक प्रदान करेंगे।

उपयोग सीधा है। -Level 3, -Level 2, आदि।


बार-बार पूछे जाने वाले प्रश्न

मैं एक गिग पर हूँ और मुझे Group Policy cmdlets स्थापित कोई डोमेन-जॉइंड मशीन नहीं मिल रही है जिस तक मेरी पहुँच हो और मैं उन्हें स्थापित नहीं करना चाहता क्योंकि यह शोरगुल और गड़बड़ है!

Get-GPOReport runas /netonly के माध्यम से गैर-डोमेन-जॉइंड मशीनों पर भी ठीक काम करता है। आपको कुछ कम-विशेषाधिकार वाले क्रेडेंशियल की आवश्यकता होगी, लेकिन यह अपेक्षित है।

इस तरह करें:

root@kitploit:~
runas /netonly /user:domain\user powershell.exe

एक गैर-डोमेन-जॉइंड मशीन पर जो डोमेन कंट्रोलर के साथ संचार कर सकती है।

फिर परिणामी PowerShell सत्र में इस तरह करें:

root@kitploit:~
Get-GpoReport -Domain example.com -All -ReportType xml -Path C:\temp\gporeport.xml

आसान।

मैं आप पर भरोसा नहीं करता इसलिए मैं आपकी संदिग्ध दिखने वाली स्क्रिप्ट को डोमेन-जॉइंड मशीन पर नहीं चलाना चाहता, लेकिन मैं Grouper आज़माना चाहता हूँ।

Grouper को काम करने के लिए केवल PowerShell 2.0 और Get-GPOReport से XML फ़ाइल आउटपुट की आवश्यकता है। आप इसे बिना नेटवर्क कार्ड के VM पर चला सकते हैं यदि आप चिंतित हैं और यह ठीक काम करेगा।

हालाँकि, यह काफी बुनियादी कोड है इसलिए यह देखना मुश्किल नहीं होना चाहिए कि यह कुछ भी दूरस्थ रूप से संदिग्ध नहीं कर रहा है।

मुझे लगता है कि यह बेवकूफी है कि आप Grouper के लिए MS Group Policy cmdlets/RSAT पर निर्भर हैं। आपको इसे सीधे डोमेन से क्वेरी करने या SYSVOL से पॉलिसी फ़ाइलों को पार्स करने के लिए लिखना चाहिए।

संक्षिप्त उत्तर: हाँ।

लंबा उत्तर: हाँ, उन चीजों में से एक करना बेहतर होगा, लेकिन कुछ चीजें हैं जिन्होंने मुझे अभी तक उन्हें करने से रोका।

आदर्श रूप से मैं SYSVOL से सीधे पॉलिसी फ़ाइलों को पार्स करना चाहूंगा, लेकिन वे कई अलग-अलग फ़ाइल स्वरूपों में संग्रहीत हैं, कुछ मालिकाना हैं, उन्हें पढ़ना एक वास्तविक दर्द है, और मेरे पास उनके लिए खरोंच से पार्सर लिखने का न तो समय है और न ही झुकाव जब Microsoft पहले से ही cmdlets प्रदान करता है जो काम बहुत अच्छी तरह से करते हैं।

बहुत दूर के भविष्य में मैं Microsoft के Get-GPOReport को Grouper में बेक करना चाहूंगा, ताकि आपको RSAT की बिल्कुल भी आवश्यकता न हो, लेकिन मुझे यह पता लगाना होगा कि क्या यह किसी प्रकार का कॉपीराइट उल्लंघन होगा। मुझे यह भी पता लगाना होगा कि मैंने अभी जो कहा उसे वास्तव में कैसे करना है।


प्रश्न जिनकी मुझे आशा है

Grouper मुझे ये सभी सेटिंग्स दिखा रहा है जो कमजोर नहीं हैं। क्या बकवास है यार? झूठी सकारात्मकता बहुत है?

Grouper कोई भेद्यता स्कैनर नहीं है। Grouper केवल Group Policy रिपोर्टों में भारी मात्रा में फालतू और शोर को फ़िल्टर करके आपको केवल उन पॉलिसी सेटिंग्स को दिखाता है जो शोषण योग्य तरीकों से कॉन्फ़िगर की जा सकती हैं।

जहाँ तक संभव हो मैं प्रत्येक श्रेणी की जाँचों के माध्यम से काम कर रहा हूँ ताकि स्पष्ट रूप से गैर-कमजोर कॉन्फ़िगरेशन को हटाने और शोर के स्तर को और कम करने के लिए अतिरिक्त फ़िल्टरिंग जोड़ सकूं, लेकिन Group Policy अत्यंत लचीला है और किसी प्रशासक द्वारा की जा सकने वाली हर संभावित गलती का अनुमान लगाना काफी कठिन है।

Grouper ने मुझे वह चीज़ नहीं दिखाई जो मुझे पता है कि Group Policy में पूरी तरह कमजोर है। क्या बकवास है यार? झूठी नकारात्मकता बहुत है?

बढ़िया, आपको अभी Grouper को बेहतर बनाने का एक तरीका मिल गया! नीचे स्क्रॉल करें और आप देखेंगे कि मैंने Grouper में नई जाँचें जोड़ने के लिए एक छोटी मार्गदर्शिका प्रदान की है।

मेरे पास कोई लैब वातावरण नहीं है और मेरे पास कोई GPO रिपोर्ट फ़ाइल भी नहीं है! और मैं बहुत अधीर हूँ!

मैंने आपकी पीठ थपथपाई है, बच्चे। रिपॉजिटरी में एक test_report.xml है जिसे आप आज़मा सकते हैं। इसमें बहुत सारी बुरी सेटिंग्स हैं ताकि आप देख सकें कि वह कैसा दिखता है।

आपको इसे -showDisabled फ्लैग के साथ चलाना होगा क्योंकि यह इतनी भयानक कॉन्फ़िगरेशन से भरा है कि मैं लैब वातावरण में भी GPO को सक्षम नहीं करना चाहता था।

मैं उस पिछले आदमी से भी अधिक अधीर हूँ और तुरंत सुंदर चित्र चाहता हूँ!

ठीक है।

Screenshot of test output

लेकिन रुको, मैं कैसे पता लगाऊं कि ये पॉलिसी किन उपयोगकर्ताओं/कंप्यूटरों पर लागू होती हैं? आपकी चीज़ बेकार है!

संक्षिप्त उत्तर: PowerView इस काम को अच्छी तरह से करेगा।

लंबा उत्तर: मैं किसी बिंदु पर इस कार्यक्षमता को जोड़ने का प्रयास करूँगा, लेकिन तब तक चुप रहें और PowerView का उपयोग करें।

मुझे Grouper द्वारा की जाने वाली जाँचों में से एक से नफ़रत है और मैं इसे फिर कभी नहीं देखना चाहता।

ठीक है, आसानी से ठीक हो जाता है।

grouper.ps1 खोलें, "$polchecks" ऐरे ढूंढें और बस उस लाइन को कमेंट कर दें जहाँ वह जाँच ऐरे में जोड़ी गई है।

हो गया।

मैं Grouper को बेहतर बनाना चाहता हूँ लेकिन मैं आपके भयानक स्पेगेटी-कोड को समझ नहीं पा रहा हूँ। मेरी मदद करें आपकी मदद करने में।

ज़रूर, अच्छा लगता है।

  1. कुछ GPOReport xml आउटपुट प्राप्त करें जिसमें उस प्रकार की पॉलिसी/सेटिंग शामिल हो जिसे आप Grouper में खोजने में सक्षम बनाना चाहते हैं। इसके लिए लैब वातावरण में उपयुक्त पॉलिसी तैयार करने की आवश्यकता हो सकती है।

  2. <GPO> xml ऑब्जेक्ट ढूंढें जो आपकी लक्ष्य पॉलिसी से मेल खाता हो।

  3. xml का वह उपखंड ढूंढें जो उस जानकारी से मेल खाता हो जिसे आप पॉलिसी से निकालना चाहते हैं। पॉलिसी सेटिंग्स को या तो User या Computer पॉलिसी में विभाजित किया गया है, इसलिए यह आमतौर पर इनमें से एक में होगा:

    root@kitploit:~
    GPO.Computer.ExtensionData.Extension
    या
    GPO.User.ExtensionData.Extension
    
  4. अब कष्टप्रद भाग - इस कोड के इतने गड़बड़ होने का कारण यह है कि प्रत्येक पॉलिसी सेटिंग अनुभाग अलग तरीके से संरचित है और वे बेहद भिन्न नामकरण परंपराओं का उपयोग करते हैं, इसलिए आपको यह पता लगाने की आवश्यकता होगी कि आपकी लक्ष्य पॉलिसी कैसे संरचित है। शुभकामनाएँ?

  5. यहाँ एक चेक फ़ंक्शन का खाका है जिसे आप शुरू करने के लिए उपयोग कर सकते हैं। सुनिश्चित करें कि यदि कुछ भी दिलचस्प नहीं मिलता है तो यह बिल्कुल वापस नहीं आता या $null लौटाता है।

    root@kitploit:~
    Function Get-GPOThing {
        [cmdletbinding()]
        Param (
            [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]  [System.Xml.XmlElement]$polXML,
            [Parameter(Mandatory=$true)][ValidateSet(1,2,3)][int]$level
        )
    
        ######
        # विवरण: चीजों के लिए जाँच करता है।
        # कमजोर: यदि Level -eq 3 तो यह दिखाता है इसका विवरण
        # दिलचस्प: यदि Level -eq 2 तो यह दिखाता है इसका विवरण
        # उबाऊ: सभी चीजें।
        ######
    
    	$settingsThings = ($polXml.Thing.ExtensionData.Extension.Thing |  Sort-Object GPOSettingOrder)
    
        if ($settingsThings) {
    	    foreach ($setting in $settingsThings) {
                if ($level -eq 1) {
                    $output = @{}
                    $output.Add("Name", $setting.Name)
                    if ($setting.SettingBoolean) {
                        $output.Add("SettingBoolean", $setting.SettingBoolean)
                    }
                    if ($setting.SettingNumber) {
                        $output.Add("SettingNumber", $setting.SettingNumber)
                    }
                    $output.Add("Type", $setting.Type.InnerText)
                    Write-Output $output
                    ""
                }
            }
        }
    }
    

श्रेय, शिकायतें, टिप्पणियाँ, मृत्यु धमकियाँ, त्रुटि सूची

बहुत-बहुत धन्यवाद:

  • @harmj0y को उनके GPP पासवर्ड डिक्रिप्शन हेल्पर फ़ंक्शन के लिए।
  • @sysop_host और @prashant3535 को उनकी सहायता और प्रोत्साहन के लिए। मेरा मानना है कि इस चीज़ में अभी भी @sysop_host से चुराई गई एक या दो पंक्तियाँ हो सकती हैं, लेकिन मुझे वास्तव में नहीं पता कि कहाँ और मैं अपने बेकार कोड के लिए उन्हें दोष देना नहीं चाहूंगा।

बेकार कोड की बात करें तो, हाँ, मुझे पता है कि यह थोड़ा गड़बड़ है। मैंने इसे यथासंभव मॉड्यूलर बनाने की कोशिश की है ताकि दूसरे बिना अधिक परेशानी के अतिरिक्त जाँचें जोड़ सकें, लेकिन इसे अभी भी बहुत प्यार की आवश्यकता है। यदि आप कोई ऐसी गलती देखते हैं जिसे मैंने किया है जिसे तत्काल ठीक करने की आवश्यकता है, तो कृपया मुझे बताएं।

टूल डाउनलोड करें
  • Ctrl-f करके "$polchecks" पर जाएं और इसे दूसरों के साथ जाँचों की सूची में जोड़ें।

  • इसका परीक्षण करें।

  • यदि यह काम करता है, तो एक पुल रिक्वेस्ट सबमिट करें!

  • यदि आप अटक जाते हैं, तो मुझसे संपर्क करें। यदि मैं कुछ मिनट निकाल सकूँ तो मदद करने का प्रयास करूँगा।