
पेनिट्रेशन टेस्टिंग का अभ्यास करने के लिए एक Active Directory लैब वातावरण सेट अप करने के लिए कस्टम PowerShell मॉड्यूल।
इस मॉड्यूल का उद्देश्य आंतरिक पैठ परीक्षण का अभ्यास करने के लिए एक Active Directory लैब के परिनियोजन को स्वचालित करना है।
आक्रमण वैक्टरों के निर्माण के संबंध में Joe Helle और उनके PowerShell for Pentesters course को श्रेय।
PSModulePath में ले जाएँ# Display PSModulePath
$env:PSModulePath.split(";")
# Move module to path
Move-Item .\ADLab\ "C:\Windows\system32\WindowsPowerShell\v1.0\Modules\"
# Import global module
Import-Module ADLab
# Import local module
Import-Module .\ADLab.psm1
यह फ़ंक्शन वर्तमान VM/कंप्यूटर को नए फ़ॉरेस्ट के लिए डोमेन नियंत्रक के रूप में उपयोग करने के लिए तैयार करता है। यह एक स्थिर IP पता सेट करता है, DNS सर्वर को लोकलहोस्ट के रूप में सेट करता है और कंप्यूटर का नाम बदलता है।
# Prepare the current VM with all default values while displaying verbose output
Invoke-DCPrep -Verbose
# Set custom hostname and use Google DNS for Internet access
Invoke-DCPrep -Hostname "DC" -NewIPv4DNSServer "8.8.8.8"
# Use custom IP and default gateway and display verbose output
Invoke-DCPrep -Verbose -NewIPv4Address "192.168.1.99" -NewIPv4Gateway "192.168.1.1"
यह फ़ंक्शन AD DS सुविधा स्थापित करता है और बिना किसी उपयोगकर्ता इनपुट की आवश्यकता के एक नया Active Directory फ़ॉरेस्ट सेट करता है। पूरा होने पर कंप्यूटर को पुनरारंभ करता है।
# Installs a new forest with FQDN of "bufu-sec.local" with default DSRM password of "Password!"
Invoke-ForestDeploy -Domain bufu-sec.local
# Installs a new forest with FQDN of "bufu-sec.local" with the DSRM password set to "P@ssword!" and displaying debug messages
Invoke-ForestDeploy -Domain "bufu-sec.local" -DSRMPassword "P@ssword!" -Verbose
यह फ़ंक्शन DNS सुविधा स्थापित करके शुरू होता है। फिर यह प्राथमिक ज़ोन जोड़ता है और सर्वर फ़ॉरवर्डर कॉन्फ़िगर करता है।
# Install and configure DNS on the current host and display verbose output.
Invoke-DNSDeploy -Verbose -NetworkID 192.168.47.0/24 -ZoneFile "47.168.192.in-addr.arpa.dns" -ServerForwarder 1.1.1.1
यह फ़ंक्शन वर्तमान मशीन पर DHCP सुविधा स्थापित करके शुरू होता है। फिर यह आवश्यक सुरक्षा समूहों को जोड़ता है और डोमेन नियंत्रक के साथ नए DHCP सर्वर को अधिकृत करता है। अंत में, यह प्रदत्त मानों के साथ नए DHCP स्कोप को कॉन्फ़िगर करता है।
# Install and configure DHCP on the local DC.
Invoke-DHCPDeploy -Verbose -ScopeName "Default" -ScopeID 192.168.47.0 -StartIP 192.168.47.100 -EndIP 192.168.47.200 -SubnetMask 255.255.255.0 -DNSServer 192.168.47.10 -Router 192.168.47.10
# Install and configure DHCP on the specified DC.
Invoke-DHCPDeploy -Verbose -ScopeName "Default" -ScopeID 192.168.47.0 -StartIP 192.168.47.100 -EndIP 192.168.47.200 -SubnetMask 255.255.255.0 -DNSServer 192.168.47.10 -Router 192.168.47.10 -DCFQDN DC01.bufu-sec.local
फ़ंक्शन ग्लोबल Groups वेरिएबल में परिभाषित समूहों और OUs बनाकर शुरू करता है। फिर डिफ़ॉल्ट रूप से प्रत्येक OU के लिए 10 उपयोगकर्ता ऑब्जेक्ट उत्पन्न करता है।
# Fill forest with objects and display verbose output
Invoke-ADLabConfig -Verbose
# Create 50 users for each OU and display verbose output
Invoke-ADLabConfig -Verbose -UserCount 50
यह फ़ंक्शन डोमेन से एक निश्चित मात्रा में यादृच्छिक उपयोगकर्ता प्राप्त करता है और प्रत्येक के लिए DoesNotRequirePreAuth फ़्लैग सेट करता है। डिफ़ॉल्ट खातों जैसे Administrator और krbtgt को बाहर करता है। डिफ़ॉल्ट रूप से 5% उपयोगकर्ताओं को ASREP-Roastable बनाता है।
# Make 5% of users ASREP-Roastable and display verbose output
Set-ASREPRoasting -Verbose
# Make 10 random users in the domain ASREP-Roastable
Set-ASREPRoasting -VulnerableUsersCount 10
# Make user bufu ASREP-Roastable and display verbose output
Set-ASREPRoasting -Users bufu -Verbose
# Make supplied list of users ASREP-roastable and display verbose output
Set-ASREPRoasting -Users ("bufu", "pepe") -Verbose
यह फ़ंक्शन डोमेन से एक निश्चित मात्रा में यादृच्छिक उपयोगकर्ता प्राप्त करता है और प्रत्येक के लिए एक SPN जोड़ता है। डिफ़ॉल्ट खातों जैसे Administrator और krbtgt को बाहर करता है। डिफ़ॉल्ट रूप से 5% उपयोगकर्ताओं को kerberoastable बनाता है।
# Make 5% of users ASREP-Roastable and display verbose output
Set-Kerberoasting -Verbose
# Make 10 random users in the domain ASREP-Roastable
Set-Kerberoasting -VulnerableUsersCount 10
# Make user bufu ASREP-Roastable and display verbose output
Set-Kerberoasting -Users bufu -Verbose
# Make supplied list of users ASREP-roastable and display verbose output
Set-Kerberoasting -Users ("bufu", "pepe") -Verbose
यह फ़ंक्शन Chads समूह को Domain Admins पर GenericAll अधिकार प्रदान करके शुरू होता है। फिर यह Degens समूह को Chads समूह पर GenericAll अधिकार प्रदान करता है। अंत में, यह Degens समूह के कुछ उपयोगकर्ताओं को Normies समूह के कुछ उपयोगकर्ताओं पर GenericAll अधिकार प्रदान करता है।
# Create vulnerable ACLs and display verbose output
Set-BadACLs -Verbose
यह फ़ंक्शन पहले डोमेन-जॉइन सिस्टम पर TCP पोर्ट 5985 पर WinRM की अनुमति देने के लिए GPO कॉन्फ़िगर करता है। फिर यह GPO के माध्यम से PS Remoting को सक्षम करता है।
# Enable PS Remoting and display verbose output
Set-PSRemoting -Verbose