
PowerShell MachineAccountQuota और DNS शोषण उपकरण

डिफ़ॉल्ट सक्रिय निर्देशिका ms-DS-MachineAccountQuota विशेषता सेटिंग सभी डोमेन उपयोगकर्ताओं को एक डोमेन में 10 मशीन खाते जोड़ने की अनुमति देती है। Powermad में ms-DS-MachineAccountQuota का शोषण करने के लिए फ़ंक्शनों का एक सेट शामिल है, बिना किसी वास्तविक सिस्टम को AD से जोड़े।
यह फ़ंक्शन किसी मशीन खाते की विशेषता में भरे गए मान वापस कर सकता है।
Get-MachineAccountAttribute -MachineAccount test -Attribute discriptionयह फ़ंक्शन मशीन खातों पर ms-DS-CreatorSID प्रॉपर्टी का उपयोग करके उपयोगकर्ता नामों या SID और संबंधित मशीन खाते की सूची वापस करता है। ms-DS-CreatorSID प्रॉपर्टी केवल तब भरी जाती है जब किसी अप्रतिष्ठित उपयोगकर्ता द्वारा मशीन खाता बनाया जाता है।
Get-MachineAccountCreatorयह फ़ंक्शन New-MachineAccount के माध्यम से जोड़े गए मशीन खाते को अक्षम कर सकता है। इस फ़ंक्शन का उपयोग उसी उपयोगकर्ता के साथ किया जाना चाहिए जिसने मशीन खाता बनाया था।
Disable-MachineAccount -MachineAccount testयह फ़ंक्शन Disable-MachineAccount के माध्यम से अक्षम किए गए मशीन खाते को सक्षम कर सकता है। इस फ़ंक्शन का उपयोग उसी उपयोगकर्ता के साथ किया जाना चाहिए जिसने मशीन खाता बनाया था।
Enable-MachineAccount -MachineAccount testयह फ़ंक्शन सीधे LDAP जोड़ अनुरोध के माध्यम से डोमेन नियंत्रक में एक नया मशीन खाता जोड़ सकता है, न कि होस्ट सिस्टम की सक्रिय निर्देशिका से जुड़ने की स्थिति को प्रभावित करके।
LDAP जोड़ अनुरोध उस जोड़ अनुरोध पर आधारित है जो सिस्टम को डोमेन में शामिल करते समय उपयोग किया जाता है। निम्नलिखित विशेषताएँ सेट की जाती हैं (अधिकतर DC द्वारा मान्य):
एक नए मशीन खाते का उपयोग कार्यों के लिए किया जा सकता है जैसे 'Domain Computers' समूह को दिए गए विशेषाधिकार का लाभ उठाना, या डोमेन गणना, DNS शोषण आदि के लिए एक अतिरिक्त खाते के रूप में। डिफ़ॉल्ट रूप से, मशीन खातों के पास स्थानीय रूप से लॉग ऑन करने की अनुमति नहीं है। आप या तो उन टूल्स/क्लाइंट का उपयोग कर सकते हैं जो सीधे नेटवर्क क्रेडेंशियल स्वीकार करते हैं, या 'runsas /netonly' या @harmj0y के Invoke-UserImpersonation/Invoke-RevertToSelf का उपयोग कर सकते हैं जो PowerView में शामिल हैं।
मानक उपयोगकर्ताओं के साथ बनाए गए मशीन खातों में mS-DS-CreatorSID मानक उपयोगकर्ता के SID से भरा होगा।
ध्यान दें कि ms-DS-MachineAccountQuota प्रमाणित उपयोगकर्ताओं को AD से जोड़े गए मशीन खातों को हटाने की क्षमता प्रदान नहीं करता है। यदि आप इस कार्य को अपने क्लाइंट को सौंपने से बचना चाहते हैं तो खाते को हटाने के लिए उन्नत विशेषाधिकार प्राप्त करने की आवश्यकता होगी।
नया मशीन खाता जोड़ें
New-MachineAccount -MachineAccount test
जोड़े गए खाते का उपयोग runas /netonly के साथ करें
runas /netonly /user:domain\test$ powershell
यह फ़ंक्शन किसी विशेषाधिकार प्राप्त खाते के साथ मशीन खाते को हटाता है।
Remove-MachineAccount -MachineAccount test -Credential $domainadminयह फ़ंक्शन New-MachineAccount के माध्यम से जोड़े गए खाते की कुछ विशेषताओं को भर सकता है, यदि किसी उपयोगकर्ता के पास लेखन पहुँच हो। इस फ़ंक्शन का उपयोग उसी उपयोगकर्ता के साथ किया जाना चाहिए जिसने मशीन खाता बनाया था।
यहाँ कुछ सामान्य लेखन पहुँच सक्षम विशेषताओं की सूची है:
SamAccountName विशेषता से अंतिम '$' हटाएं
Set-MachineAccountAttribute -MachineName test -Attribute SamAccountName -Value test
संशोधित खाते का उपयोग runas /netonly के साथ करें
runas /netonly /user:domain\test powershell
यह फ़ंक्शन New-MachineAccount का उपयोग करके एक ही अप्रतिष्ठित खाते से MachineAccountQuota के माध्यम से अधिक से अधिक मशीन खाते बनाने के लिए पुनरावर्ती रूप से उपयोग करता है। विवरण के लिए निम्नलिखित ब्लॉग पोस्ट देखें:
डिफ़ॉल्ट रूप से, प्रमाणित उपयोगकर्ताओं के पास सक्रिय निर्देशिका-एकीकृत DNS (ADIDNS) ज़ोन पर 'Create all child objects' अनुमति होती है। अधिकांश रिकॉर्ड जो वर्तमान में AD ज़ोन में मौजूद नहीं हैं, उन्हें जोड़ा/हटाया जा सकता है।
यह फ़ंक्शन डायनामिक DNS रिकॉर्ड जोड़ने/हटाने के लिए उपयोग किया जा सकता है यदि डोमेन नियंत्रक पर सुरक्षित डायनामिक अपडेट की डिफ़ॉल्ट सेटिंग सक्षम हो। A, AAAA, CNAME, MX, PTR, SRV और TXT रिकॉर्ड वर्तमान में समर्थित हैं। Invoke-DNSUpdate, BIND के nsupdate टूल पर आधारित है जब '-g' या 'gsstsig' विकल्पों का उपयोग किया जाता है।
एक A रिकॉर्ड जोड़ें
Invoke-DNSUpdate -DNSType A -DNSName www -DNSData 192.168.100.125
एक A रिकॉर्ड हटाएं
Invoke-DNSUpdate -DNSType A -DNSName www.test.local
एक SRV रिकॉर्ड जोड़ें
Invoke-DNSUpdate -DNSType SRV -DNSName _autodiscover._tcp.test.local -DNSData system.test.local -DNSPriority 100 -DNSWeight 80 -DNSPort 443
यह फ़ंक्शन किसी ADIDNS नोड को टॉम्बस्टोन कर सकता है।
यह फ़ंक्शन टॉम्बस्टोन किए गए नोड को वैध रिकॉर्ड में बदल सकता है।
Enable-ADIDNSNode -Node *यह फ़ंक्शन DNS नोड की विशेषता में भरे गए मान वापस कर सकता है।
Get-ADIDNSNodeAttribute -Node test -Attribute dnsRecordयह फ़ंक्शन किसी ADIDNS नोड के स्वामी को वापस कर सकता है।
Get-ADIDNSNodeOwner -Node testयह फ़ंक्शन किसी ADIDNS नोड या ज़ोन का DACL प्राप्त करता है।
डोमेन से जुड़े सिस्टम से डिफ़ॉल्ट सक्रिय निर्देशिका-एकीकृत ज़ोन का DACL प्राप्त करें।
Get-ADIDNSPermission
डोमेन से जुड़े सिस्टम से test नामक DNS नोड का DACL प्राप्त करें।
Get-ADIDNSPermission -Node test
यह फ़ंक्शन ADIDNS ज़ोन वापस कर सकता है।
Get-ADIDNSZoneयह फ़ंक्शन DNS नोड या ज़ोन DACL में एक ACE जोड़ता है।
Grant-ADIDNSPermission -Node * -Principal "authenticated users"यह फ़ंक्शन एन्क्रिप्टेड LDAP जोड़ अनुरोध के माध्यम से सक्रिय निर्देशिका-एकीकृत DNS (ADIDNS) ज़ोन में एक DNS नोड जोड़ता है।
New-ADIDNSNode -Node * -Tombstoneयह फ़ंक्शन dnsRecord विशेषता के लिए एक वैध बाइट एरे बनाता है।
New-DNSRecordArray -Data 192.168.0.1यह फ़ंक्शन DNS ज़ोन के लिए वर्तमान SOA सीरियल नंबर प्राप्त करता है और इसे निर्धारित राशि से बढ़ाता है।
New-SOASerialNumberArrayयह फ़ंक्शन DNS नोड का नाम बदल सकता है।
Rename-ADIDNSNode -Node test -NodeNew test2यह फ़ंक्शन DNS नोड को हटा सकता है।
Remove-ADIDNSNode -Node *यह फ़ंक्शन DNS नोड या ज़ोन DACL से एक ACE हटाता है।
Revoke-ADIDNSPermission -Node * -Principal user1 -Access GenericAllयह फ़ंक्शन DNS नोड की विशेषता में मान जोड़ सकता है, भर सकता है या अधिलेखित कर सकता है।
Set-ADIDNSNodeAttribute -Node test -Attribute description -Value "do not delete"यह फ़ंक्शन DNS नोड का स्वामी सेट कर सकता है। ध्यान दें कि SeRestorePrivilege वाले टोकन की आवश्यकता है।
Set-ADIDNSNodeOwner -Node test -Principal user1यह फ़ंक्शन ज्ञात उपयोगकर्ता नाम और पासवर्ड से Kerberos AES 256 और 128 कुंजियाँ उत्पन्न कर सकता है। इसका उपयोग invoke-DNSUpdate में पास द हैश का परीक्षण करने के लिए किया जा सकता है।
Get-KerberosAESKey -Salt TEST.LOCALuser