Active Directory Methodology
Reading time: 43 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic overview
Active Directory एक बुनियादी तकनीक के रूप में कार्य करता है, जो नेटवर्क प्रशासकों को डोमेन, उपयोगकर्ताओं, और ऑब्जेक्ट्स को प्रभावी ढंग से बनाने और प्रबंधित करने में सक्षम बनाता है। इसे स्केल करने के लिए डिज़ाइन किया गया है, जो एक विस्तृत संख्या में उपयोगकर्ताओं को प्रबंधनीय समूहों और उपसमूहों में व्यवस्थित करने की सुविधा प्रदान करता है, जबकि विभिन्न स्तरों पर एक्सेस अधिकारों को नियंत्रित करता है।
Active Directory की संरचना तीन प्राथमिक परतों में विभाजित है: डोमेन, पेड़, और जंगल। एक डोमेन ऑब्जेक्ट्स का एक संग्रह है, जैसे उपयोगकर्ता या डिवाइस, जो एक सामान्य डेटाबेस साझा करते हैं। पेड़ इन डोमेन के समूह होते हैं जो एक साझा संरचना द्वारा जुड़े होते हैं, और एक जंगल कई पेड़ों का संग्रह है, जो विश्वास संबंधों के माध्यम से आपस में जुड़े होते हैं, जो संगठनात्मक संरचना की सबसे ऊपरी परत बनाते हैं। प्रत्येक स्तर पर विशिष्ट एक्सेस और संचार अधिकार निर्धारित किए जा सकते हैं।
Active Directory के भीतर प्रमुख अवधारणाएँ शामिल हैं:
- Directory – Active Directory ऑब्जेक्ट्स से संबंधित सभी जानकारी को रखता है।
- Object – निर्देशिका के भीतर की संस्थाएँ, जैसे उपयोगकर्ता, समूह, या साझा फ़ोल्डर को दर्शाता है।
- Domain – निर्देशिका ऑब्जेक्ट्स के लिए एक कंटेनर के रूप में कार्य करता है, जिसमें कई डोमेन एक जंगल के भीतर सह-अस्तित्व में हो सकते हैं, प्रत्येक अपनी स्वयं की ऑब्जेक्ट संग्रह बनाए रखता है।
- Tree – डोमेन का एक समूह जो एक सामान्य रूट डोमेन साझा करता है।
- Forest – Active Directory में संगठनात्मक संरचना का शिखर, जिसमें कई पेड़ होते हैं जिनमें विश्वास संबंध होते हैं।
Active Directory Domain Services (AD DS) एक श्रृंखला की सेवाओं को शामिल करता है जो नेटवर्क के भीतर केंद्रीकृत प्रबंधन और संचार के लिए महत्वपूर्ण हैं। इन सेवाओं में शामिल हैं:
- Domain Services – डेटा भंडारण को केंद्रीकृत करता है और उपयोगकर्ताओं और डोमेन के बीच इंटरैक्शन को प्रबंधित करता है, जिसमें प्रमाणीकरण और खोज कार्यक्षमताएँ शामिल हैं।
- Certificate Services – सुरक्षित डिजिटल प्रमाणपत्रों के निर्माण, वितरण, और प्रबंधन की देखरेख करता है।
- Lightweight Directory Services – LDAP प्रोटोकॉल के माध्यम से निर्देशिका-सक्षम अनुप्रयोगों का समर्थन करता है।
- Directory Federation Services – एकल सत्र में कई वेब अनुप्रयोगों में उपयोगकर्ताओं को प्रमाणित करने के लिए सिंगल-साइन-ऑन क्षमताएँ प्रदान करता है।
- Rights Management – कॉपीराइट सामग्री की सुरक्षा में मदद करता है, इसके अनधिकृत वितरण और उपयोग को नियंत्रित करता है।
- DNS Service – डोमेन नामों के समाधान के लिए महत्वपूर्ण है।
अधिक विस्तृत स्पष्टीकरण के लिए देखें: TechTerms - Active Directory Definition
Kerberos Authentication
AD पर हमला करने के लिए आपको Kerberos प्रमाणीकरण प्रक्रिया को बहुत अच्छे से समझना होगा।
यदि आप अभी भी नहीं जानते कि यह कैसे काम करता है, तो इस पृष्ठ को पढ़ें।
Cheat Sheet
आप https://wadcoms.github.io/ पर जाकर यह देख सकते हैं कि आप AD को सूचीबद्ध/शोषण करने के लिए कौन से कमांड चला सकते हैं।
warning
Kerberos संचार के लिए पूर्ण योग्य नाम (FQDN) की आवश्यकता होती है। यदि आप किसी मशीन तक IP पते द्वारा पहुँचने का प्रयास करते हैं, तो यह NTLM का उपयोग करेगा और Kerberos का नहीं।
Recon Active Directory (No creds/sessions)
यदि आपके पास केवल AD वातावरण तक पहुँच है लेकिन आपके पास कोई क्रेडेंशियल/सेशंस नहीं हैं, तो आप कर सकते हैं:
- नेटवर्क का परीक्षण करें:
- नेटवर्क को स्कैन करें, मशीनें और खुले पोर्ट खोजें और उन पर कमजोरियों का शोषण करने या क्रेडेंशियल्स निकालने का प्रयास करें (उदाहरण के लिए, प्रिंटर्स बहुत दिलचस्प लक्ष्य हो सकते हैं।
- DNS को सूचीबद्ध करने से डोमेन में प्रमुख सर्वरों के बारे में जानकारी मिल सकती है जैसे कि वेब, प्रिंटर्स, शेयर, VPN, मीडिया, आदि।
gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt
- इस बारे में अधिक जानकारी के लिए सामान्य Pentesting Methodology पर नज़र डालें।
- smb सेवाओं पर शून्य और गेस्ट एक्सेस की जाँच करें (यह आधुनिक Windows संस्करणों पर काम नहीं करेगा):
enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>
smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>
smbclient -U '%' -L //<DC IP> && smbclient -U 'guest%' -L //
- SMB सर्वर को सूचीबद्ध करने के लिए एक अधिक विस्तृत गाइड यहाँ मिल सकती है:
- Ldap को सूचीबद्ध करें
nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>
- LDAP को सूचीबद्ध करने के लिए एक अधिक विस्तृत गाइड यहाँ मिल सकती है (विशेष रूप से गुमनाम एक्सेस पर ध्यान दें):
389, 636, 3268, 3269 - Pentesting LDAP
- नेटवर्क को विषाक्त करें
- क्रेडेंशियल्स इकट्ठा करें Responder के साथ सेवाओं का अनुकरण करते हुए
- रिले हमले का दुरुपयोग करते हुए होस्ट तक पहुँचें
- क्रेडेंशियल्स इकट्ठा करें नकली UPnP सेवाओं को उजागर करते हुए evil-SSDP
- OSINT:
- आंतरिक दस्तावेजों, सोशल मीडिया, सेवाओं (मुख्य रूप से वेब) से उपयोगकर्ता नाम/नाम निकालें जो डोमेन वातावरण के भीतर हैं और सार्वजनिक रूप से उपलब्ध हैं।
- यदि आप कंपनी के कर्मचारियों के पूर्ण नाम पाते हैं, तो आप विभिन्न AD उपयोगकर्ता नाम सम्मेलनों का प्रयास कर सकते हैं (यह पढ़ें)। सबसे सामान्य सम्मेलन हैं: NameSurname, Name.Surname, NamSur (प्रत्येक के 3 अक्षर), Nam.Sur, NSurname, N.Surname, SurnameName, Surname.Name, SurnameN, Surname.N, 3 यादृच्छिक अक्षर और 3 यादृच्छिक संख्या (abc123)।
- उपकरण:
- w0Tx/generate-ad-username
- urbanadventurer/username-anarchy
User enumeration
- Anonymous SMB/LDAP enum: pentesting SMB और pentesting LDAP पृष्ठों की जाँच करें।
- Kerbrute enum: जब एक अमान्य उपयोगकर्ता नाम का अनुरोध किया जाता है तो सर्वर Kerberos त्रुटि कोड KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN का उपयोग करके प्रतिक्रिया देगा, जिससे हमें यह निर्धारित करने की अनुमति मिलती है कि उपयोगकर्ता नाम अमान्य था। मान्य उपयोगकर्ता नाम या तो AS-REP प्रतिक्रिया में TGT उत्पन्न करेगा या त्रुटि KRB5KDC_ERR_PREAUTH_REQUIRED उत्पन्न करेगा, जो इंगित करता है कि उपयोगकर्ता को पूर्व-प्रमाणीकरण करना आवश्यक है।
- MS-NRPC के खिलाफ कोई प्रमाणीकरण नहीं: डोमेन नियंत्रकों पर MS-NRPC (Netlogon) इंटरफेस के खिलाफ auth-level = 1 (कोई प्रमाणीकरण नहीं) का उपयोग करना। यह विधि
DsrGetDcNameEx2
फ़ंक्शन को कॉल करती है MS-NRPC इंटरफेस को बाइंड करने के बाद यह जांचने के लिए कि क्या उपयोगकर्ता या कंप्यूटर बिना किसी क्रेडेंशियल के मौजूद है। NauthNRPC उपकरण इस प्रकार की सूचीबद्धता को लागू करता है। अनुसंधान यहाँ पाया जा सकता है यहाँ
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='DOMAIN'" <IP>
Nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm='<domain>',userdb=/root/Desktop/usernames.txt <IP>
msf> use auxiliary/gather/kerberos_enumusers
crackmapexec smb dominio.es -u '' -p '' --users | awk '{print $4}' | uniq
python3 nauth.py -t target -u users_file.txt #From https://github.com/sud0Ru/NauthNRPC
- OWA (Outlook Web Access) सर्वर
यदि आपने नेटवर्क में इनमें से एक सर्वर पाया है, तो आप इसके खिलाफ उपयोगकर्ता गणना भी कर सकते हैं। उदाहरण के लिए, आप उपकरण MailSniper का उपयोग कर सकते हैं:
ipmo C:\Tools\MailSniper\MailSniper.ps1
# Get info about the domain
Invoke-DomainHarvestOWA -ExchHostname [ip]
# Enumerate valid users from a list of potential usernames
Invoke-UsernameHarvestOWA -ExchHostname [ip] -Domain [domain] -UserList .\possible-usernames.txt -OutFile valid.txt
# Password spraying
Invoke-PasswordSprayOWA -ExchHostname [ip] -UserList .\valid.txt -Password Summer2021
# Get addresses list from the compromised mail
Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password Summer2021 -OutFile gal.txt
warning
आप इस github repo और इस एक (statistically-likely-usernames) में उपयोगकर्ता नामों की सूचियाँ पा सकते हैं।
हालाँकि, आपके पास कंपनी में काम करने वाले लोगों के नाम होने चाहिए जो आप पहले की पुनः खोज चरण से प्राप्त कर चुके हैं। नाम और उपनाम के साथ, आप संभावित मान्य उपयोगकर्ता नाम उत्पन्न करने के लिए namemash.py स्क्रिप्ट का उपयोग कर सकते हैं।
एक या एक से अधिक उपयोगकर्ता नाम जानना
ठीक है, तो आप जानते हैं कि आपके पास पहले से एक मान्य उपयोगकर्ता नाम है लेकिन कोई पासवर्ड नहीं है... तो कोशिश करें:
- ASREPRoast: यदि किसी उपयोगकर्ता के पास DONT_REQ_PREAUTH विशेषता नहीं है, तो आप उस उपयोगकर्ता के लिए AS_REP संदेश का अनुरोध कर सकते हैं जिसमें उपयोगकर्ता के पासवर्ड के एक व्युत्पन्न द्वारा एन्क्रिप्टेड कुछ डेटा होगा।
- Password Spraying: चलो प्रत्येक खोजे गए उपयोगकर्ताओं के साथ सबसे सामान्य पासवर्ड आजमाते हैं, शायद कुछ उपयोगकर्ता एक खराब पासवर्ड का उपयोग कर रहा है (पासवर्ड नीति को ध्यान में रखें!)।
- ध्यान दें कि आप OWA सर्वरों को भी स्प्रे कर सकते हैं ताकि उपयोगकर्ताओं के मेल सर्वरों तक पहुँच प्राप्त कर सकें।
Password Spraying / Brute Force
LLMNR/NBT-NS जहर देना
आप कुछ चुनौती हैश प्राप्त करने में सक्षम हो सकते हैं जहर देकर कुछ प्रोटोकॉल के नेटवर्क:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
NTLM रिले
यदि आप सक्रिय निर्देशिका को सूचीबद्ध करने में सफल रहे हैं, तो आपके पास अधिक ईमेल और नेटवर्क की बेहतर समझ होगी। आप NTLM रिले हमलों को मजबूर करने में सक्षम हो सकते हैं ताकि AD वातावरण तक पहुँच प्राप्त कर सकें।
NTLM क्रेडेंशियल्स चुराना
यदि आप अन्य PCs या शेयरों तक null या guest user के साथ पहुँच प्राप्त कर सकते हैं, तो आप फाइलें (जैसे SCF फाइल) रख सकते हैं जो यदि किसी तरह से पहुँची जाती हैं तो आपके खिलाफ NTLM प्रमाणीकरण को ट्रिगर करेंगी ताकि आप NTLM चुनौती चुरा सकें:
क्रेडेंशियल्स/सेशन के साथ सक्रिय निर्देशिका की सूची बनाना
इस चरण के लिए आपको एक मान्य डोमेन खाते के क्रेडेंशियल्स या एक सत्र को समझौता करना होगा। यदि आपके पास कुछ मान्य क्रेडेंशियल्स या एक डोमेन उपयोगकर्ता के रूप में एक शेल है, तो आपको याद रखना चाहिए कि पहले दिए गए विकल्प अभी भी अन्य उपयोगकर्ताओं को समझौता करने के विकल्प हैं।
प्रमाणित सूचीकरण शुरू करने से पहले आपको Kerberos डबल हॉप समस्या क्या है, यह जानना चाहिए।
सूचीकरण
एक खाते को समझौता करना पूरे डोमेन को समझौता करने के लिए एक बड़ा कदम है, क्योंकि आप सक्रिय निर्देशिका सूचीकरण शुरू करने में सक्षम होंगे:
ASREPRoast के संबंध में, आप अब हर संभावित कमजोर उपयोगकर्ता को ढूंढ सकते हैं, और Password Spraying के संबंध में, आप सभी उपयोगकर्ता नामों की एक सूची प्राप्त कर सकते हैं और समझौता किए गए खाते का पासवर्ड, खाली पासवर्ड और नए आशाजनक पासवर्ड आजमा सकते हैं।
- आप CMD का उपयोग करके एक बुनियादी पुनः खोज कर सकते हैं
- आप पॉवरशेल का उपयोग करके पुनः खोज कर सकते हैं जो अधिक छिपा हुआ होगा
- आप powerview का उपयोग कर सकते हैं अधिक विस्तृत जानकारी निकालने के लिए
- सक्रिय निर्देशिका में पुनः खोज के लिए एक और अद्भुत उपकरण BloodHound है। यह बहुत छिपा हुआ नहीं है (आपके द्वारा उपयोग किए गए संग्रह विधियों के आधार पर), लेकिन यदि आपको इसकी परवाह नहीं है, तो आपको इसे पूरी तरह से आजमाना चाहिए। पता करें कि उपयोगकर्ता RDP कहाँ कर सकते हैं, अन्य समूहों के लिए पथ खोजें, आदि।
- अन्य स्वचालित AD सूचीकरण उपकरण हैं: AD Explorer, ADRecon, Group3r, PingCastle.
- AD के DNS रिकॉर्ड क्योंकि वे दिलचस्प जानकारी रख सकते हैं।
- आप निर्देशिका की सूची बनाने के लिए AdExplorer.exe का उपयोग कर सकते हैं जो SysInternal सूट से है।
- आप userPassword और unixUserPassword फ़ील्ड में क्रेडेंशियल्स की खोज करने के लिए ldapsearch का उपयोग कर सकते हैं, या यहां तक कि Description के लिए भी। अन्य विधियों के लिए PayloadsAllTheThings पर AD उपयोगकर्ता टिप्पणी में पासवर्ड देखें।
- यदि आप Linux का उपयोग कर रहे हैं, तो आप pywerview का उपयोग करके भी डोमेन की सूची बना सकते हैं।
- आप स्वचालित उपकरणों को भी आजमा सकते हैं जैसे:
- tomcarver16/ADSearch
- 61106960/adPEAS
- सभी डोमेन उपयोगकर्ताओं को निकालना
Windows से सभी डोमेन उपयोगकर्ता नाम प्राप्त करना बहुत आसान है (net user /domain
, Get-DomainUser
या wmic useraccount get name,sid
)। Linux में, आप उपयोग कर सकते हैं: GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username
या enum4linux -a -u "user" -p "password" <DC IP>
भले ही यह सूचीकरण अनुभाग छोटा दिखता है, यह सभी का सबसे महत्वपूर्ण भाग है। लिंक पर पहुँचें (मुख्य रूप से cmd, powershell, powerview और BloodHound वाले), जानें कि डोमेन को कैसे सूचीबद्ध करें और तब तक अभ्यास करें जब तक आप सहज महसूस न करें। एक आकलन के दौरान, यह DA तक पहुँचने का आपका कुंजी क्षण होगा या यह तय करने का कि कुछ नहीं किया जा सकता।
Kerberoast
Kerberoasting में उपयोगकर्ता खातों से जुड़े सेवाओं द्वारा उपयोग किए जाने वाले TGS टिकटों को प्राप्त करना और उनकी एन्क्रिप्शन को क्रैक करना शामिल है—जो उपयोगकर्ता पासवर्ड पर आधारित है—ऑफलाइन।
इस बारे में अधिक जानकारी:
दूरस्थ कनेक्शन (RDP, SSH, FTP, Win-RM, आदि)
एक बार जब आपने कुछ क्रेडेंशियल्स प्राप्त कर लिए, तो आप देख सकते हैं कि क्या आपके पास किसी मशीन तक पहुँच है। इस मामले में, आप विभिन्न प्रोटोकॉल के साथ कई सर्वरों पर कनेक्ट करने का प्रयास करने के लिए CrackMapExec का उपयोग कर सकते हैं, जो आपके पोर्ट स्कैन के अनुसार है।
स्थानीय विशेषाधिकार वृद्धि
यदि आपने क्रेडेंशियल्स या एक नियमित डोमेन उपयोगकर्ता के रूप में एक सत्र को समझौता किया है और आपके पास डोमेन में किसी भी मशीन तक इस उपयोगकर्ता के साथ पहुँच है, तो आपको स्थानीय रूप से विशेषाधिकार बढ़ाने और क्रेडेंशियल्स के लिए लूटने का प्रयास करना चाहिए। इसका कारण यह है कि केवल स्थानीय व्यवस्थापक विशेषाधिकारों के साथ आप अन्य उपयोगकर्ताओं के हैश को मेमोरी (LSASS) और स्थानीय (SAM) में डंप कर सकेंगे।
इस पुस्तक में Windows में स्थानीय विशेषाधिकार वृद्धि और एक चेकलिस्ट के बारे में एक पूरा पृष्ठ है। इसके अलावा, WinPEAS का उपयोग करना न भूलें।
वर्तमान सत्र टिकट
यह बहुत असंभव है कि आप वर्तमान उपयोगकर्ता में टिकट पाएँ जो आपको अप्रत्याशित संसाधनों तक पहुँचने की अनुमति देते हैं, लेकिन आप जाँच कर सकते हैं:
## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage
## Dump the interesting one by luid
.\Rubeus.exe dump /service:krbtgt /luid:<luid> /nowrap
[IO.File]::WriteAllBytes("ticket.kirbi", [Convert]::FromBase64String("<BASE64_TICKET>"))
NTLM Relay
यदि आप सक्रिय निर्देशिका को सूचीबद्ध करने में सफल रहे हैं, तो आपके पास अधिक ईमेल और नेटवर्क की बेहतर समझ होगी। आप NTLM relay attacks** को मजबूर करने में सक्षम हो सकते हैं।**
Looks for Creds in Computer Shares | SMB Shares
अब जब आपके पास कुछ बुनियादी क्रेडेंशियल्स हैं, तो आपको यह जांचना चाहिए कि क्या आप **AD के अंदर साझा की गई कोई दिलचस्प फ़ाइलें **पैदा कर सकते हैं। आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन यह एक बहुत ही उबाऊ दोहराने वाला कार्य है (और अधिक यदि आप सैकड़ों दस्तावेज़ों को खोजते हैं जिन्हें आपको जांचना है)।
Follow this link to learn about tools you could use.
Steal NTLM Creds
यदि आप अन्य PCs या शेयरों तक पहुँच सकते हैं, तो आप फाइलें (जैसे SCF फ़ाइल) रख सकते हैं जो यदि किसी तरह से एक्सेस की जाती हैं, तो आपके खिलाफ NTLM प्रमाणीकरण को ट्रिगर करेंगी ताकि आप NTLM चुनौती को चुरा सकें:
CVE-2021-1675/CVE-2021-34527 PrintNightmare
यह भेद्यता किसी भी प्रमाणित उपयोगकर्ता को डोमेन नियंत्रक को समझौता करने की अनुमति देती है।
Privilege escalation on Active Directory WITH privileged credentials/session
निम्नलिखित तकनीकों के लिए एक नियमित डोमेन उपयोगकर्ता पर्याप्त नहीं है, आपको इन हमलों को करने के लिए कुछ विशेष विशेषाधिकार/क्रेडेंशियल्स की आवश्यकता है।
Hash extraction
उम्मीद है कि आप AsRepRoast, Password Spraying, Kerberoast, Responder सहित रिले करते हुए, EvilSSDP, स्थानीय रूप से विशेषाधिकार बढ़ाना का उपयोग करके कुछ स्थानीय व्यवस्थापक खाते को समझौता करने में सफल रहे हैं।
फिर, इसका समय है कि सभी हैश को मेमोरी और स्थानीय रूप से डंप करें।
Read this page about different ways to obtain the hashes.
Pass the Hash
एक बार जब आपके पास एक उपयोगकर्ता का हैश हो, तो आप इसका उपयोग उसका अनुकरण करने के लिए कर सकते हैं।
आपको कुछ उपकरण का उपयोग करने की आवश्यकता है जो उस हैश का उपयोग करके NTLM प्रमाणीकरण करेगा, या आप एक नया sessionlogon बना सकते हैं और LSASS के अंदर उस हैश को इंजेक्ट कर सकते हैं, ताकि जब कोई NTLM प्रमाणीकरण किया जाए, तो वह हैश का उपयोग किया जाएगा। अंतिम विकल्प वही है जो mimikatz करता है।
Read this page for more information.
Over Pass the Hash/Pass the Key
यह हमला उपयोगकर्ता NTLM हैश का उपयोग करके Kerberos टिकटों का अनुरोध करने का लक्ष्य रखता है, NTLM प्रोटोकॉल पर सामान्य Pass The Hash के विकल्प के रूप में। इसलिए, यह विशेष रूप से उन नेटवर्क में उपयोगी हो सकता है जहां NTLM प्रोटोकॉल अक्षम है और केवल Kerberos को प्रमाणीकरण प्रोटोकॉल के रूप में अनुमति दी गई है।
Over Pass the Hash/Pass the Key
Pass the Ticket
Pass The Ticket (PTT) हमले की विधि में, हमलावर उपयोगकर्ता का प्रमाणीकरण टिकट चुराते हैं बजाय इसके कि उनके पासवर्ड या हैश मान हों। यह चुराया गया टिकट फिर उपयोगकर्ता का अनुकरण करने के लिए उपयोग किया जाता है, नेटवर्क के भीतर संसाधनों और सेवाओं तक अनधिकृत पहुंच प्राप्त करने के लिए।
Credentials Reuse
यदि आपके पास हैश या पासवर्ड है स्थानीय व्यवस्थापक का, तो आपको अन्य PCs पर इसके साथ स्थानीय रूप से लॉगिन करने का प्रयास करना चाहिए।
# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +
warning
ध्यान दें कि यह काफी शोर है और LAPS इसे कम करेगा।
MSSQL दुरुपयोग और विश्वसनीय लिंक
यदि किसी उपयोगकर्ता के पास MSSQL उदाहरणों तक पहुँचने के लिए विशेषाधिकार हैं, तो वह इसका उपयोग MSSQL होस्ट में कमांड निष्पादित करने के लिए कर सकता है (यदि SA के रूप में चल रहा है), NetNTLM हैश चुराने के लिए या यहां तक कि रिले हमला करने के लिए।
इसके अलावा, यदि एक MSSQL उदाहरण को किसी अन्य MSSQL उदाहरण द्वारा विश्वसनीय (डेटाबेस लिंक) माना जाता है। यदि उपयोगकर्ता के पास विश्वसनीय डेटाबेस पर विशेषाधिकार हैं, तो वह अन्य उदाहरण में क्वेरी निष्पादित करने के लिए विश्वास संबंध का उपयोग कर सकेगा। ये विश्वास श्रृंखलाबद्ध हो सकते हैं और किसी बिंदु पर उपयोगकर्ता एक गलत कॉन्फ़िगर की गई डेटाबेस खोजने में सक्षम हो सकता है जहाँ वह कमांड निष्पादित कर सकता है।
डेटाबेस के बीच के लिंक यहां तक कि वन ट्रस्ट के पार भी काम करते हैं।
अनियंत्रित प्रतिनिधित्व
यदि आप किसी कंप्यूटर ऑब्जेक्ट को ADS_UF_TRUSTED_FOR_DELEGATION विशेषता के साथ पाते हैं और आपके पास कंप्यूटर में डोमेन विशेषाधिकार हैं, तो आप कंप्यूटर पर लॉगिन करने वाले हर उपयोगकर्ता की मेमोरी से TGT को डंप कर सकेंगे।
तो, यदि कोई डोमेन एडमिन कंप्यूटर पर लॉगिन करता है, तो आप उसका TGT डंप कर सकेंगे और Pass the Ticket का उपयोग करके उसकी नकल कर सकेंगे।
संकीर्ण प्रतिनिधित्व के कारण आप यहां तक कि एक प्रिंट सर्वर को स्वचालित रूप से समझौता कर सकते हैं (उम्मीद है कि यह एक DC होगा)।
संकीर्ण प्रतिनिधित्व
यदि किसी उपयोगकर्ता या कंप्यूटर को "संकीर्ण प्रतिनिधित्व" की अनुमति है, तो वह किसी भी उपयोगकर्ता की नकल कर सकेगा ताकि किसी कंप्यूटर में कुछ सेवाओं तक पहुँच सके।
फिर, यदि आप इस उपयोगकर्ता/कंप्यूटर का हैश समझौता करते हैं, तो आप किसी भी उपयोगकर्ता (यहां तक कि डोमेन एडमिन) की नकल कर सकेंगे ताकि कुछ सेवाओं तक पहुँच सके।
संसाधन-आधारित संकीर्ण प्रतिनिधित्व
एक दूरस्थ कंप्यूटर के Active Directory ऑब्जेक्ट पर WRITE विशेषाधिकार होने से उच्च विशेषाधिकार के साथ कोड निष्पादन प्राप्त करना संभव हो जाता है:
Resource-based Constrained Delegation
अनुमतियाँ/ACLs दुरुपयोग
समझौता किया गया उपयोगकर्ता कुछ दिलचस्प विशेषाधिकार रख सकता है जो आपको पार्श्व रूप से स्थानांतरित/विशेषाधिकार बढ़ाने की अनुमति दे सकते हैं।
Abusing Active Directory ACLs/ACEs
प्रिंटर स्पूलर सेवा का दुरुपयोग
डोमेन के भीतर स्पूल सेवा सुनने का पता लगाना नए क्रेडेंशियल प्राप्त करने और विशेषाधिकार बढ़ाने के लिए दुरुपयोग किया जा सकता है।
Force NTLM Privileged Authentication
तीसरे पक्ष के सत्रों का दुरुपयोग
यदि अन्य उपयोगकर्ता समझौता की गई मशीन तक पहुँचते हैं, तो यह मेमोरी से क्रेडेंशियल इकट्ठा करने और यहां तक कि उनकी प्रक्रियाओं में बीकन इंजेक्ट करने के लिए संभव है ताकि उनकी नकल की जा सके।
आमतौर पर उपयोगकर्ता RDP के माध्यम से सिस्टम तक पहुँचते हैं, इसलिए यहां आपके पास तीसरे पक्ष के RDP सत्रों पर कुछ हमले करने का तरीका है:
LAPS
LAPS डोमेन-जोड़े गए कंप्यूटरों पर स्थानीय व्यवस्थापक पासवर्ड प्रबंधित करने के लिए एक प्रणाली प्रदान करता है, यह सुनिश्चित करते हुए कि यह यादृच्छिक, अद्वितीय, और अक्सर बदला जाता है। ये पासवर्ड Active Directory में संग्रहीत होते हैं और पहुँच को केवल अधिकृत उपयोगकर्ताओं के लिए ACLs के माध्यम से नियंत्रित किया जाता है। इन पासवर्डों तक पहुँच के लिए पर्याप्त अनुमतियों के साथ, अन्य कंप्यूटरों पर पिवटिंग करना संभव हो जाता है।
प्रमाणपत्र चोरी
समझौता की गई मशीन से प्रमाणपत्र इकट्ठा करना वातावरण के भीतर विशेषाधिकार बढ़ाने का एक तरीका हो सकता है:
प्रमाणपत्र टेम्पलेट्स का दुरुपयोग
यदि कमजोर टेम्पलेट्स कॉन्फ़िगर किए गए हैं, तो उन्हें विशेषाधिकार बढ़ाने के लिए दुरुपयोग किया जा सकता है:
उच्च विशेषाधिकार खाते के साथ पोस्ट-शोषण
डोमेन क्रेडेंशियल्स का डंपिंग
एक बार जब आप डोमेन एडमिन या यहां तक कि बेहतर एंटरप्राइज एडमिन विशेषाधिकार प्राप्त कर लेते हैं, तो आप डोमेन डेटाबेस को डंप कर सकते हैं: ntds.dit।
DCSync हमले के बारे में अधिक जानकारी यहां मिल सकती है।
NTDS.dit चुराने के तरीके के बारे में अधिक जानकारी यहां मिल सकती है
प्रिवेस्क के रूप में स्थिरता
पहले चर्चा की गई कुछ तकनीकों का उपयोग स्थिरता के लिए किया जा सकता है।
उदाहरण के लिए, आप कर सकते हैं:
- उपयोगकर्ताओं को Kerberoast के लिए कमजोर बनाना
Set-DomainObject -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}r
- उपयोगकर्ताओं को ASREPRoast के लिए कमजोर बनाना
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
- एक उपयोगकर्ता को DCSync विशेषाधिकार देना
Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdentity bfarmer -Rights DCSync
सिल्वर टिकट
सिल्वर टिकट हमला एक विशेष सेवा के लिए वैध टिकट ग्रांटिंग सेवा (TGS) टिकट बनाता है, NTLM हैश का उपयोग करके (उदाहरण के लिए, PC खाते का हैश)। इस विधि का उपयोग सेवा विशेषाधिकारों तक पहुँचने के लिए किया जाता है।
गोल्डन टिकट
गोल्डन टिकट हमला में एक हमलावर Active Directory (AD) वातावरण में krbtgt खाते के NTLM हैश तक पहुँच प्राप्त करता है। यह खाता विशेष है क्योंकि इसका उपयोग सभी टिकट ग्रांटिंग टिकट (TGTs) पर हस्ताक्षर करने के लिए किया जाता है, जो AD नेटवर्क के भीतर प्रमाणीकरण के लिए आवश्यक हैं।
एक बार जब हमलावर इस हैश को प्राप्त कर लेता है, तो वह किसी भी खाते के लिए TGTs बना सकता है जिसे वह चुनता है (सिल्वर टिकट हमला)।
डायमंड टिकट
ये गोल्डन टिकट की तरह होते हैं जो सामान्य गोल्डन टिकट पहचान तंत्रों को बायपास करने के तरीके से बनाए जाते हैं।
प्रमाणपत्र खाता स्थिरता
किसी खाते के प्रमाणपत्र होना या उन्हें अनुरोध करने में सक्षम होना उपयोगकर्ता के खाते में स्थिरता बनाए रखने का एक बहुत अच्छा तरीका है (यहां तक कि यदि वह पासवर्ड बदलता है):
प्रमाणपत्र डोमेन स्थिरता
प्रमाणपत्रों का उपयोग करना भी डोमेन के भीतर उच्च विशेषाधिकारों के साथ स्थिरता बनाए रखने के लिए संभव है:
AdminSDHolder समूह
Active Directory में AdminSDHolder ऑब्जेक्ट विशेषाधिकार प्राप्त समूहों (जैसे डोमेन एडमिन और एंटरप्राइज एडमिन) की सुरक्षा सुनिश्चित करता है, इन समूहों पर एक मानक एक्सेस कंट्रोल लिस्ट (ACL) लागू करके अनधिकृत परिवर्तनों को रोकता है। हालाँकि, इस सुविधा का दुरुपयोग किया जा सकता है; यदि एक हमलावर AdminSDHolder के ACL को एक सामान्य उपयोगकर्ता को पूर्ण पहुँच देने के लिए संशोधित करता है, तो उस उपयोगकर्ता को सभी विशेषाधिकार प्राप्त समूहों पर व्यापक नियंत्रण मिल जाता है। यह सुरक्षा उपाय, जो सुरक्षा के लिए बनाया गया था, इस प्रकार उलटा पड़ सकता है, जिससे बिना अनुमति की पहुँच संभव हो जाती है जब तक कि इसे निकटता से मॉनिटर नहीं किया जाता।
AdminDSHolder समूह के बारे में अधिक जानकारी यहां है।
DSRM क्रेडेंशियल्स
हर डोमेन कंट्रोलर (DC) के अंदर, एक स्थानीय व्यवस्थापक खाता होता है। ऐसी मशीन पर प्रशासनिक अधिकार प्राप्त करके, स्थानीय व्यवस्थापक हैश को mimikatz का उपयोग करके निकाला जा सकता है। इसके बाद, इस पासवर्ड का उपयोग करने के लिए एक रजिस्ट्री संशोधन आवश्यक है, जिससे स्थानीय व्यवस्थापक खाते तक दूरस्थ पहुँच की अनुमति मिलती है।
ACL स्थिरता
आप कुछ विशिष्ट डोमेन ऑब्जेक्ट्स पर एक उपयोगकर्ता को कुछ विशेष अनुमतियाँ दे सकते हैं जो उपयोगकर्ता को भविष्य में विशेषाधिकार बढ़ाने की अनुमति देंगी।
Abusing Active Directory ACLs/ACEs
सुरक्षा वर्णनकर्ता
सुरक्षा वर्णनकर्ता का उपयोग अनुमतियों को स्टोर करने के लिए किया जाता है जो एक ऑब्जेक्ट के पास एक ऑब्जेक्ट पर होती हैं। यदि आप केवल सुरक्षा वर्णनकर्ता के एक ऑब्जेक्ट में थोड़ा परिवर्तन कर सकते हैं, तो आप उस ऑब्जेक्ट पर बहुत दिलचस्प विशेषाधिकार प्राप्त कर सकते हैं बिना किसी विशेषाधिकार प्राप्त समूह का सदस्य बने।
कंकाल कुंजी
LSASS को मेमोरी में संशोधित करें ताकि एक सार्वभौमिक पासवर्ड स्थापित किया जा सके, जो सभी डोमेन खातों तक पहुँच प्रदान करता है।
कस्टम SSP
यहां जानें कि SSP (सिक्योरिटी सपोर्ट प्रोवाइडर) क्या है।
आप अपना खुद का SSP बना सकते हैं ताकि मशीन तक पहुँचने के लिए उपयोग किए गए क्रेडेंशियल्स को स्पष्ट पाठ में कैप्चर किया जा सके।
DCShadow
यह AD में एक नया डोमेन कंट्रोलर पंजीकृत करता है और निर्दिष्ट वस्तुओं पर विशेषताएँ (SIDHistory, SPNs...) को धकेलने के लिए इसका उपयोग करता है बिना किसी लॉग को छोड़े जो संशोधनों के बारे में हो। आपको DA विशेषाधिकार की आवश्यकता है और रूट डोमेन के अंदर होना चाहिए।
ध्यान दें कि यदि आप गलत डेटा का उपयोग करते हैं, तो बहुत भद्दे लॉग दिखाई देंगे।
LAPS स्थिरता
पहले हमने चर्चा की है कि यदि आपके पास LAPS पासवर्ड पढ़ने के लिए पर्याप्त अनुमति है तो विशेषाधिकार कैसे बढ़ाए जा सकते हैं। हालाँकि, इन पासवर्डों का उपयोग स्थिरता बनाए रखने के लिए भी किया जा सकता है।
जांचें:
वन विशेषाधिकार वृद्धि - डोमेन ट्रस्ट
Microsoft वन को सुरक्षा सीमा के रूप में देखता है। इसका अर्थ है कि एकल डोमेन का समझौता करना संभावित रूप से पूरे वन के समझौता होने की संभावना पैदा कर सकता है।
बुनियादी जानकारी
एक डोमेन ट्रस्ट एक सुरक्षा तंत्र है जो एक डोमेन के उपयोगकर्ता को दूसरे डोमेन में संसाधनों तक पहुँचने की अनुमति देता है। यह मूल रूप से दोनों डोमेन के प्रमाणीकरण प्रणालियों के बीच एक लिंक बनाता है, जिससे प्रमाणीकरण सत्यापन सुचारू रूप से प्रवाहित हो सके। जब डोमेन एक ट्रस्ट स्थापित करते हैं, तो वे अपने डोमेन कंट्रोलर्स (DCs) के भीतर विशिष्ट कुंजी का आदान-प्रदान और रखरखाव करते हैं, जो ट्रस्ट की अखंडता के लिए महत्वपूर्ण हैं।
एक सामान्य परिदृश्य में, यदि कोई उपयोगकर्ता विश्वसनीय डोमेन में एक सेवा तक पहुँचने का इरादा रखता है, तो उसे पहले अपने डोमेन के DC से इंटर-रीलम TGT के रूप में जाना जाने वाला एक विशेष टिकट अनुरोध करना होगा। यह TGT एक साझा कुंजी के साथ एन्क्रिप्ट किया गया है जिस पर दोनों डोमेन सहमत हुए हैं। उपयोगकर्ता फिर इस TGT को विश्वसनीय डोमेन के DC को सेवा टिकट (TGS) प्राप्त करने के लिए प्रस्तुत करता है। जब विश्वसनीय डोमेन के DC द्वारा इंटर-रीलम TGT की सफल सत्यापन होती है, तो यह एक TGS जारी करता है, जो उपयोगकर्ता को सेवा तक पहुँच प्रदान करता है।
चरण:
- डोमेन 1 में एक क्लाइंट कंप्यूटर प्रक्रिया शुरू करता है, जो अपने NTLM हैश का उपयोग करके अपने डोमेन कंट्रोलर (DC1) से टिकट ग्रांटिंग टिकट (TGT) का अनुरोध करता है।
- यदि क्लाइंट सफलतापूर्वक प्रमाणित होता है, तो DC1 एक नया TGT जारी करता है।
- क्लाइंट फिर डोमेन 2 में संसाधनों तक पहुँचने के लिए DC1 से एक इंटर-रीलम TGT का अनुरोध करता है।
- इंटर-रीलम TGT को DC1 और DC2 के बीच दो-तरफा डोमेन ट्रस्ट के हिस्से के रूप में साझा किए गए विश्वास कुंजी के साथ एन्क्रिप्ट किया गया है।
- क्लाइंट इंटर-रीलम TGT को डोमेन 2 के डोमेन कंट्रोलर (DC2) पर ले जाता है।
- DC2 अपने साझा विश्वास कुंजी का उपयोग करके इंटर-रीलम TGT की सत्यापन करता है और यदि मान्य है, तो वह उस सर्वर के लिए टिकट ग्रांटिंग सेवा (TGS) जारी करता है जिसे क्लाइंट पहुँचाना चाहता है।
- अंततः, क्लाइंट इस TGS को सर्वर को प्रस्तुत करता है, जो सर्वर के खाते के हैश के साथ एन्क्रिप्ट किया गया है, ताकि डोमेन 2 में सेवा तक पहुँच प्राप्त की जा सके।
विभिन्न ट्रस्ट
यह ध्यान रखना महत्वपूर्ण है कि एक ट्रस्ट 1 दिशा या 2 दिशाओं में हो सकता है। 2 दिशाओं के विकल्प में, दोनों डोमेन एक-दूसरे पर विश्वास करेंगे, लेकिन 1 दिशा के ट्रस्ट संबंध में एक डोमेन विश्वसनीय होगा और दूसरा विश्वास करने वाला डोमेन होगा। अंतिम मामले में, आप केवल विश्वसनीय डोमेन से विश्वास करने वाले डोमेन के अंदर संसाधनों तक पहुँच सकते हैं।
यदि डोमेन A, डोमेन B पर विश्वास करता है, तो A विश्वास करने वाला डोमेन है और B विश्वसनीय है। इसके अलावा, डोमेन A में, यह एक आउटबाउंड ट्रस्ट होगा; और डोमेन B में, यह एक इनबाउंड ट्रस्ट होगा।
विभिन्न विश्वास संबंध
- माता-पिता-शिशु ट्रस्ट: यह एक सामान्य सेटअप है जो एक ही वन के भीतर होता है, जहाँ एक शिशु डोमेन अपने माता-पिता डोमेन के साथ स्वचालित रूप से दो-तरफा पारगम्य ट्रस्ट रखता है। मूल रूप से, इसका अर्थ है कि प्रमाणीकरण अनुरोध माता-पिता और शिशु के बीच सुचारू रूप से प्रवाहित हो सकते हैं।
- क्रॉस-लिंक ट्रस्ट: जिसे "शॉर्टकट ट्रस्ट" कहा जाता है, ये शिशु डोमेन के बीच स्थापित किए जाते हैं ताकि संदर्भ प्रक्रियाओं को तेज किया जा सके। जटिल वन में, प्रमाणीकरण संदर्भ आमतौर पर वन की जड़ तक यात्रा करते हैं और फिर लक्षित डोमेन तक पहुँचते हैं। क्रॉस-लिंक बनाने से यात्रा को छोटा किया जाता है, जो विशेष रूप से भौगोलिक रूप से फैले हुए वातावरण में फायदेमंद होता है।
- बाहरी ट्रस्ट: ये विभिन्न, असंबंधित डोमेन के बीच स्थापित किए जाते हैं और स्वाभाविक रूप से गैर-पारगम्य होते हैं। Microsoft के दस्तावेज़ के अनुसार, बाहरी ट्रस्ट उन संसाधनों तक पहुँचने के लिए उपयोगी होते हैं जो वर्तमान वन के बाहर के डोमेन में हैं जो वन ट्रस्ट द्वारा जुड़े नहीं हैं। SID फ़िल्टरिंग के माध्यम से सुरक्षा को बढ़ाया जाता है।
- ट्री-रूट ट्रस्ट: ये ट्रस्ट स्वचालित रूप से वन की जड़ डोमेन और एक नए जोड़े गए ट्री रूट के बीच स्थापित होते हैं। जबकि ये सामान्यतः नहीं मिलते हैं, ट्री-रूट ट्रस्ट नए डोमेन ट्री को वन में जोड़ने के लिए महत्वपूर्ण होते हैं, जिससे उन्हें एक अद्वितीय डोमेन नाम बनाए रखने और दो-तरफा पारगम्यता सुनिश्चित करने की अनुमति मिलती है। Microsoft के गाइड में अधिक जानकारी मिल सकती है।
- वन ट्रस्ट: यह प्रकार का ट्रस्ट दो वन रूट डोमेन के बीच एक दो-तरफा पारगम्य ट्रस्ट है, जो सुरक्षा उपायों को बढ़ाने के लिए SID फ़िल्टरिंग को भी लागू करता है।
- MIT ट्रस्ट: ये ट्रस्ट गैर-Windows, RFC4120-अनुरूप Kerberos डोमेन के साथ स्थापित होते हैं। MIT ट्रस्ट थोड़े अधिक विशेषीकृत होते हैं और उन वातावरणों के लिए होते हैं जिन्हें Windows पारिस्थितिकी तंत्र के बाहर Kerberos-आधारित प्रणालियों के साथ एकीकरण की आवश्यकता होती है।
विश्वास संबंधों में अन्य अंतर
- एक ट्रस्ट संबंध भी पारगम्य हो सकता है (A ट्रस्ट B, B ट्रस्ट C, तो A ट्रस्ट C) या गैर-पारगम्य।
- एक ट्रस्ट संबंध को द्विदिशीय ट्रस्ट (दोनों एक-दूसरे पर विश्वास करते हैं) या एक-तरफा ट्रस्ट (केवल उनमें से एक दूसरे पर विश्वास करता है) के रूप में स्थापित किया जा सकता है।
हमले का मार्ग
- विश्वास संबंधों की गणना करें
- जांचें कि क्या कोई सुरक्षा प्रमुख (उपयोगकर्ता/समूह/कंप्यूटर) के पास दूसरे डोमेन के संसाधनों तक पहुँच है, शायद ACE प्रविष्टियों के माध्यम से या दूसरे डोमेन के समूहों में होने के कारण। डोमेन के बीच संबंधों की तलाश करें (यह ट्रस्ट शायद इसके लिए बनाया गया था)।
- इस मामले में kerberoast एक और विकल्प हो सकता है।
- समझौता करें उन खातों का जो डोमेन के माध्यम से पिवट कर सकते हैं।
हमलावरों को दूसरे डोमेन में संसाधनों तक पहुँच प्राप्त करने के लिए तीन प्राथमिक तंत्रों के माध्यम से पहुँच मिल सकती है:
- स्थानीय समूह सदस्यता: प्रमुखों को मशीनों पर स्थानीय समूहों में जोड़ा जा सकता है, जैसे कि सर्वर पर "व्यवस्थापक" समूह, जो उन्हें उस मशीन पर महत्वपूर्ण नियंत्रण प्रदान करता है।
- विदेशी डोमेन समूह सदस्यता: प्रमुख विदेशी डोमेन के भीतर समूहों के सदस्य भी हो सकते हैं। हालाँकि, इस विधि की प्रभावशीलता ट्रस्ट की प्रकृति और समूह के दायरे पर निर्भर करती है।
- एक्सेस कंट्रोल लिस्ट (ACLs): प्रमुखों को एक ACL में निर्दिष्ट किया जा सकता है, विशेष रूप से DACL के भीतर ACEs के रूप में, जो उन्हें विशिष्ट संसाधनों तक पहुँच प्रदान करता है। जो लोग ACLs, DACLs, और ACEs के तंत्र में गहराई से जाना चाहते हैं, उनके लिए "An ACE Up The Sleeve" शीर्षक वाला श्वेत पत्र एक अमूल्य संसाधन है।
बाहरी उपयोगकर्ताओं/समूहों के साथ अनुमतियों की खोज
आप CN=<user_SID>,CN=ForeignSecurityPrincipals,DC=domain,DC=com
की जांच कर सकते हैं ताकि डोमेन में विदेशी सुरक्षा प्रमुखों को खोजा जा सके। ये एक बाहरी डोमेन/वन से उपयोगकर्ता/समूह होंगे।
आप इसे Bloodhound में या powerview का उपयोग करके जांच सकते हैं:
# Get users that are i groups outside of the current domain
Get-DomainForeignUser
# Get groups inside a domain with users our
Get-DomainForeignGroupMember
Child-to-Parent forest privilege escalation
# Fro powerview
Get-DomainTrust
SourceName : sub.domain.local --> current domain
TargetName : domain.local --> foreign domain
TrustType : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : WITHIN_FOREST --> WITHIN_FOREST: Both in the same forest
TrustDirection : Bidirectional --> Trust direction (2ways in this case)
WhenCreated : 2/19/2021 1:28:00 PM
WhenChanged : 2/19/2021 1:28:00 PM
डोमेन ट्रस्ट्स को सूचीबद्ध करने के अन्य तरीके:
# Get DCs
nltest /dsgetdc:<DOMAIN>
# Get all domain trusts
nltest /domain_trusts /all_trusts /v
# Get all trust of a domain
nltest /dclist:sub.domain.local
nltest /server:dc.sub.domain.local /domain_trusts /all_trusts
warning
वहाँ 2 विश्वसनीय कुंजी हैं, एक Child --> Parent के लिए और दूसरी Parent --> Child के लिए।
आप वर्तमान डोमेन द्वारा उपयोग की जाने वाली कुंजी को निम्नलिखित के साथ देख सकते हैं:
Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'
SID-History Injection
SID-History इंजेक्शन का उपयोग करके चाइल्ड/पैरेंट डोमेन में एंटरप्राइज एडमिन के रूप में वृद्धि करें:
लिखने योग्य कॉन्फ़िगरेशन NC का शोषण करें
कॉन्फ़िगरेशन नामांकन संदर्भ (NC) का शोषण कैसे किया जा सकता है, यह समझना महत्वपूर्ण है। कॉन्फ़िगरेशन NC सक्रिय निर्देशिका (AD) वातावरण में एक वन के भीतर कॉन्फ़िगरेशन डेटा के लिए एक केंद्रीय भंडार के रूप में कार्य करता है। यह डेटा वन के भीतर प्रत्येक डोमेन कंट्रोलर (DC) पर पुन: पेश किया जाता है, जिसमें लिखने योग्य DCs कॉन्फ़िगरेशन NC की एक लिखने योग्य प्रति बनाए रखते हैं। इसका शोषण करने के लिए, किसी को DC पर SYSTEM विशेषाधिकार होना चाहिए, सबसे अच्छा एक चाइल्ड DC।
रूट DC साइट से GPO लिंक करें
कॉन्फ़िगरेशन NC का साइट्स कंटेनर AD वन के भीतर सभी डोमेन-जोड़े गए कंप्यूटरों की साइटों के बारे में जानकारी शामिल करता है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ कार्य करते हुए, हमलावर GPOs को रूट DC साइटों से लिंक कर सकते हैं। यह क्रिया इन साइटों पर लागू नीतियों में हेरफेर करके रूट डोमेन को संभावित रूप से समझौता कर सकती है।
गहन जानकारी के लिए, कोई Bypassing SID Filtering पर शोध कर सकता है।
वन में किसी भी gMSA का समझौता करें
एक हमले का वेक्टर डोमेन के भीतर विशेषाधिकार प्राप्त gMSAs को लक्षित करना है। KDS रूट कुंजी, जो gMSAs के पासवर्ड की गणना के लिए आवश्यक है, कॉन्फ़िगरेशन NC के भीतर संग्रहीत होती है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ, KDS रूट कुंजी तक पहुंच प्राप्त करना और वन में किसी भी gMSA के लिए पासवर्ड की गणना करना संभव है।
विस्तृत विश्लेषण Golden gMSA Trust Attacks पर चर्चा में पाया जा सकता है।
स्कीमा परिवर्तन हमला
इस विधि के लिए धैर्य की आवश्यकता होती है, नए विशेषाधिकार प्राप्त AD ऑब्जेक्ट्स के निर्माण की प्रतीक्षा करना। SYSTEM विशेषाधिकार के साथ, एक हमलावर AD स्कीमा को संशोधित कर सकता है ताकि किसी भी उपयोगकर्ता को सभी वर्गों पर पूर्ण नियंत्रण दिया जा सके। इससे नए बनाए गए AD ऑब्जेक्ट्स पर अनधिकृत पहुंच और नियंत्रण हो सकता है।
अधिक पढ़ाई Schema Change Trust Attacks पर उपलब्ध है।
ADCS ESC5 के साथ DA से EA तक
ADCS ESC5 भेद्यता सार्वजनिक कुंजी अवसंरचना (PKI) ऑब्जेक्ट्स पर नियंत्रण को लक्षित करती है ताकि एक प्रमाणपत्र टेम्पलेट बनाया जा सके जो वन के भीतर किसी भी उपयोगकर्ता के रूप में प्रमाणीकरण की अनुमति देता है। चूंकि PKI ऑब्जेक्ट्स कॉन्फ़िगरेशन NC में स्थित होते हैं, एक लिखने योग्य चाइल्ड DC का समझौता ESC5 हमलों को निष्पादित करने की अनुमति देता है।
इस पर अधिक विवरण From DA to EA with ESC5 में पढ़ा जा सकता है। ADCS की कमी वाले परिदृश्यों में, हमलावर आवश्यक घटकों को स्थापित करने की क्षमता रखता है, जैसा कि Escalating from Child Domain Admins to Enterprise Admins में चर्चा की गई है।
बाहरी वन डोमेन - एक-तरफा (इनबाउंड) या द्विदिश
Get-DomainTrust
SourceName : a.domain.local --> Current domain
TargetName : domain.external --> Destination domain
TrustType : WINDOWS-ACTIVE_DIRECTORY
TrustAttributes :
TrustDirection : Inbound --> Inboud trust
WhenCreated : 2/19/2021 10:50:56 PM
WhenChanged : 2/19/2021 10:50:56 PM
इस परिदृश्य में आपका डोमेन एक बाहरी द्वारा विश्वसनीय है जो आपको अनिश्चित अनुमतियाँ देता है। आपको यह पता लगाने की आवश्यकता होगी कि आपके डोमेन के कौन से प्रिंसिपल्स के पास बाहरी डोमेन पर कौन सा एक्सेस है और फिर इसे भुनाने की कोशिश करें:
External Forest Domain - OneWay (Inbound) or bidirectional
बाहरी वन डोमेन - एक-तरफा (आउटबाउंड)
Get-DomainTrust -Domain current.local
SourceName : current.local --> Current domain
TargetName : external.local --> Destination domain
TrustType : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection : Outbound --> Outbound trust
WhenCreated : 2/19/2021 10:15:24 PM
WhenChanged : 2/19/2021 10:15:24 PM
इस परिदृश्य में आपका डोमेन किसी विभिन्न डोमेन के प्रिंसिपल को कुछ अधिकार विश्वास कर रहा है।
हालांकि, जब एक डोमेन को विश्वास किया जाता है, तो विश्वास करने वाला डोमेन एक उपयोगकर्ता बनाता है जिसका पूर्वानुमानित नाम होता है और जो विश्वासित पासवर्ड का उपयोग करता है। इसका मतलब है कि यह संभव है कि विश्वास करने वाले डोमेन से एक उपयोगकर्ता को एक्सेस करके विश्वासित डोमेन में प्रवेश किया जा सके ताकि उसे सूचीबद्ध किया जा सके और अधिक अधिकारों को बढ़ाने की कोशिश की जा सके:
External Forest Domain - One-Way (Outbound)
विश्वासित डोमेन को समझौता करने का एक और तरीका है SQL trusted link को खोजना जो डोमेन ट्रस्ट के विपरीत दिशा में बनाया गया है (जो बहुत सामान्य नहीं है)।
विश्वासित डोमेन को समझौता करने का एक और तरीका है उस मशीन पर इंतजार करना जहां विश्वासित डोमेन का उपयोगकर्ता RDP के माध्यम से लॉगिन कर सकता है। फिर, हमलावर RDP सत्र प्रक्रिया में कोड इंजेक्ट कर सकता है और विक्टिम के मूल डोमेन तक पहुंच सकता है।
इसके अलावा, यदि विक्टिम ने अपना हार्ड ड्राइव माउंट किया है, तो RDP सत्र प्रक्रिया से हमलावर हार्ड ड्राइव के स्टार्टअप फ़ोल्डर में बैकडोर स्टोर कर सकता है। इस तकनीक को RDPInception कहा जाता है।
डोमेन ट्रस्ट दुरुपयोग शमन
SID फ़िल्टरिंग:
- SID इतिहास विशेषता का उपयोग करके हमलों के जोखिम को SID फ़िल्टरिंग द्वारा कम किया जाता है, जो सभी इंटर-फॉरेस्ट ट्रस्ट पर डिफ़ॉल्ट रूप से सक्रिय होता है। यह इस धारणा पर आधारित है कि इंट्रा-फॉरेस्ट ट्रस्ट सुरक्षित हैं, फॉरेस्ट को सुरक्षा सीमा के रूप में मानते हुए, न कि डोमेन को, जैसा कि माइक्रोसॉफ्ट का मानना है।
- हालाँकि, एक पकड़ है: SID फ़िल्टरिंग अनुप्रयोगों और उपयोगकर्ता पहुंच को बाधित कर सकता है, जिसके कारण इसे कभी-कभी निष्क्रिय किया जाता है।
चयनात्मक प्रमाणीकरण:
- इंटर-फॉरेस्ट ट्रस्ट के लिए, चयनात्मक प्रमाणीकरण का उपयोग यह सुनिश्चित करता है कि दोनों फॉरेस्ट के उपयोगकर्ताओं को स्वचालित रूप से प्रमाणीकरण नहीं किया जाता है। इसके बजाय, उपयोगकर्ताओं को विश्वास करने वाले डोमेन या फॉरेस्ट के भीतर डोमेन और सर्वरों तक पहुंचने के लिए स्पष्ट अनुमतियों की आवश्यकता होती है।
- यह ध्यान रखना महत्वपूर्ण है कि ये उपाय लिखने योग्य कॉन्फ़िगरेशन नामकरण संदर्भ (NC) के शोषण या ट्रस्ट खाते पर हमलों के खिलाफ सुरक्षा नहीं करते हैं।
iRed.team पर डोमेन ट्रस्ट के बारे में अधिक जानकारी।
AD -> Azure & Azure -> AD
Az AD Connect - Hybrid Identity - HackTricks Cloud
कुछ सामान्य रक्षा
यहां क्रेडेंशियल्स की सुरक्षा के बारे में अधिक जानें।
क्रेडेंशियल सुरक्षा के लिए रक्षात्मक उपाय
- डोमेन एडमिन प्रतिबंध: यह अनुशंसा की जाती है कि डोमेन एडमिन केवल डोमेन कंट्रोलर्स में लॉगिन करने की अनुमति दी जाए, अन्य होस्ट पर उनके उपयोग से बचें।
- सेवा खाता अधिकार: सेवाओं को सुरक्षा बनाए रखने के लिए डोमेन एडमिन (DA) अधिकारों के साथ नहीं चलाना चाहिए।
- अस्थायी अधिकार सीमा: DA अधिकारों की आवश्यकता वाले कार्यों के लिए, उनकी अवधि सीमित होनी चाहिए। इसे इस प्रकार प्राप्त किया जा सकता है:
Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)
धोखे की तकनीकों को लागू करना
- धोखे को लागू करने में जाल बिछाना शामिल है, जैसे कि डिकॉय उपयोगकर्ता या कंप्यूटर, जिनमें ऐसे पासवर्ड होते हैं जो समाप्त नहीं होते हैं या जिन्हें डेलीगेशन के लिए विश्वसनीय के रूप में चिह्नित किया जाता है। एक विस्तृत दृष्टिकोण में विशिष्ट अधिकारों के साथ उपयोगकर्ताओं का निर्माण करना या उन्हें उच्च अधिकार समूहों में जोड़ना शामिल है।
- एक व्यावहारिक उदाहरण में उपकरणों का उपयोग करना शामिल है:
Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose
- धोखे की तकनीकों को लागू करने के बारे में अधिक जानकारी Deploy-Deception on GitHub पर मिल सकती है।
धोखे की पहचान करना
- उपयोगकर्ता वस्तुओं के लिए: संदिग्ध संकेतों में असामान्य ObjectSID, असामान्य लॉगिन, निर्माण तिथियाँ, और कम खराब पासवर्ड की गिनती शामिल हैं।
- सामान्य संकेतक: संभावित डिकॉय वस्तुओं के गुणों की तुलना वास्तविक वस्तुओं के गुणों से करने से असंगतताएँ प्रकट हो सकती हैं। HoneypotBuster जैसे उपकरण ऐसी धोखाधड़ी की पहचान करने में मदद कर सकते हैं।
डिटेक्शन सिस्टम को बायपास करना
- Microsoft ATA डिटेक्शन बायपास:
- उपयोगकर्ता सूचीकरण: डोमेन कंट्रोलर्स पर सत्र सूचीकरण से बचना ATA डिटेक्शन को रोकने के लिए।
- टिकट अनुकरण: टिकट निर्माण के लिए aes कुंजियों का उपयोग करना डिटेक्शन से बचने में मदद करता है क्योंकि यह NTLM में डाउनग्रेड नहीं होता है।
- DCSync हमले: ATA डिटेक्शन से बचने के लिए गैर-डोमेन कंट्रोलर से निष्पादन करना सलाह दी जाती है, क्योंकि डोमेन कंट्रोलर से सीधे निष्पादन करने पर अलर्ट ट्रिगर होगा।
संदर्भ
- http://www.harmj0y.net/blog/redteaming/a-guide-to-attacking-domain-trusts/
- https://www.labofapenetrationtester.com/2018/10/deploy-deception.html
- https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।