.. | ||
acl-persistence-abuse | ||
ad-certificates | ||
abusing-ad-mssql.md | ||
ad-certificates.md | ||
ad-dns-records.md | ||
ad-information-in-printers.md | ||
asreproast.md | ||
bloodhound.md | ||
constrained-delegation.md | ||
custom-ssp.md | ||
dcshadow.md | ||
dcsync.md | ||
diamond-ticket.md | ||
dsrm-credentials.md | ||
external-forest-domain-one-way-outbound.md | ||
external-forest-domain-oneway-inbound.md | ||
golden-ticket.md | ||
kerberoast.md | ||
kerberos-authentication.md | ||
kerberos-double-hop-problem.md | ||
laps.md | ||
over-pass-the-hash-pass-the-key.md | ||
pass-the-ticket.md | ||
password-spraying.md | ||
printers-spooler-service-abuse.md | ||
printnightmare.md | ||
privileged-groups-and-token-privileges.md | ||
rdp-sessions-abuse.md | ||
README.md | ||
resource-based-constrained-delegation.md | ||
security-descriptors.md | ||
sid-history-injection.md | ||
silver-ticket.md | ||
skeleton-key.md | ||
unconstrained-delegation.md |
Active Directory Methodology
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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 को सूचीबद्ध/शोषण करने के लिए आप कौन से कमांड चला सकते हैं, इसका त्वरित दृश्य प्राप्त कर सकते हैं।
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 सर्वर को सूचीबद्ध करने के लिए अधिक विस्तृत मार्गदर्शिका यहाँ मिल सकती है:
{% content-ref url="../../network-services-pentesting/pentesting-smb/" %} pentesting-smb {% endcontent-ref %}
- Ldap को सूचीबद्ध करें
nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>
- LDAP को सूचीबद्ध करने के लिए अधिक विस्तृत मार्गदर्शिका यहाँ मिल सकती है (विशेष रूप से गुमनाम पहुँच पर ध्यान दें):
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} pentesting-ldap.md {% endcontent-ref %}
- नेटवर्क को विषाक्त करें
- Responder के साथ सेवाओं का अनुकरण करके क्रेडेंशियल्स इकट्ठा करें
- रिले हमले का दुरुपयोग करके होस्ट तक पहुँचें
- खराब UPnP सेवाओं को उजागर करके क्रेडेंशियल्स इकट्ठा करेंSDP
- 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
{% hint style="warning" %} आप उपयोगकर्ता नामों की सूचियाँ इस github repo **** और इस (statistically-likely-usernames) में पा सकते हैं।
हालांकि, आपके पास कंपनी में काम करने वाले लोगों के नाम होने चाहिए जो आप पहले की पुनः खोज चरण से प्राप्त कर चुके हैं। नाम और उपनाम के साथ, आप संभावित मान्य उपयोगकर्ता नाम उत्पन्न करने के लिए namemash.py स्क्रिप्ट का उपयोग कर सकते हैं। {% endhint %}
एक या एक से अधिक उपयोगकर्ता नाम जानना
ठीक है, तो आप जानते हैं कि आपके पास पहले से एक मान्य उपयोगकर्ता नाम है लेकिन कोई पासवर्ड नहीं है... फिर कोशिश करें:
- ASREPRoast: यदि किसी उपयोगकर्ता के पास DONT_REQ_PREAUTH विशेषता नहीं है, तो आप उस उपयोगकर्ता के लिए AS_REP संदेश का अनुरोध कर सकते हैं जिसमें उपयोगकर्ता के पासवर्ड के एक व्युत्पन्न द्वारा एन्क्रिप्टेड कुछ डेटा होगा।
- Password Spraying: चलो प्रत्येक खोजे गए उपयोगकर्ताओं के साथ सबसे सामान्य पासवर्ड का प्रयास करते हैं, शायद कुछ उपयोगकर्ता एक खराब पासवर्ड का उपयोग कर रहा है (पासवर्ड नीति को ध्यान में रखें!)।
- ध्यान दें कि आप OWA सर्वरों को भी स्प्रे कर सकते हैं ताकि उपयोगकर्ताओं के मेल सर्वरों तक पहुँच प्राप्त कर सकें।
{% content-ref url="password-spraying.md" %} password-spraying.md {% endcontent-ref %}
LLMNR/NBT-NS जहर देना
आप कुछ चुनौती हैश प्राप्त करने में सक्षम हो सकते हैं जहर देकर कुछ प्रोटोकॉल के नेटवर्क:
{% content-ref url="../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %} spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md {% endcontent-ref %}
NTML रिले
यदि आप सक्रिय निर्देशिका को सूचीबद्ध करने में सफल रहे हैं, तो आपके पास अधिक ईमेल और नेटवर्क की बेहतर समझ होगी। आप NTML रिले हमलों **** को मजबूर करने में सक्षम हो सकते हैं ताकि AD वातावरण तक पहुँच प्राप्त कर सकें।
NTLM क्रेडेंशियल चुराना
यदि आप अन्य PCs या शेयरों तक नल या अतिथि उपयोगकर्ता के साथ पहुँच कर सकते हैं, तो आप फाइलें (जैसे SCF फ़ाइल) रख सकते हैं जो यदि किसी तरह से पहुँची जाती हैं तो आपके खिलाफ NTML प्रमाणीकरण को सक्रिय करेंगी ताकि आप NTLM चुनौती चुरा सकें:
{% content-ref url="../ntlm/places-to-steal-ntlm-creds.md" %} places-to-steal-ntlm-creds.md {% endcontent-ref %}
क्रेडेंशियल्स/सत्र के साथ सक्रिय निर्देशिका की सूची बनाना
इस चरण के लिए आपको एक मान्य डोमेन खाते के क्रेडेंशियल्स या सत्र को समझौता करना होगा। यदि आपके पास कुछ मान्य क्रेडेंशियल्स या एक शेल है, तो आपको याद रखना चाहिए कि पहले दिए गए विकल्प अभी भी अन्य उपयोगकर्ताओं को समझौता करने के विकल्प हैं।
प्रमाणित सूची बनाने से पहले, आपको Kerberos डबल हॉप समस्या क्या है, यह जानना चाहिए।
{% content-ref url="kerberos-double-hop-problem.md" %} kerberos-double-hop-problem.md {% endcontent-ref %}
सूची बनाना
एक खाते को समझौता करना पूरे डोमेन को समझौता करने के लिए एक बड़ा कदम है, क्योंकि आप सक्रिय निर्देशिका की सूची बनाना शुरू करने में सक्षम होंगे:
ASREPRoast के संबंध में, आप अब हर संभावित कमजोर उपयोगकर्ता को ढूंढ सकते हैं, और Password Spraying के संबंध में, आप सभी उपयोगकर्ता नामों की एक सूची प्राप्त कर सकते हैं और समझौता किए गए खाते का पासवर्ड, खाली पासवर्ड और नए आशाजनक पासवर्ड का प्रयास कर सकते हैं।
- आप CMD का उपयोग करके एक बुनियादी पुनः खोज कर सकते हैं
- आप पॉवरशेल का उपयोग करके पुनः खोज कर सकते हैं जो अधिक छिपा हुआ होगा
- आप powerview का उपयोग कर सकते हैं अधिक विस्तृत जानकारी निकालने के लिए
- सक्रिय निर्देशिका में पुनः खोज के लिए एक और अद्भुत उपकरण है BloodHound। यह बहुत छिपा हुआ नहीं है (आपके द्वारा उपयोग किए गए संग्रह विधियों के आधार पर), लेकिन यदि आपको इसकी परवाह नहीं है, तो आपको इसे पूरी तरह से आजमाना चाहिए। पता करें कि उपयोगकर्ता RDP कहाँ कर सकते हैं, अन्य समूहों के लिए पथ खोजें, आदि।
- अन्य स्वचालित AD सूचीकरण उपकरण हैं: AD Explorer, ADRecon, Group3r, PingCastle।
- AD के DNS रिकॉर्ड क्योंकि वे दिलचस्प जानकारी रख सकते हैं।
- आप निर्देशिका की सूची बनाने के लिए AdExplorer.exe का उपयोग कर सकते हैं जो SysInternal सूट से है।
- आप ldapsearch के साथ LDAP डेटाबेस में क्रेडेंशियल्स की खोज कर सकते हैं userPassword और unixUserPassword फ़ील्ड में, या यहां तक कि 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 टिकट प्राप्त करना शामिल है जो उपयोगकर्ता खातों से जुड़े सेवाओं द्वारा उपयोग किए जाते हैं और उनके एन्क्रिप्शन को क्रैक करना—जो उपयोगकर्ता पासवर्ड पर आधारित है—ऑफलाइन।
इस बारे में अधिक जानकारी:
{% content-ref url="kerberoast.md" %} kerberoast.md {% endcontent-ref %}
दूरस्थ कनेक्शन (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** को मजबूर करने में सक्षम हो सकते हैं।**
Looks for Creds in Computer Shares
अब जब आपके पास कुछ बुनियादी क्रेडेंशियल हैं, तो आपको यह जांचना चाहिए कि क्या आप **AD के अंदर साझा की गई कोई दिलचस्प फ़ाइलें पाते हैं। आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन यह एक बहुत ही उबाऊ दोहराव वाला कार्य है (और अधिक यदि आप सैकड़ों दस्तावेज़ पाते हैं जिन्हें आपको जांचना है)।
Follow this link to learn about tools you could use.
Steal NTLM Creds
यदि आप अन्य PCs या शेयरों तक पहुँच सकते हैं, तो आप फाइलें (जैसे SCF फ़ाइल) रख सकते हैं, जो यदि किसी तरह से एक्सेस की जाती हैं, तो आपके खिलाफ NTML प्रमाणीकरण को ट्रिगर करेंगी ताकि आप NTLM चुनौती चुरा सकें।
{% content-ref url="../ntlm/places-to-steal-ntlm-creds.md" %} places-to-steal-ntlm-creds.md {% endcontent-ref %}
CVE-2021-1675/CVE-2021-34527 PrintNightmare
यह भेद्यता किसी भी प्रमाणित उपयोगकर्ता को डोमेन नियंत्रक को समझौता करने की अनुमति देती है।
{% content-ref url="printnightmare.md" %} printnightmare.md {% endcontent-ref %}
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 को प्रमाणीकरण प्रोटोकॉल के रूप में अनुमति दी गई है।
{% content-ref url="over-pass-the-hash-pass-the-key.md" %} over-pass-the-hash-pass-the-key.md {% endcontent-ref %}
Pass the Ticket
Pass The Ticket (PTT) हमले की विधि में, हमलावर उपयोगकर्ता का प्रमाणीकरण टिकट चुराते हैं बजाय इसके कि उनके पासवर्ड या हैश मान। यह चुराया गया टिकट फिर उपयोगकर्ता का अनुकरण करने के लिए उपयोग किया जाता है, नेटवर्क के भीतर संसाधनों और सेवाओं तक अनधिकृत पहुंच प्राप्त करने के लिए।
{% content-ref url="pass-the-ticket.md" %} pass-the-ticket.md {% endcontent-ref %}
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 +
{% hint style="warning" %} ध्यान दें कि यह काफी शोरगुल वाला है और LAPS इसे कम करेगा। {% endhint %}
MSSQL दुरुपयोग और विश्वसनीय लिंक
यदि किसी उपयोगकर्ता के पास MSSQL उदाहरणों तक पहुँचने के लिए विशेषाधिकार हैं, तो वह इसे कमांड को MSSQL होस्ट में निष्पादित करने के लिए उपयोग कर सकता है (यदि SA के रूप में चल रहा हो), NetNTLM हैश चुराने के लिए या यहां तक कि रिले हमला करने के लिए।
इसके अलावा, यदि एक MSSQL उदाहरण को एक अलग MSSQL उदाहरण द्वारा विश्वसनीय (डेटाबेस लिंक) माना जाता है। यदि उपयोगकर्ता के पास विश्वसनीय डेटाबेस पर विशेषाधिकार हैं, तो वह अन्य उदाहरण में क्वेरी निष्पादित करने के लिए विश्वास संबंध का उपयोग करने में सक्षम होगा। ये विश्वास श्रृंखलाबद्ध हो सकते हैं और किसी बिंदु पर उपयोगकर्ता एक गलत कॉन्फ़िगर की गई डेटाबेस खोजने में सक्षम हो सकता है जहाँ वह कमांड निष्पादित कर सकता है।
डेटाबेस के बीच के लिंक यहां तक कि वन वन ट्रस्ट के पार भी काम करते हैं।
{% content-ref url="abusing-ad-mssql.md" %} abusing-ad-mssql.md {% endcontent-ref %}
असंवर्तित प्रतिनिधित्व
यदि आप किसी कंप्यूटर ऑब्जेक्ट को ADS_UF_TRUSTED_FOR_DELEGATION विशेषता के साथ पाते हैं और आपके पास कंप्यूटर में डोमेन विशेषाधिकार हैं, तो आप कंप्यूटर पर लॉगिन करने वाले हर उपयोगकर्ता की मेमोरी से TGT को डंप करने में सक्षम होंगे।
तो, यदि एक डोमेन एडमिन कंप्यूटर पर लॉगिन करता है, तो आप उसके TGT को डंप कर सकते हैं और पास द टिकट का उपयोग करके उसकी नकल कर सकते हैं।
संवर्तित प्रतिनिधित्व के कारण आप यहां तक कि एक प्रिंट सर्वर को स्वचालित रूप से समझौता कर सकते हैं (उम्मीद है कि यह एक DC होगा)।
{% content-ref url="unconstrained-delegation.md" %} unconstrained-delegation.md {% endcontent-ref %}
संवर्तित प्रतिनिधित्व
यदि किसी उपयोगकर्ता या कंप्यूटर को "संवर्तित प्रतिनिधित्व" के लिए अनुमति दी गई है, तो वह किसी भी उपयोगकर्ता की नकल करने में सक्षम होगा ताकि किसी कंप्यूटर में कुछ सेवाओं तक पहुँच सके।
फिर, यदि आप इस उपयोगकर्ता/कंप्यूटर का हैश समझौता करते हैं, तो आप किसी भी उपयोगकर्ता (यहां तक कि डोमेन एडमिन) की नकल करने में सक्षम होंगे ताकि कुछ सेवाओं तक पहुँच सके।
{% content-ref url="constrained-delegation.md" %} constrained-delegation.md {% endcontent-ref %}
संसाधन-आधारित संवर्तित प्रतिनिधित्व
एक दूरस्थ कंप्यूटर के Active Directory ऑब्जेक्ट पर WRITE विशेषाधिकार होने से उन्नत विशेषाधिकार के साथ कोड निष्पादन प्राप्त करने की अनुमति मिलती है:
{% content-ref url="resource-based-constrained-delegation.md" %} resource-based-constrained-delegation.md {% endcontent-ref %}
ACLs दुरुपयोग
समझौता किया गया उपयोगकर्ता कुछ दिलचस्प विशेषाधिकार रख सकता है जो आपको पार्श्व में स्थानांतरित करने/विशेषाधिकार बढ़ाने की अनुमति दे सकता है।
{% content-ref url="acl-persistence-abuse/" %} acl-persistence-abuse {% endcontent-ref %}
प्रिंटर स्पूलर सेवा का दुरुपयोग
डोमेन के भीतर स्पूल सेवा सुनने का पता लगाना नए क्रेडेंशियल्स प्राप्त करने और विशेषाधिकार बढ़ाने के लिए दुरुपयोग किया जा सकता है।
{% content-ref url="printers-spooler-service-abuse.md" %} printers-spooler-service-abuse.md {% endcontent-ref %}
तीसरे पक्ष के सत्रों का दुरुपयोग
यदि अन्य उपयोगकर्ता समझौता की गई मशीन तक पहुँचते हैं, तो मेमोरी से क्रेडेंशियल्स एकत्र करना और यहां तक कि उनकी प्रक्रियाओं में बीकन इंजेक्ट करना संभव है ताकि उनकी नकल की जा सके।
आमतौर पर उपयोगकर्ता RDP के माध्यम से सिस्टम तक पहुँचते हैं, इसलिए यहां आपके पास तीसरे पक्ष के RDP सत्रों पर कुछ हमले करने का तरीका है:
{% content-ref url="rdp-sessions-abuse.md" %} rdp-sessions-abuse.md {% endcontent-ref %}
LAPS
LAPS डोमेन-जोड़े गए कंप्यूटरों पर स्थानीय व्यवस्थापक पासवर्ड प्रबंधित करने के लिए एक प्रणाली प्रदान करता है, यह सुनिश्चित करते हुए कि यह यादृच्छिक, अद्वितीय, और अक्सर बदलता है। ये पासवर्ड Active Directory में संग्रहीत होते हैं और ACLs के माध्यम से केवल अधिकृत उपयोगकर्ताओं के लिए पहुँच नियंत्रित की जाती है। इन पासवर्डों तक पहुँचने के लिए पर्याप्त अनुमतियों के साथ, अन्य कंप्यूटरों पर पिवटिंग संभव हो जाता है।
{% content-ref url="laps.md" %} laps.md {% endcontent-ref %}
प्रमाणपत्र चोरी
समझौता की गई मशीन से प्रमाणपत्र एकत्र करना वातावरण के भीतर विशेषाधिकार बढ़ाने का एक तरीका हो सकता है:
{% content-ref url="ad-certificates/certificate-theft.md" %} certificate-theft.md {% endcontent-ref %}
प्रमाणपत्र टेम्पलेट्स का दुरुपयोग
यदि कमजोर टेम्पलेट्स कॉन्फ़िगर किए गए हैं, तो उन्हें विशेषाधिकार बढ़ाने के लिए दुरुपयोग किया जा सकता है:
{% content-ref url="ad-certificates/domain-escalation.md" %} domain-escalation.md {% endcontent-ref %}
उच्च विशेषाधिकार खाते के साथ पोस्ट-शोषण
डोमेन क्रेडेंशियल्स का डंपिंग
एक बार जब आप डोमेन एडमिन या यहां तक कि बेहतर एंटरप्राइज एडमिन विशेषाधिकार प्राप्त कर लेते हैं, तो आप डोमेन डेटाबेस को डंप कर सकते हैं: 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 खाते का हैश)। इस विधि का उपयोग सेवा विशेषाधिकारों तक पहुँचने के लिए किया जाता है।
{% content-ref url="silver-ticket.md" %} silver-ticket.md {% endcontent-ref %}
गोल्डन टिकट
गोल्डन टिकट हमला एक हमलावर द्वारा NTLM हैश को krbtgt खाते में पहुँच प्राप्त करने में शामिल होता है, जो Active Directory (AD) वातावरण में होता है। यह खाता विशेष है क्योंकि इसका उपयोग सभी टिकट ग्रांटिंग टिकट (TGTs) पर हस्ताक्षर करने के लिए किया जाता है, जो AD नेटवर्क के भीतर प्रमाणीकरण के लिए आवश्यक हैं।
एक बार जब हमलावर इस हैश को प्राप्त कर लेता है, तो वह किसी भी खाते के लिए TGTs बना सकता है जिसे वह चुनता है (सिल्वर टिकट हमला)।
{% content-ref url="golden-ticket.md" %} golden-ticket.md {% endcontent-ref %}
डायमंड टिकट
ये गोल्डन टिकट की तरह होते हैं जो सामान्य गोल्डन टिकट पहचान तंत्रों को बायपास करने के तरीके से बनाए जाते हैं।
{% content-ref url="diamond-ticket.md" %} diamond-ticket.md {% endcontent-ref %}
प्रमाणपत्र खाता स्थिरता
किसी खाते के प्रमाणपत्र होना या उन्हें अनुरोध करने में सक्षम होना उपयोगकर्ता के खाते में स्थिरता बनाए रखने का एक बहुत अच्छा तरीका है (यहां तक कि यदि वह पासवर्ड बदलता है):
{% content-ref url="ad-certificates/account-persistence.md" %} account-persistence.md {% endcontent-ref %}
प्रमाणपत्र डोमेन स्थिरता
प्रमाणपत्रों का उपयोग करना भी डोमेन के भीतर उच्च विशेषाधिकारों के साथ स्थिरता बनाए रखने के लिए संभव है:
{% content-ref url="ad-certificates/domain-persistence.md" %} domain-persistence.md {% endcontent-ref %}
AdminSDHolder समूह
Active Directory में AdminSDHolder ऑब्जेक्ट विशेषाधिकार प्राप्त समूहों (जैसे डोमेन एडमिन और एंटरप्राइज एडमिन) की सुरक्षा सुनिश्चित करता है, इन समूहों पर एक मानक एक्सेस कंट्रोल लिस्ट (ACL) लागू करके अनधिकृत परिवर्तनों को रोकता है। हालाँकि, इस सुविधा का दुरुपयोग किया जा सकता है; यदि एक हमलावर AdminSDHolder के ACL को एक सामान्य उपयोगकर्ता को पूर्ण पहुँच देने के लिए संशोधित करता है, तो उस उपयोगकर्ता को सभी विशेषाधिकार प्राप्त समूहों पर व्यापक नियंत्रण मिल जाता है। यह सुरक्षा उपाय, जिसे सुरक्षा के लिए बनाया गया था, इस प्रकार उलटा पड़ सकता है, अनधिकृत पहुँच की अनुमति देता है जब तक कि इसे निकटता से मॉनिटर नहीं किया जाता है।
AdminDSHolder समूह के बारे में अधिक जानकारी यहां है।
DSRM क्रेडेंशियल्स
हर डोमेन कंट्रोलर (DC) के अंदर, एक स्थानीय व्यवस्थापक खाता मौजूद होता है। ऐसी मशीन पर प्रशासनिक अधिकार प्राप्त करके, स्थानीय व्यवस्थापक हैश को mimikatz का उपयोग करके निकाला जा सकता है। इसके बाद, इस पासवर्ड का उपयोग करने के लिए एक रजिस्ट्री संशोधन आवश्यक है, जिससे स्थानीय व्यवस्थापक खाते तक दूरस्थ पहुँच की अनुमति मिलती है।
{% content-ref url="dsrm-credentials.md" %} dsrm-credentials.md {% endcontent-ref %}
ACL स्थिरता
आप कुछ विशिष्ट डोमेन ऑब्जेक्ट्स पर एक उपयोगकर्ता को कुछ विशेष अनुमति दे सकते हैं जो उपयोगकर्ता को भविष्य में विशेषाधिकार बढ़ाने की अनुमति देगा।
{% content-ref url="acl-persistence-abuse/" %} acl-persistence-abuse {% endcontent-ref %}
सुरक्षा वर्णनकर्ता
सुरक्षा वर्णनकर्ता का उपयोग अनुमतियों को स्टोर करने के लिए किया जाता है जो एक ऑब्जेक्ट के पास एक ऑब्जेक्ट पर होती हैं। यदि आप केवल सुरक्षा वर्णनकर्ता में थोड़ा सा परिवर्तन कर सकते हैं, तो आप उस ऑब्जेक्ट पर बहुत दिलचस्प विशेषाधिकार प्राप्त कर सकते हैं बिना किसी विशेषाधिकार प्राप्त समूह का सदस्य बने।
{% content-ref url="security-descriptors.md" %} security-descriptors.md {% endcontent-ref %}
कंकाल कुंजी
LSASS को मेमोरी में संशोधित करें ताकि एक सार्वभौमिक पासवर्ड स्थापित किया जा सके, जो सभी डोमेन खातों तक पहुँच प्रदान करता है।
{% content-ref url="skeleton-key.md" %} skeleton-key.md {% endcontent-ref %}
कस्टम SSP
यहां जानें कि SSP (सुरक्षा समर्थन प्रदाता) क्या है।
आप अपने स्वयं के SSP को कैप्चर करने के लिए बना सकते हैं ताकि मशीन तक पहुँचने के लिए उपयोग किए गए क्रेडेंशियल्स को स्पष्ट पाठ में प्राप्त किया जा सके।\
{% content-ref url="custom-ssp.md" %} custom-ssp.md {% endcontent-ref %}
DCShadow
यह AD में एक नया डोमेन कंट्रोलर पंजीकृत करता है और निर्दिष्ट वस्तुओं पर विशेषताएँ (SIDHistory, SPNs...) को धकेलने के लिए इसका उपयोग करता है बिना किसी लॉग को छोड़े जो संशोधनों के बारे में हो। आपको DA विशेषाधिकार की आवश्यकता है और रूट डोमेन के अंदर होना चाहिए।
ध्यान दें कि यदि आप गलत डेटा का उपयोग करते हैं, तो बहुत भद्दे लॉग दिखाई देंगे।
{% content-ref url="dcshadow.md" %} dcshadow.md {% endcontent-ref %}
LAPS स्थिरता
पहले हमने चर्चा की है कि यदि आपके पास LAPS पासवर्ड पढ़ने के लिए पर्याप्त अनुमति है तो आप विशेषाधिकार कैसे बढ़ा सकते हैं। हालाँकि, इन पासवर्डों का उपयोग स्थिरता बनाए रखने के लिए भी किया जा सकता है।
जांचें:
{% content-ref url="laps.md" %} laps.md {% endcontent-ref %}
वन वन विशेषाधिकार वृद्धि - डोमेन ट्रस्ट
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 ट्रस्ट: ये ट्रस्ट गैर-विंडोज, RFC4120-अनुरूप Kerberos डोमेन के साथ स्थापित होते हैं। MIT ट्रस्ट थोड़े अधिक विशेषीकृत होते हैं और उन वातावरणों के लिए होते हैं जिन्हें विंडोज पारिस्थितिकी तंत्र के बाहर Kerberos-आधारित प्रणालियों के साथ एकीकरण की आवश्यकता होती है।
विश्वास संबंधों में अन्य भिन्नताएँ
- एक ट्रस्ट संबंध भी पारगम्य (A ट्रस्ट B, B ट्रस्ट C, तो A ट्रस्ट C) या गैर-पारगम्य हो सकता है।
- एक ट्रस्ट संबंध को द्विदिशीय ट्रस्ट (दोनों एक-दूसरे पर विश्वास करते हैं) या एक-तरफा ट्रस्ट (केवल उनमें से एक दूसरे पर विश्वास करता है) के रूप में स्थापित किया जा सकता है।
हमले का मार्ग
- विश्वास संबंधों की गणना करें
- जांचें कि क्या कोई सुरक्षा प्रमुख (उपयोगकर्ता/समूह/कंप्यूटर) के पास दूसरे डोमेन के संसाधनों तक पहुँच है, शायद ACE प्रविष्टियों द्वारा या दूसरे डोमेन के समूहों में होने के कारण। डोमेन के बीच संबंधों की तलाश करें (यह ट्रस्ट शायद इस लिए बनाया गया था)।
- इस मामले में kerberoast एक और विकल्प हो सकता है।
- समझौता करें उन खातों का जो डोमेन के माध्यम से पिवट कर सकते हैं।
हमलावरों के पास दूसरे डोमेन में संसाधनों तक पहुँच प्राप्त करने के लिए तीन प्राथमिक तंत्र हो सकते हैं:
- स्थानीय समूह सदस्यता: प्रमुखों को मशीनों पर स्थानीय समूहों में जोड़ा जा सकता है, जैसे कि सर्वर पर "व्यवस्थापकों" का समूह, जो उन्हें उस मशीन पर महत्वपूर्ण नियंत्रण प्रदान करता है।
- विदेशी डोमेन समूह सदस्यता: प्रमुख भी विदेशी डोमेन के भीतर समूहों के सदस्य हो सकते हैं। हालाँकि, इस विधि की प्रभावशीलता ट्रस्ट की प्रकृति और समूह के दायरे पर निर्भर करती है।
- एक्सेस कंट्रोल लिस्ट (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
{% hint style="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$"'
{% endhint %}
SID-History Injection
Enterprise admin के रूप में बच्चे/माता-पिता डोमेन में SID-History इंजेक्शन का दुरुपयोग करके बढ़ें:
{% content-ref url="sid-history-injection.md" %} sid-history-injection.md {% endcontent-ref %}
Exploit writeable Configuration NC
Configuration Naming Context (NC) का दुरुपयोग कैसे किया जा सकता है, यह समझना महत्वपूर्ण है। Configuration NC Active Directory (AD) वातावरण में एक जंगल के भीतर कॉन्फ़िगरेशन डेटा के लिए एक केंद्रीय भंडार के रूप में कार्य करता है। यह डेटा जंगल के भीतर हर Domain Controller (DC) पर पुनरुत्पादित होता है, writable DCs Configuration NC की एक writable प्रति बनाए रखते हैं। इसका दुरुपयोग करने के लिए, किसी के पास DC पर SYSTEM विशेषाधिकार होना चाहिए, सबसे अच्छा एक बच्चे DC पर।
Link GPO to root DC site
Configuration NC के Sites कंटेनर में AD जंगल के भीतर सभी डोमेन-जोड़े गए कंप्यूटरों के साइटों के बारे में जानकारी शामिल है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ कार्य करके, हमलावर GPOs को root DC साइटों से लिंक कर सकते हैं। यह क्रिया इन साइटों पर लागू की गई नीतियों को हेरफेर करके root डोमेन को संभावित रूप से खतरे में डाल सकती है।
गहराई से जानकारी के लिए, कोई Bypassing SID Filtering पर शोध कर सकता है।
Compromise any gMSA in the forest
एक हमले का वेक्टर डोमेन के भीतर विशेषाधिकार प्राप्त gMSAs को लक्षित करना है। KDS Root कुंजी, जो gMSAs के पासवर्ड की गणना के लिए आवश्यक है, Configuration NC के भीतर संग्रहीत होती है। किसी भी DC पर SYSTEM विशेषाधिकार के साथ, KDS Root कुंजी तक पहुंच प्राप्त करना और जंगल के भीतर किसी भी gMSA के लिए पासवर्ड की गणना करना संभव है।
विस्तृत विश्लेषण Golden gMSA Trust Attacks पर चर्चा में पाया जा सकता है।
Schema change attack
इस विधि के लिए धैर्य की आवश्यकता होती है, नए विशेषाधिकार प्राप्त AD ऑब्जेक्ट्स के निर्माण की प्रतीक्षा करना। SYSTEM विशेषाधिकार के साथ, एक हमलावर AD Schema को संशोधित कर सकता है ताकि किसी भी उपयोगकर्ता को सभी वर्गों पर पूर्ण नियंत्रण दिया जा सके। इससे नए बनाए गए AD ऑब्जेक्ट्स पर अनधिकृत पहुंच और नियंत्रण हो सकता है।
अधिक पढ़ने के लिए Schema Change Trust Attacks पर जाएं।
From DA to EA with ADCS ESC5
ADCS ESC5 भेद्यता Public Key Infrastructure (PKI) ऑब्जेक्ट्स पर नियंत्रण को लक्षित करती है ताकि एक प्रमाणपत्र टेम्पलेट बनाया जा सके जो जंगल के भीतर किसी भी उपयोगकर्ता के रूप में प्रमाणीकरण सक्षम करता है। चूंकि PKI ऑब्जेक्ट्स Configuration NC में स्थित होते हैं, एक writable बच्चे DC का दुरुपयोग ESC5 हमलों को निष्पादित करने की अनुमति देता है।
इस पर अधिक विवरण From DA to EA with ESC5 में पढ़ा जा सकता है। ADCS की कमी वाले परिदृश्यों में, हमलावर आवश्यक घटकों को स्थापित करने की क्षमता रखता है, जैसा कि Escalating from Child Domain Admins to Enterprise Admins में चर्चा की गई है।
External Forest Domain - One-Way (Inbound) or bidirectional
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
इस परिदृश्य में आपका डोमेन एक बाहरी द्वारा विश्वसनीय है जो आपको अनिश्चित अनुमतियाँ देता है। आपको यह पता लगाने की आवश्यकता है कि आपके डोमेन के कौन से प्रिंसिपल्स के पास बाहरी डोमेन पर कौन सा एक्सेस है और फिर इसे भुनाने की कोशिश करें:
{% content-ref url="external-forest-domain-oneway-inbound.md" %} external-forest-domain-oneway-inbound.md {% endcontent-ref %}
बाहरी वन डोमेन - एकतरफा (आउटबाउंड)
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
In this scenario आपका डोमेन किसी अन्य डोमेन के प्रिंसिपल को कुछ विशेषाधिकार विश्वास कर रहा है।
हालांकि, जब एक डोमेन को विश्वास किया जाता है, तो विश्वास करने वाला डोमेन एक उपयोगकर्ता बनाता है जिसका नाम पूर्वानुमानित होता है और जो विश्वासित पासवर्ड का उपयोग करता है। इसका मतलब है कि यह संभव है कि विश्वास करने वाले डोमेन से एक उपयोगकर्ता तक पहुंच प्राप्त करें ताकि विश्वासित डोमेन के अंदर जाएं और उसे सूचीबद्ध करें और अधिक विशेषाधिकार बढ़ाने की कोशिश करें:
{% content-ref url="external-forest-domain-one-way-outbound.md" %} external-forest-domain-one-way-outbound.md {% endcontent-ref %}
विश्वासित डोमेन को समझौता करने का एक और तरीका है SQL trusted link को खोजना जो डोमेन विश्वास की विपरीत दिशा में बनाया गया है (जो बहुत सामान्य नहीं है)।
विश्वासित डोमेन को समझौता करने का एक और तरीका है उस मशीन पर इंतजार करना जहां विश्वासित डोमेन का उपयोगकर्ता पहुंच सकता है RDP के माध्यम से लॉगिन करने के लिए। फिर, हमलावर RDP सत्र प्रक्रिया में कोड इंजेक्ट कर सकता है और विक्टिम के मूल डोमेन तक पहुंच प्राप्त कर सकता है।
इसके अलावा, यदि विक्टिम ने अपना हार्ड ड्राइव माउंट किया है, तो RDP सत्र प्रक्रिया से हमलावर हार्ड ड्राइव के स्टार्टअप फ़ोल्डर में बैकडोर स्टोर कर सकता है। इस तकनीक को RDPInception कहा जाता है।
{% content-ref url="rdp-sessions-abuse.md" %} rdp-sessions-abuse.md {% endcontent-ref %}
डोमेन विश्वास दुरुपयोग शमन
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 डिटेक्शन से बचने के लिए गैर-डोमेन कंट्रोलर से निष्पादन करना सलाह दी जाती है, क्योंकि डोमेन कंट्रोलर से सीधे निष्पादन करने पर अलर्ट ट्रिगर होगा।
संदर्भ
- 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
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.