hacktricks/src/windows-hardening/active-directory-methodology
..

Active Directory Methodology

{{#include ../../banners/hacktricks-training.md}}

Basic overview

Active Directory एक बुनियादी तकनीक के रूप में कार्य करता है, जो नेटवर्क प्रशासकों को डोमेन, उपयोगकर्ताओं, और वस्तुओं को प्रभावी ढंग से बनाने और प्रबंधित करने में सक्षम बनाता है। इसे स्केल करने के लिए डिज़ाइन किया गया है, जो एक विस्तृत संख्या में उपयोगकर्ताओं को प्रबंधनीय समूहों और उपसमूहों में व्यवस्थित करने की सुविधा प्रदान करता है, जबकि विभिन्न स्तरों पर पहुँच अधिकारों को नियंत्रित करता है।

Active Directory की संरचना तीन प्राथमिक परतों में विभाजित है: डोमेन, पेड़, और जंगल। एक डोमेन वस्तुओं का एक संग्रह है, जैसे उपयोगकर्ता या डिवाइस, जो एक सामान्य डेटाबेस साझा करते हैं। पेड़ इन डोमेनों के समूह होते हैं जो एक साझा संरचना द्वारा जुड़े होते हैं, और एक जंगल कई पेड़ों का संग्रह है, जो विश्वास संबंधों के माध्यम से आपस में जुड़े होते हैं, जो संगठनात्मक संरचना की सबसे ऊपरी परत बनाते हैं। प्रत्येक स्तर पर विशिष्ट पहुँच और संचार अधिकार निर्धारित किए जा सकते हैं।

Active Directory के भीतर प्रमुख अवधारणाएँ शामिल हैं:

  1. Directory Active Directory वस्तुओं से संबंधित सभी जानकारी को रखता है।
  2. Object निर्देशिका के भीतर की संस्थाएँ, जैसे उपयोगकर्ता, समूह, या साझा फ़ोल्डर को दर्शाता है।
  3. Domain निर्देशिका वस्तुओं के लिए एक कंटेनर के रूप में कार्य करता है, जिसमें कई डोमेनों का एक साथ अस्तित्व में रहना संभव है, प्रत्येक अपनी स्वयं की वस्तु संग्रह बनाए रखता है।
  4. Tree डोमेनों का एक समूह जो एक सामान्य रूट डोमेन साझा करता है।
  5. Forest Active Directory में संगठनात्मक संरचना का शिखर, जिसमें कई पेड़ होते हैं जिनमें विश्वास संबंध होते हैं।

Active Directory Domain Services (AD DS) एक श्रृंखला की सेवाओं को शामिल करता है जो नेटवर्क के भीतर केंद्रीकृत प्रबंधन और संचार के लिए महत्वपूर्ण हैं। इन सेवाओं में शामिल हैं:

  1. Domain Services डेटा भंडारण को केंद्रीकृत करता है और उपयोगकर्ताओं और डोमेनों के बीच इंटरैक्शन का प्रबंधन करता है, जिसमें प्रमाणीकरण और खोज कार्यक्षमताएँ शामिल हैं।
  2. Certificate Services सुरक्षित डिजिटल प्रमाणपत्रों के निर्माण, वितरण, और प्रबंधन की देखरेख करता है।
  3. Lightweight Directory Services LDAP प्रोटोकॉल के माध्यम से निर्देशिका-सक्षम अनुप्रयोगों का समर्थन करता है।
  4. Directory Federation Services एकल सत्र में कई वेब अनुप्रयोगों में उपयोगकर्ताओं को प्रमाणित करने के लिए सिंगल-साइन-ऑन क्षमताएँ प्रदान करता है।
  5. Rights Management कॉपीराइट सामग्री की सुरक्षा में मदद करता है, इसके अनधिकृत वितरण और उपयोग को नियंत्रित करता है।
  6. DNS Service डोमेन नामों के समाधान के लिए महत्वपूर्ण है।

एक अधिक विस्तृत व्याख्या के लिए देखें: TechTerms - Active Directory Definition

Kerberos Authentication

AD पर हमला करने के लिए आपको Kerberos प्रमाणीकरण प्रक्रिया को वास्तव में अच्छी तरह से समझना होगा।
यदि आप अभी भी नहीं जानते कि यह कैसे काम करता है, तो इस पृष्ठ को पढ़ें।

Cheat Sheet

आप https://wadcoms.github.io/ पर बहुत कुछ ले सकते हैं ताकि आप यह जल्दी देख सकें कि आप AD को सूचीबद्ध/शोषण करने के लिए कौन से कमांड चला सकते हैं।

Recon Active Directory (No creds/sessions)

यदि आपके पास केवल AD वातावरण तक पहुँच है लेकिन आपके पास कोई क्रेडेंशियल/सेशन नहीं हैं, तो आप कर सकते हैं:

  • नेटवर्क का परीक्षण करें:
  • नेटवर्क को स्कैन करें, मशीनें और खुले पोर्ट खोजें और उन पर कमजोरियों का शोषण करने या क्रेडेंशियल्स निकालने का प्रयास करें (उदाहरण के लिए, प्रिंटर बहुत दिलचस्प लक्ष्य हो सकते हैं
  • DNS को सूचीबद्ध करना डोमेन में प्रमुख सर्वरों के बारे में जानकारी दे सकता है जैसे वेब, प्रिंटर, शेयर, वीपीएन, मीडिया, आदि।
  • 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 सर्वर को सूचीबद्ध करने के लिए एक अधिक विस्तृत गाइड यहाँ मिल सकती है:

{{#ref}} ../../network-services-pentesting/pentesting-smb/ {{#endref}}

  • Ldap को सूचीबद्ध करें
  • nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>
  • LDAP को सूचीबद्ध करने के लिए एक अधिक विस्तृत गाइड यहाँ मिल सकती है (विशेष रूप से गुमनाम पहुँच पर ध्यान दें):

{{#ref}} ../../network-services-pentesting/pentesting-ldap.md {{#endref}}

  • नेटवर्क को ज़हर दें
  • क्रेडेंशियल्स इकट्ठा करें 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

  • गुमनाम SMB/LDAP enum: pentesting SMB और pentesting LDAP पृष्ठों की जाँच करें।
  • Kerbrute enum: जब एक अमान्य उपयोगकर्ता नाम अनुरोध किया जाता है तो सर्वर Kerberos त्रुटि कोड KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN का उपयोग करके प्रतिक्रिया देगा, जिससे हमें यह निर्धारित करने की अनुमति मिलती है कि उपयोगकर्ता नाम अमान्य था। मान्य उपयोगकर्ता नाम एक AS-REP प्रतिक्रिया में TGT या त्रुटि KRB5KDC_ERR_PREAUTH_REQUIRED को उत्तेजित करेगा, जो इंगित करता है कि उपयोगकर्ता को पूर्व-प्रमाणीकरण करने की आवश्यकता है।
./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
  • 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 सर्वरों को भी स्प्रे कर सकते हैं ताकि उपयोगकर्ताओं के मेल सर्वरों तक पहुँच प्राप्त कर सकें।

{{#ref}} password-spraying.md {{#endref}}

LLMNR/NBT-NS जहर देना

आप कुछ चुनौती हैश प्राप्त करने में सक्षम हो सकते हैं जहर देकर कुछ प्रोटोकॉल के नेटवर्क:

{{#ref}} ../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md {{#endref}}

NTML रिले

यदि आप सक्रिय निर्देशिका को सूचीबद्ध करने में सफल रहे हैं, तो आपके पास अधिक ईमेल और नेटवर्क की बेहतर समझ होगी। आप NTML रिले हमलों **** को मजबूर करने में सक्षम हो सकते हैं ताकि AD वातावरण तक पहुँच प्राप्त कर सकें।

NTLM क्रेडेंशियल चुराना

यदि आप अन्य PCs या शेयरों तक null या guest user के साथ पहुँच कर सकते हैं, तो आप फाइलें (जैसे SCF फाइल) रख सकते हैं जो यदि किसी तरह से पहुँची जाती हैं तो आपके खिलाफ NTML प्रमाणीकरण को ट्रिगर करेंगी ताकि आप NTLM चुनौती चुरा सकें:

{{#ref}} ../ntlm/places-to-steal-ntlm-creds.md {{#endref}}

क्रेडेंशियल्स/सेशन के साथ सक्रिय निर्देशिका की सूची बनाना

इस चरण के लिए आपको एक मान्य डोमेन खाते के क्रेडेंशियल्स या एक सत्र को समझौता करना होगा। यदि आपके पास कुछ मान्य क्रेडेंशियल्स या एक डोमेन उपयोगकर्ता के रूप में एक शेल है, तो आपको याद रखना चाहिए कि पहले दिए गए विकल्प अभी भी अन्य उपयोगकर्ताओं को समझौता करने के विकल्प हैं

प्रमाणित सूची बनाने से पहले आपको Kerberos डबल हॉप समस्या के बारे में जानना चाहिए।

{{#ref}} kerberos-double-hop-problem.md {{#endref}}

सूची बनाना

एक खाते को समझौता करना पूरे डोमेन को समझौता करने के लिए एक बड़ा कदम है, क्योंकि आप सक्रिय निर्देशिका की सूची बनाने में सक्षम होंगे:

ASREPRoast के संबंध में, आप अब हर संभावित कमजोर उपयोगकर्ता को ढूंढ सकते हैं, और Password Spraying के संबंध में, आप सभी उपयोगकर्ता नामों की एक सूची प्राप्त कर सकते हैं और समझौता किए गए खाते का पासवर्ड, खाली पासवर्ड और नए आशाजनक पासवर्ड आजमा सकते हैं।

  • आप CMD का उपयोग करके एक बुनियादी पुनः खोज करने के लिए कर सकते हैं
  • आप पुनः खोज के लिए powershell का उपयोग कर सकते हैं जो अधिक छिपा हुआ होगा
  • आप powerview का उपयोग कर सकते हैं अधिक विस्तृत जानकारी निकालने के लिए
  • सक्रिय निर्देशिका में पुनः खोज के लिए एक और अद्भुत उपकरण BloodHound है। यह बहुत छिपा हुआ नहीं है (आपके द्वारा उपयोग किए गए संग्रह विधियों के आधार पर), लेकिन यदि आपको इसकी परवाह नहीं है, तो आपको इसे पूरी तरह से आजमाना चाहिए। पता करें कि उपयोगकर्ता RDP कहाँ कर सकते हैं, अन्य समूहों के लिए पथ खोजें, आदि।
  • अन्य स्वचालित AD सूची बनाने के उपकरण हैं: AD Explorer, ADRecon, Group3r, PingCastle
  • AD के DNS रिकॉर्ड क्योंकि वे दिलचस्प जानकारी रख सकते हैं।
  • आप निर्देशिका की सूची बनाने के लिए AdExplorer.exe नामक GUI वाला एक उपकरण उपयोग कर सकते हैं जो SysInternal Suite से है।
  • आप userPassword और unixUserPassword फ़ील्ड में क्रेडेंशियल्स की खोज करने के लिए ldapsearch का उपयोग कर सकते हैं, या यहां तक कि Description के लिए भी। cf. 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 टिकट प्राप्त करना शामिल है जो उपयोगकर्ता खातों से जुड़े सेवाओं द्वारा उपयोग किए जाते हैं और उनकी एन्क्रिप्शन को क्रैक करना—जो उपयोगकर्ता पासवर्ड पर आधारित है—ऑफलाइन

इस बारे में अधिक जानकारी:

{{#ref}} kerberoast.md {{#endref}}

दूरस्थ कनेक्शन (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>"))

NTML Relay

यदि आप सक्रिय निर्देशिका को सूचीबद्ध करने में सफल रहे हैं, तो आपके पास अधिक ईमेल और नेटवर्क की बेहतर समझ होगी। आप NTML relay attacks** को मजबूर करने में सक्षम हो सकते हैं।**

कंप्यूटर शेयर में क्रेडेंशियल्स की तलाश करें

अब जब आपके पास कुछ बुनियादी क्रेडेंशियल्स हैं, तो आपको यह जांचना चाहिए कि क्या आप **AD के अंदर साझा की गई कोई दिलचस्प फ़ाइलें ढूंढ सकते हैं। आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन यह एक बहुत ही उबाऊ दोहरावदार कार्य है (और अधिक यदि आप सैकड़ों दस्तावेज़ ढूंढते हैं जिन्हें आपको जांचना है)।

उपकरणों के बारे में जानने के लिए इस लिंक का पालन करें।

NTLM क्रेडेंशियल्स चुराना

यदि आप अन्य PCs या शेयरों तक पहुँच सकते हैं, तो आप फाइलें (जैसे SCF फ़ाइल) रख सकते हैं जो यदि किसी तरह से एक्सेस की जाती हैं, तो आपके खिलाफ NTML प्रमाणीकरण को ट्रिगर करेंगी ताकि आप NTLM चुनौती चुरा सकें और इसे क्रैक कर सकें:

{{#ref}} ../ntlm/places-to-steal-ntlm-creds.md {{#endref}}

CVE-2021-1675/CVE-2021-34527 PrintNightmare

यह भेद्यता किसी भी प्रमाणित उपयोगकर्ता को डोमेन नियंत्रक को समझौता करने की अनुमति देती है।

{{#ref}} printnightmare.md {{#endref}}

विशेषाधिकार वृद्धि सक्रिय निर्देशिका में विशेषाधिकार प्राप्त क्रेडेंशियल्स/सत्र के साथ

निम्नलिखित तकनीकों के लिए एक नियमित डोमेन उपयोगकर्ता पर्याप्त नहीं है, आपको इन हमलों को करने के लिए कुछ विशेष विशेषाधिकार/क्रेडेंशियल्स की आवश्यकता है।

हैश निष्कर्षण

उम्मीद है कि आप AsRepRoast, Password Spraying, Kerberoast, Responder सहित रिले करते हुए, EvilSSDP, स्थानीय रूप से विशेषाधिकार बढ़ाना का उपयोग करके कुछ स्थानीय व्यवस्थापक खाते को समझौता करने में सफल रहे हैं।
फिर, सभी हैश को मेमोरी और स्थानीय रूप से डंप करने का समय है।
हैश प्राप्त करने के विभिन्न तरीकों के बारे में इस पृष्ठ को पढ़ें।

पास द हैश

एक बार जब आपके पास एक उपयोगकर्ता का हैश हो, तो आप इसका उपयोग उसका अनुकरण करने के लिए कर सकते हैं।
आपको कुछ उपकरण का उपयोग करने की आवश्यकता है जो उस हैश का उपयोग करके NTLM प्रमाणीकरण करेगा, या आप एक नया sessionlogon बना सकते हैं और LSASS के अंदर उस हैश को इंजेक्ट कर सकते हैं, ताकि जब भी कोई NTLM प्रमाणीकरण किया जाए, वह हैश का उपयोग किया जाएगा। अंतिम विकल्प वही है जो mimikatz करता है।
अधिक जानकारी के लिए इस पृष्ठ को पढ़ें।

ओवर पास द हैश/पास द की

यह हमला उपयोगकर्ता NTLM हैश का उपयोग करके Kerberos टिकटों का अनुरोध करने का लक्ष्य रखता है, NTLM प्रोटोकॉल पर सामान्य पास द हैश के विकल्प के रूप में। इसलिए, यह विशेष रूप से उन नेटवर्क में उपयोगी हो सकता है जहां NTLM प्रोटोकॉल अक्षम है और केवल Kerberos को प्रमाणीकरण प्रोटोकॉल के रूप में अनुमति दी गई है।

{{#ref}} over-pass-the-hash-pass-the-key.md {{#endref}}

पास द टिकट

पास द टिकट (PTT) हमले की विधि में, हमलावर उपयोगकर्ता का प्रमाणीकरण टिकट चुराते हैं बजाय उनके पासवर्ड या हैश मानों के। यह चुराया गया टिकट फिर उपयोगकर्ता का अनुकरण करने के लिए उपयोग किया जाता है, नेटवर्क के भीतर संसाधनों और सेवाओं तक अनधिकृत पहुंच प्राप्त करने के लिए।

{{#ref}} pass-the-ticket.md {{#endref}}

क्रेडेंशियल्स पुन: उपयोग

यदि आपके पास एक स्थानीय व्यवस्थापक का हैश या पासवर्ड है, तो आपको इसके साथ अन्य 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 उदाहरण द्वारा विश्वसनीय (डेटाबेस लिंक) माना जाता है। यदि उपयोगकर्ता के पास विश्वसनीय डेटाबेस पर विशेषाधिकार हैं, तो वह अन्य उदाहरण में क्वेरी निष्पादित करने के लिए विश्वास संबंध का उपयोग करने में सक्षम होगा। ये विश्वास श्रृंखलाबद्ध हो सकते हैं और किसी बिंदु पर उपयोगकर्ता एक गलत कॉन्फ़िगर की गई डेटाबेस खोजने में सक्षम हो सकता है जहाँ वह कमांड निष्पादित कर सकता है।
डेटाबेस के बीच के लिंक यहां तक कि वन के विश्वासों के पार भी काम करते हैं।

{{#ref}} abusing-ad-mssql.md {{#endref}}

अनियंत्रित प्रतिनिधित्व

यदि आप किसी कंप्यूटर ऑब्जेक्ट को ADS_UF_TRUSTED_FOR_DELEGATION विशेषता के साथ पाते हैं और आपके पास कंप्यूटर में डोमेन विशेषाधिकार हैं, तो आप कंप्यूटर पर लॉगिन करने वाले हर उपयोगकर्ता की मेमोरी से TGT को डंप करने में सक्षम होंगे।
तो, यदि एक डोमेन एडमिन कंप्यूटर पर लॉगिन करता है, तो आप उसके TGT को डंप कर सकते हैं और Pass the Ticket का उपयोग करके उसकी नकल कर सकते हैं।
संकीर्ण प्रतिनिधित्व के कारण आप यहां तक कि एक प्रिंट सर्वर को स्वचालित रूप से समझौता कर सकते हैं (उम्मीद है कि यह एक DC होगा)।

{{#ref}} unconstrained-delegation.md {{#endref}}

संकीर्ण प्रतिनिधित्व

यदि किसी उपयोगकर्ता या कंप्यूटर को "संकीर्ण प्रतिनिधित्व" की अनुमति है, तो वह किसी भी उपयोगकर्ता की नकल कर सकता है ताकि किसी कंप्यूटर में कुछ सेवाओं तक पहुँच सके
फिर, यदि आप इस उपयोगकर्ता/कंप्यूटर का हैश समझौता करते हैं, तो आप किसी भी उपयोगकर्ता (यहां तक कि डोमेन एडमिन) की नकल कर सकते हैं ताकि कुछ सेवाओं तक पहुँच सके।

{{#ref}} constrained-delegation.md {{#endref}}

संसाधन-आधारित संकीर्ण प्रतिनिधित्व

एक दूरस्थ कंप्यूटर के Active Directory ऑब्जेक्ट पर WRITE विशेषाधिकार होने से उच्च विशेषाधिकार के साथ कोड निष्पादन प्राप्त करने की अनुमति मिलती है:

{{#ref}} resource-based-constrained-delegation.md {{#endref}}

ACLs दुरुपयोग

समझौता किए गए उपयोगकर्ता के पास कुछ डोमेन ऑब्जेक्ट्स पर कुछ दिलचस्प विशेषाधिकार हो सकते हैं जो आपको पार्श्व रूप से स्थानांतरित करने/विशेषाधिकार बढ़ाने की अनुमति दे सकते हैं।

{{#ref}} acl-persistence-abuse/ {{#endref}}

प्रिंटर स्पूलर सेवा का दुरुपयोग

डोमेन के भीतर एक स्पूल सेवा सुनने की खोज की जा सकती है जिसे नए क्रेडेंशियल्स प्राप्त करने और विशेषाधिकार बढ़ाने के लिए दुरुपयोग किया जा सकता है।

{{#ref}} printers-spooler-service-abuse.md {{#endref}}

तीसरे पक्ष के सत्रों का दुरुपयोग

यदि अन्य उपयोगकर्ता समझौता किए गए मशीन तक पहुँचते हैं, तो यह मेमोरी से क्रेडेंशियल्स इकट्ठा करने और यहां तक कि उनकी प्रक्रियाओं में बीकन इंजेक्ट करने के लिए संभव है ताकि उनकी नकल की जा सके।
आमतौर पर उपयोगकर्ता RDP के माध्यम से सिस्टम तक पहुँचते हैं, इसलिए यहां आपके पास तीसरे पक्ष के RDP सत्रों पर कुछ हमले करने का तरीका है:

{{#ref}} rdp-sessions-abuse.md {{#endref}}

LAPS

LAPS डोमेन-जोड़े गए कंप्यूटरों पर स्थानीय व्यवस्थापक पासवर्ड प्रबंधित करने के लिए एक प्रणाली प्रदान करता है, यह सुनिश्चित करते हुए कि यह यादृच्छिक, अद्वितीय, और अक्सर बदला जाता है। ये पासवर्ड Active Directory में संग्रहीत होते हैं और ACLs के माध्यम से केवल अधिकृत उपयोगकर्ताओं के लिए पहुँच नियंत्रित की जाती है। इन पासवर्डों तक पहुँचने के लिए पर्याप्त अनुमतियों के साथ, अन्य कंप्यूटरों पर पिवटिंग करना संभव हो जाता है।

{{#ref}} laps.md {{#endref}}

प्रमाणपत्र चोरी

समझौता किए गए मशीन से प्रमाणपत्र इकट्ठा करना वातावरण के भीतर विशेषाधिकार बढ़ाने का एक तरीका हो सकता है:

{{#ref}} ad-certificates/certificate-theft.md {{#endref}}

प्रमाणपत्र टेम्पलेट्स का दुरुपयोग

यदि कमजोर टेम्पलेट्स कॉन्फ़िगर किए गए हैं, तो उन्हें विशेषाधिकार बढ़ाने के लिए दुरुपयोग किया जा सकता है:

{{#ref}} ad-certificates/domain-escalation.md {{#endref}}

उच्च विशेषाधिकार खाते के साथ पोस्ट-शोषण

डोमेन क्रेडेंशियल्स का डंपिंग

एक बार जब आप डोमेन एडमिन या यहां तक कि बेहतर एंटरप्राइज एडमिन विशेषाधिकार प्राप्त कर लेते हैं, तो आप डोमेन डेटाबेस को डंप कर सकते हैं: 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 खाते का हैश)। इस विधि का उपयोग सेवा विशेषाधिकारों तक पहुँचने के लिए किया जाता है।

{{#ref}} silver-ticket.md {{#endref}}

गोल्डन टिकट

गोल्डन टिकट हमला में एक हमलावर Active Directory (AD) वातावरण में krbtgt खाते के NTLM हैश तक पहुँच प्राप्त करता है। यह खाता विशेष है क्योंकि इसका उपयोग सभी टिकट ग्रांटिंग टिकट (TGTs) पर हस्ताक्षर करने के लिए किया जाता है, जो AD नेटवर्क के भीतर प्रमाणीकरण के लिए आवश्यक हैं।

एक बार जब हमलावर इस हैश को प्राप्त कर लेता है, तो वह किसी भी खाते के लिए TGTs बना सकता है जिसे वह चुनता है (सिल्वर टिकट हमला)।

{{#ref}} golden-ticket.md {{#endref}}

डायमंड टिकट

ये गोल्डन टिकट की तरह होते हैं जिन्हें इस तरह से सामान्य गोल्डन टिकट पहचान तंत्रों को बायपास करने के लिए तैयार किया गया है।

{{#ref}} diamond-ticket.md {{#endref}}

प्रमाणपत्र खाता स्थिरता

किसी खाते के प्रमाणपत्र होना या उन्हें अनुरोध करने में सक्षम होना उपयोगकर्ता के खाते में स्थिरता बनाए रखने का एक बहुत अच्छा तरीका है (यहां तक कि यदि वह पासवर्ड बदलता है):

{{#ref}} ad-certificates/account-persistence.md {{#endref}}

प्रमाणपत्र डोमेन स्थिरता

प्रमाणपत्रों का उपयोग करना भी डोमेन के भीतर उच्च विशेषाधिकारों के साथ स्थिरता बनाए रखना संभव है:

{{#ref}} ad-certificates/domain-persistence.md {{#endref}}

AdminSDHolder समूह

Active Directory में AdminSDHolder ऑब्जेक्ट विशेषाधिकार प्राप्त समूहों (जैसे डोमेन एडमिन और एंटरप्राइज एडमिन) की सुरक्षा सुनिश्चित करता है, इन समूहों पर एक मानक एक्सेस कंट्रोल लिस्ट (ACL) लागू करके अनधिकृत परिवर्तनों को रोकता है। हालाँकि, इस सुविधा का दुरुपयोग किया जा सकता है; यदि एक हमलावर AdminSDHolder के ACL को एक नियमित उपयोगकर्ता को पूर्ण पहुँच देने के लिए संशोधित करता है, तो उस उपयोगकर्ता को सभी विशेषाधिकार प्राप्त समूहों पर व्यापक नियंत्रण मिल जाता है। यह सुरक्षा उपाय, जिसे सुरक्षा के लिए बनाया गया था, इस प्रकार उलटा पड़ सकता है, जिससे बिना अनुमति की पहुँच मिलती है जब तक कि इसे निकटता से मॉनिटर नहीं किया जाता।

AdminDSHolder समूह के बारे में अधिक जानकारी यहां।

DSRM क्रेडेंशियल्स

हर डोमेन कंट्रोलर (DC) के अंदर, एक स्थानीय व्यवस्थापक खाता होता है। ऐसी मशीन पर प्रशासनिक अधिकार प्राप्त करके, स्थानीय व्यवस्थापक हैश को mimikatz का उपयोग करके निकाला जा सकता है। इसके बाद, इस पासवर्ड का उपयोग करने के लिए पंजीकरण संशोधन आवश्यक है, जिससे स्थानीय व्यवस्थापक खाते तक दूरस्थ पहुँच की अनुमति मिलती है।

{{#ref}} dsrm-credentials.md {{#endref}}

ACL स्थिरता

आप कुछ विशेष डोमेन ऑब्जेक्ट्स पर एक उपयोगकर्ता को कुछ विशेष अनुमति दे सकते हैं जो उपयोगकर्ता को भविष्य में विशेषाधिकार बढ़ाने की अनुमति देगा।

{{#ref}} acl-persistence-abuse/ {{#endref}}

सुरक्षा वर्णनकर्ता

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

{{#ref}} security-descriptors.md {{#endref}}

कंकाल कुंजी

LSASS को मेमोरी में संशोधित करें ताकि एक सार्वभौमिक पासवर्ड स्थापित किया जा सके, जो सभी डोमेन खातों तक पहुँच प्रदान करता है।

{{#ref}} skeleton-key.md {{#endref}}

कस्टम SSP

यहां जानें कि SSP (सुरक्षा समर्थन प्रदाता) क्या है।
आप अपना खुद का SSP बना सकते हैं ताकि मशीन तक पहुँचने के लिए उपयोग किए गए क्रेडेंशियल्स को स्पष्ट पाठ में कैप्चर किया जा सके।\

{{#ref}} custom-ssp.md {{#endref}}

DCShadow

यह AD में एक नया डोमेन कंट्रोलर पंजीकृत करता है और निर्दिष्ट वस्तुओं पर विशेषताएँ (SIDHistory, SPNs...) धकेलने के लिए इसका उपयोग करता है बिना किसी लॉग को छोड़ने के जो संशोधनों के बारे में हो। आपको DA विशेषाधिकार की आवश्यकता है और रूट डोमेन के अंदर होना चाहिए।
ध्यान दें कि यदि आप गलत डेटा का उपयोग करते हैं, तो बहुत भद्दे लॉग दिखाई देंगे।

{{#ref}} dcshadow.md {{#endref}}

LAPS स्थिरता

पहले हमने चर्चा की है कि यदि आपके पास LAPS पासवर्ड पढ़ने के लिए पर्याप्त अनुमति है तो विशेषाधिकार कैसे बढ़ाए जा सकते हैं। हालाँकि, इन पासवर्डों का उपयोग स्थिरता बनाए रखने के लिए भी किया जा सकता है।
जांचें:

{{#ref}} laps.md {{#endref}}

वन विशेषाधिकार वृद्धि - डोमेन ट्रस्ट

Microsoft वन को सुरक्षा सीमा के रूप में देखता है। इसका अर्थ है कि एकल डोमेन का समझौता करना संभावित रूप से पूरे वन के समझौता होने की संभावना है

बुनियादी जानकारी

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

एक सामान्य परिदृश्य में, यदि एक उपयोगकर्ता एक विश्वसनीय डोमेन में सेवा तक पहुँचने का इरादा रखता है, तो उसे पहले अपने डोमेन के DC से इंटर-रीलम TGT के रूप में एक विशेष टिकट का अनुरोध करना होगा। यह TGT एक साझा कुंजी के साथ एन्क्रिप्ट किया गया है जिस पर दोनों डोमेन सहमत हुए हैं। उपयोगकर्ता फिर इस TGT को विश्वसनीय डोमेन के DC को सेवा टिकट (TGS) प्राप्त करने के लिए प्रस्तुत करता है। जब विश्वसनीय डोमेन के DC द्वारा इंटर-रीलम TGT की सफल सत्यापन होती है, तो यह एक TGS जारी करता है, जो उपयोगकर्ता को सेवा तक पहुँच प्रदान करता है।

चरण:

  1. डोमेन 1 में एक क्लाइंट कंप्यूटर प्रक्रिया शुरू करता है, जो अपने NTLM हैश का उपयोग करके अपने डोमेन कंट्रोलर (DC1) से टिकट ग्रांटिंग टिकट (TGT) का अनुरोध करता है।
  2. यदि क्लाइंट सफलतापूर्वक प्रमाणित होता है, तो DC1 एक नया TGT जारी करता है।
  3. क्लाइंट फिर डोमेन 2 में संसाधनों तक पहुँचने के लिए DC1 से इंटर-रीलम TGT का अनुरोध करता है।
  4. इंटर-रीलम TGT को DC1 और DC2 के बीच साझा ट्रस्ट कुंजी के साथ एन्क्रिप्ट किया गया है, जो दो-तरफा डोमेन ट्रस्ट का हिस्सा है।
  5. क्लाइंट इंटर-रीलम TGT को डोमेन 2 के डोमेन कंट्रोलर (DC2) पर ले जाता है।
  6. DC2 अपने साझा ट्रस्ट कुंजी का उपयोग करके इंटर-रीलम TGT की सत्यापन करता है और यदि मान्य है, तो वह उस सर्वर के लिए टिकट ग्रांटिंग सेवा (TGS) जारी करता है जिसे क्लाइंट पहुँच प्राप्त करना चाहता है।
  7. अंततः, क्लाइंट इस 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) या गैर-पारगम्य हो सकता है।
  • एक ट्रस्ट संबंध को द्विदिशीय ट्रस्ट (दोनों एक-दूसरे पर विश्वास करते हैं) या एक-तरफा ट्रस्ट (केवल उनमें से एक दूसरे पर विश्वास करता है) के रूप में स्थापित किया जा सकता है।

हमले का मार्ग

  1. विश्वास संबंधों की गणना करें
  2. जांचें कि क्या कोई सुरक्षा प्रमुख (उपयोगकर्ता/समूह/कंप्यूटर) के पास दूसरे डोमेन के संसाधनों तक पहुँच है, शायद ACE प्रविष्टियों द्वारा या दूसरे डोमेन के समूहों में होने के कारण। डोमेनों के बीच संबंधों की तलाश करें (यह ट्रस्ट शायद इसके लिए बनाया गया था)।
  3. इस मामले में kerberoast एक और विकल्प हो सकता है।
  4. खातों का समझौता करें जो डोमेन के माध्यम से पिवट कर सकते हैं।

हमलावरों को दूसरे डोमेन में संसाधनों तक पहुँच प्राप्त करने के लिए तीन प्राथमिक तंत्रों के माध्यम से पहुँच मिल सकती है:

  • स्थानीय समूह सदस्यता: प्रमुखों को मशीनों पर स्थानीय समूहों में जोड़ा जा सकता है, जैसे कि सर्वर पर "व्यवस्थापकों" का समूह, जो उन्हें उस मशीन पर महत्वपूर्ण नियंत्रण प्रदान करता है।
  • विदेशी डोमेन समूह सदस्यता: प्रमुख भी विदेशी डोमेन के भीतर समूहों के सदस्य हो सकते हैं। हालाँकि, इस विधि की प्रभावशीलता ट्रस्ट की प्रकृति और समूह के दायरे पर निर्भर करती है।
  • एक्सेस कंट्रोल लिस्ट (ACLs): प्रमुखों को एक ACL में निर्दिष्ट किया जा सकता है, विशेष रूप से DACL के भीतर ACEs के रूप में, जो उन्हें विशिष्ट संसाधनों तक पहुँच प्रदान करता है। जो लोग ACLs, DACLs, और ACEs के तंत्र में गहराई से जाना चाहते हैं, उनके लिए "An ACE Up The Sleeve" शीर्षक वाला श्वेत पत्र एक अमूल्य संसाधन है।

शिशु-से-माता-पिता वन विशेषाधिकार वृद्धि

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

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 injection के साथ:

{{#ref}} sid-history-injection.md {{#endref}}

लिखने योग्य Configuration NC का शोषण

Configuration Naming Context (NC) को कैसे शोषित किया जा सकता है, यह समझना महत्वपूर्ण है। Configuration NC सक्रिय निर्देशिका (AD) वातावरण में एक वन के भीतर कॉन्फ़िगरेशन डेटा के लिए एक केंद्रीय भंडार के रूप में कार्य करता है। यह डेटा वन के भीतर प्रत्येक डोमेन कंट्रोलर (DC) पर पुन: उत्पन्न होता है, जिसमें लिखने योग्य DCs Configuration NC की एक लिखने योग्य प्रति बनाए रखते हैं। इसे शोषित करने के लिए, किसी को DC पर SYSTEM विशेषाधिकार होना चाहिए, सबसे अच्छा एक चाइल्ड DC।

रूट DC साइट से GPO लिंक करें

Configuration NC के साइट्स कंटेनर में AD वन के भीतर सभी डोमेन-जोड़े गए कंप्यूटरों की साइटों के बारे में जानकारी शामिल होती है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ कार्य करते हुए, हमलावर GPOs को रूट DC साइटों से लिंक कर सकते हैं। यह क्रिया इन साइटों पर लागू की गई नीतियों में हेरफेर करके रूट डोमेन को संभावित रूप से समझौता कर सकती है।

गहन जानकारी के लिए, कोई SID Filtering को बायपास करने पर शोध की खोज कर सकता है।

वन में किसी भी gMSA का समझौता करें

एक हमले का वेक्टर डोमेन के भीतर विशेषाधिकार प्राप्त gMSAs को लक्षित करना है। KDS रूट कुंजी, जो gMSAs के पासवर्ड की गणना के लिए आवश्यक है, Configuration NC के भीतर संग्रहीत होती है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ, KDS रूट कुंजी तक पहुंच प्राप्त करना और वन में किसी भी gMSA के लिए पासवर्ड की गणना करना संभव है।

विस्तृत विश्लेषण Golden gMSA Trust Attacks पर चर्चा में पाया जा सकता है।

Schema परिवर्तन हमला

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

अधिक पढ़ाई Schema Change Trust Attacks पर उपलब्ध है।

DA से EA तक ADCS ESC5 के साथ

ADCS ESC5 भेद्यता सार्वजनिक कुंजी अवसंरचना (PKI) ऑब्जेक्ट्स पर नियंत्रण को लक्षित करती है ताकि एक प्रमाणपत्र टेम्पलेट बनाया जा सके जो वन के भीतर किसी भी उपयोगकर्ता के रूप में प्रमाणीकरण की अनुमति देता है। चूंकि PKI ऑब्जेक्ट्स Configuration NC में स्थित होते हैं, एक लिखने योग्य चाइल्ड DC का समझौता ESC5 हमलों को निष्पादित करने की अनुमति देता है।

इस पर अधिक विवरण DA से EA तक ESC5 के साथ में पढ़ा जा सकता है। ADCS की कमी वाले परिदृश्यों में, हमलावर आवश्यक घटकों को स्थापित करने की क्षमता रखता है, जैसा कि चाइल्ड डोमेन एडमिन से एंटरप्राइज एडमिन में वृद्धि में चर्चा की गई है।

बाहरी वन डोमेन - एक-तरफा (इनबाउंड) या द्विदिश

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

इस परिदृश्य में आपका डोमेन एक बाहरी द्वारा विश्वसनीय है जो आपको अनिश्चित अनुमतियाँ देता है। आपको यह पता लगाने की आवश्यकता होगी कि आपके डोमेन के कौन से प्रिंसिपल्स के पास बाहरी डोमेन पर कौन सा एक्सेस है और फिर इसे भुनाने की कोशिश करें:

{{#ref}} external-forest-domain-oneway-inbound.md {{#endref}}

बाहरी वन डोमेन - एक-तरफा (आउटबाउंड)

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

इस परिदृश्य में आपका डोमेन किसी विभिन्न डोमेन से प्रिंसिपल को कुछ अधिकार विश्वास कर रहा है।

हालांकि, जब एक डोमेन को विश्वास किया जाता है, तो विश्वास करने वाला डोमेन एक उपयोगकर्ता बनाता है जिसका पूर्वानुमानित नाम होता है जो विश्वासित पासवर्ड का उपयोग करता है। इसका मतलब है कि यह संभव है कि विश्वास करने वाले डोमेन से एक उपयोगकर्ता को एक्सेस करके विश्वासित डोमेन में प्रवेश किया जा सके ताकि उसे सूचीबद्ध किया जा सके और अधिक अधिकारों को बढ़ाने की कोशिश की जा सके:

{{#ref}} external-forest-domain-one-way-outbound.md {{#endref}}

विश्वासित डोमेन को समझौता करने का एक और तरीका है SQL trusted link को खोजना जो डोमेन ट्रस्ट के विपरीत दिशा में बनाया गया है (जो बहुत सामान्य नहीं है)।

विश्वासित डोमेन को समझौता करने का एक और तरीका है उस मशीन पर इंतजार करना जहां विश्वासित डोमेन का एक उपयोगकर्ता RDP के माध्यम से लॉगिन कर सकता है। फिर, हमलावर RDP सत्र प्रक्रिया में कोड इंजेक्ट कर सकता है और विक्टिम के मूल डोमेन तक पहुंच सकता है।
इसके अलावा, यदि विक्टिम ने अपना हार्ड ड्राइव माउंट किया है, तो RDP सत्र प्रक्रिया से हमलावर हार्ड ड्राइव के स्टार्टअप फ़ोल्डर में बैकडोर स्टोर कर सकता है। इस तकनीक को RDPInception कहा जाता है।

{{#ref}} rdp-sessions-abuse.md {{#endref}}

डोमेन ट्रस्ट दुरुपयोग शमन

SID फ़िल्टरिंग:

  • SID इतिहास विशेषता का उपयोग करके हमलों के जोखिम को SID फ़िल्टरिंग द्वारा कम किया जाता है, जो सभी इंटर-फॉरेस्ट ट्रस्ट पर डिफ़ॉल्ट रूप से सक्रिय होता है। यह इस धारणा पर आधारित है कि इंट्रा-फॉरेस्ट ट्रस्ट सुरक्षित हैं, फॉरेस्ट को सुरक्षा सीमा के रूप में मानते हुए, न कि डोमेन को, जैसा कि माइक्रोसॉफ्ट का मानना है।
  • हालाँकि, एक पकड़ है: SID फ़िल्टरिंग अनुप्रयोगों और उपयोगकर्ता पहुंच को बाधित कर सकता है, जिसके कारण इसे कभी-कभी निष्क्रिय किया जा सकता है।

चयनात्मक प्रमाणीकरण:

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

iRed.team पर डोमेन ट्रस्ट के बारे में अधिक जानकारी।

AD -> Azure & Azure -> AD

{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/azure-ad-connect-hybrid-identity" %}

कुछ सामान्य रक्षा

यहां क्रेडेंशियल्स की सुरक्षा के बारे में अधिक जानें।\

क्रेडेंशियल सुरक्षा के लिए रक्षात्मक उपाय

  • डोमेन एडमिन प्रतिबंध: यह अनुशंसा की जाती है कि डोमेन एडमिन केवल डोमेन कंट्रोलर्स में लॉगिन करने की अनुमति दी जाए, अन्य होस्ट पर उनके उपयोग से बचें।
  • सेवा खाता अधिकार: सेवाओं को सुरक्षा बनाए रखने के लिए डोमेन एडमिन (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 डिटेक्शन से बचने के लिए गैर-डोमेन कंट्रोलर से निष्पादन करना सलाह दी जाती है, क्योंकि डोमेन कंट्रोलर से सीधे निष्पादन करने पर अलर्ट ट्रिगर होगा।

संदर्भ

{{#include ../../banners/hacktricks-training.md}}