
Dominate the domain. Relay to royalty.

RelayKing एक व्यापक रिले डिटेक्शन और एन्युमरेशन टूल है जिसे Active Directory वातावरणों में रिले हमले के अवसरों की पहचान करने के लिए डिज़ाइन किया गया है। वास्तविक रिपोर्टिंग विकल्प। व्यापक हमला कवरेज। छिपे हुए रिले वेक्टर खोजें और अपने पसंदीदा आउटपुट प्रारूप में रिपोर्ट करें। Impacket के ntlmrelayx.py को एक क्यूरेटेड लक्ष्य सूची फीड करें जिसमें रिले करने योग्य होस्ट हों। डोमेन में एक महत्वपूर्ण, शोषण योग्य NTLM रिले पथ कभी न चूकें।
अधिक जानकारी के लिए Depth Security वेबसाइट पर जारी संबद्ध ब्लॉग देखें: https://www.depthsecurity.com/blog/introducing-relayking-relay-to-royalty/
**RelayKing एक OPSEC-अनुकूल उपकरण नहीं है विशेष रूप से कुछ मोड में, विशेषकर --audit मोड में।
RelayKing बिना किसी गारंटी के "जैसा है" प्रदान किया जाता है। README के नीचे देखें।
# Use a venv. Save yourself the hassle.
# Clone repo:
git clone https://github.com/depthsecurity/RelayKing-Depth.git
#Navigate to cloned dir:
cd RelayKing-Depth/
# Configure Python venv:
virtualenv --python=python3 .
source bin/activate
# Install deps:
pip3 install -r requirements.txt
# Validate RelayKing installation was successful:
python3 relayking.py -h
--remove-mic के साथ क्रॉस-प्रोटोकॉल रिले (SMB से LDAP/LDAPS) के लिए MIC फ़ील्ड स्ट्रिपिंग को सक्षम करता है। HIGH के रूप में रिपोर्ट किया गया। प्रति-होस्ट पहले से क्वेरी किए गए UBR का उपयोग करता है, कोई अतिरिक्त नेटवर्क अनुरोध नहीं।--audit मोड में, Active Directory से Service Principal Names की क्वेरी करता है जिनके होस्टनाम का कोई DNS रिकॉर्ड नहीं है। एक हमलावर missing DNS नाम को पंजीकृत कर सकता है ताकि उस सेवा प्रिंसिपल के लिए इच्छित NTLM प्रमाणीकरण को इंटरसेप्ट किया जा सके। निष्कर्षों को vulnerable (कोई DNS रिकॉर्ड नहीं) और probably vulnerable (केवल वाइल्डकार्ड DNS के माध्यम से हल होता है) में विभाजित किया गया है। MEDIUM के रूप में रिपोर्ट किया गया। पूर्ण निष्कर्ष possible-ghost-spns.txt में लिखे गए हैं। --no-ghosts से दबाएँ।--ntlmv1 या --ntlmv1-all - क्रॉस-प्रोटोकॉल डिटेक्शन केवल तभी जब पुष्टि की गई Net-NTLMv1 उपयोग पाया जाता है)--remove-mic) के माध्यम से SMB-से-LDAP क्रॉस-प्रोटोकॉल रिलेpossible-ghost-spns.txt में है(--audit): LDAP के माध्यम से AD से सभी कंप्यूटरों की एन्युमेरेट करें। कम-विशेषाधिकार AD क्रेडेंशियल और वातावरण में कार्यशील DNS की आवश्यकता है। --dc-ip से बलपूर्वक करें या /etc/resolv.conf संपादित करें।10.0.0.0/24)10.0.0.1-254)python3 relayking.py -u blah -p pass -d domain.local <your_target_ip_or_hostname>)--coerce-all को --audit और कम-विशेषाधिकार क्रेडेंशियल्स के साथ संयोजित करके प्रत्येक डोमेन मशीन को सामूहिक कंप्यूटर खाता रिले के लिए मजबूर करें। Net-NTLMv1 सक्षम वातावरणों में अत्यधिक उपयोगी।--ntlmv1 या --ntlmv1-all डोमेन स्तर पर LanMan GPO का पता लगाने के लिए। --ntlmv1-all AD से सभी होस्टों और RemoteRegistry का उपयोग करके उनके रजिस्ट्री मूल्यों की जाँच करता है। (स्थानीय व्यवस्थापक आवश्यक)।--gen-relay-list <file> ntlmrelayx.py के -tf स्विच के लिए तैयार आयात करने योग्य लक्ष्य फ़ाइल उत्पन्न करने के लिए।--audit मोड में स्वचालित रूप से चलती है जब क्रेडेंशियल मौजूद हों। --no-ghosts से दबाएँ। पूर्ण निष्कर्ष मुख्य रिपोर्ट के साथ possible-ghost-spns.txt में लिखे जाते हैं; रिपोर्ट स्वयं अव्यवस्था से बचने के लिए पहले 5 दिखाती है।--dc-ip के लिए FQDN) के माध्यम से Kerberos प्रमाणीकरण काफी अच्छी तरह से काम करना चाहिए। यदि वातावरण में डोमेन कंट्रोलर हैं जिन्होंने NTLM को पूरी तरह से अक्षम कर दिया है लेकिन अन्य सभी जगह इसे सहन करते हैं, तो आप का उपयोग कर सकते हैं ताकि यह किसी भी जाँच में हस्तक्षेप न करे। साथ ही, SOCKS/अन्य प्रॉक्सी पिवट पर किए गए कार्य के लिए --dns-tcp और -ns उपलब्ध हैं। इस परिदृश्य में kerb भी काफी आसानी से काम करता है।-h के साथ कमांड लाइन आर्ग/उपयोग प्रिंट करें, जैसा अपेक्षित है:python3 relayking.py -h
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1 --gen-relay-list relaytargets.txt
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql -o plaintext,json --output-file relayking-scan --proto-portscan --gen-relay-list relaytargets.txt
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local -vv --protocols smb,ldap,ldaps,mssql,http,https -o plaintext SERVER1-EXAMPLE.LAB.LOCAL
python3 relayking.py --null-auth -vv --protocols smb,ldap,http -o plaintext 10.0.0.0/24
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1-all --gen-relay-list relaytargets.txt
--threads से निर्दिष्ट हैं। प्रत्येक मुख्य थ्रेड को कुछ कार्यों के लिए अंतर्गत वर्कर थ्रेड मिलते हैं। उदाहरण के लिए, HTTP प्रति मुख्य थ्रेड 20 थ्रेड का उपयोग करता है। परिणामस्वरूप HTTP NTLM auth स्कैन करने के लिए ~200 HTTP थ्रेड खुले रहते हैं। अधिकांश समय यह काफी अच्छी तरह से सहन किया जाता है लेकिन यदि यह अंतराल/नेटवर्क समस्याओं का कारण बनता है, तो थ्रेड कम करें। डिफ़ॉल्ट 10 थ्रेड वैसे भी असाधारण रूप से तेज़ है।--proto-portscan का उपयोग करना चाहेंगे। यह प्रदर्शन में काफी सुधार करता है और स्कैनर को उन पोर्ट पर टाइमआउट का इंतजार करने से रोकता है जो वास्तव में मौजूद नहीं हैं। यदि यह समस्या पैदा करता है, तो आप स्कैन प्रदर्शन की कीमत पर इसे हटा सकते हैं (लेकिन ऐसा नहीं होना चाहिए!)--max-scangroup, --split-into और --skip का उपयोग समूहीकरण को नियंत्रित करने के लिए किया जा सकता है।--max-scangroup निर्दिष्ट कर सकते हैं। उदाहरण के लिए, --max-scangroup 100 299 लक्ष्यों को 3 समूहों में विभाजित करेगा। समूहों में क्रमशः 100, 100 और 99 लक्ष्य होंगे।--split-into निर्दिष्ट कर सकते हैं। उदाहरण के लिए, --split-into 3 299 लक्ष्यों को 3 समूहों में विभाजित करेगा। समूहों में क्रमशः 100, 100 और 99 लक्ष्य होंगे। आप एक ही समय में --max-scangroup और --split-into दोनों निर्दिष्ट नहीं कर सकते।--skip निर्दिष्ट कर सकते हैं। उदाहरण के लिए, --max-scangroup 3 --skip 1 299 लक्ष्यों को 3 समूहों में 100, 100 और 99 लक्ष्यों के रूप में विभाजित करेगा, और पहले समूह को छोड़ देगा फिर दूसरे समूह से स्कैन करना शुरू करेगा। यह तब मदद करता है जब आप इस उपकरण को पुनः आरंभ करना चाहते हैं।--ntlmv1 या -ntlmv1-all: --ntlmv1 जोड़ने से डोमेन के लिए प्रत्येक LanMan GPO खींचा जाएगा और कुछ नहीं। कम-विशेषाधिकार AD क्रेडेंशियल की आवश्यकता है। --ntlmv1-all के लिए व्यवस्थापक क्रेडेंशियल की आवश्यकता है और यह डोमेन में प्रत्येक व्यक्तिगत होस्ट की जाँच करेगा जिसमें SMB खुला है LMCompatibilityLevel रजिस्ट्री कुंजी के लिए। कम से कम --ntlmv1 चलाना क्रॉस-प्रोटोकॉल SMB रिले पथों को दिखाने/पता लगाने के लिए आवश्यक है।
--ntlmv1-all में गड़बड़ी हो सकती है। साथ ही बहुत भारी और OPSEC सुरक्षित नहीं है, लेकिन गहन है। शायद तब तक अनुशंसित नहीं जब तक आप YOLO या हताश न हों।-o json,plaintext) और --output-file relayking-scan relayking-scan.json + relayking-scan.txt उत्पन्न करता है, इसलिए एकाधिक प्रारूपों के लिए इसे दो बार चलाने की आवश्यकता नहीं है। उपलब्ध: plaintext, json, xml, csv, grep, markdown (डिफ़ॉल्ट: plaintext)--coerce-all कार्यक्षमता PetitPotam, DFSCoerce, और PrinterBug का उपयोग करेगी । यह पूर्ण प्रोटोकॉल ऑडिट चलाए बिना डोमेन में प्रत्येक मशीन को सामूहिक रूप से मजबूर भी करता है। एक ही समय में + प्रदान करने से डोमेन ऑडिट सामूहिक जबरदस्ती होगी। ()--opsec-safe मोड जो Impacket/अन्य फिंगरप्रिंटेड Python लाइब्रेरी उपयोग से बचता है। कार्यान्वित करना तुच्छ नहीं है।-vv या -vvv के साथ चलाएं। प्रत्येक संस्करण के साथ लॉगिंग में सुधार जारी है।--audit चलाते हैं और RelayKing DNS में किसी भी होस्ट को हल करने में विफल रहता है क्योंकि उनके DNS सर्वर अपने लक्षित DNS ज़ोन में अपने कंप्यूटर FQDN को हल करने से इनकार करते हैं। यह RelayKing का मुद्दा नहीं है।जैसा है। निश्चित रूप से कई बग मौजूद हैं। ऊपर देखें। स्पष्ट रूप से अवैध/अनधिकृत गतिविधि के लिए डिज़ाइन या इरादा नहीं है।
अपने द्वारा क्लाइंट एंगेजमेंट और उनके नेटवर्क के लिए चलाए जाने वाले सभी उपकरणों के व्यवहार और प्रकृति पर विचार करें। यह टूल स्रोत को पढ़कर और निष्पादन से पहले आंतरिक कार्यप्रणाली को समझकर पूरा किया जाता है, न कि GitHub पर मिले कोड को आँख बंद करके चलाकर। जबकि मैं आपको आश्वस्त कर सकता हूँ कि RelayKing के अंदर कोई जानबूझकर दुर्भावनापूर्ण/विनाशकारी कोड नहीं है, सामान्य तौर पर चलाने से पहले सभी नए/अप्रयुक्त उपकरणों को मान्य करना अच्छा अभ्यास है। भरोसा करें, लेकिन हमेशा सत्यापित करें।
रेड टीम अभ्यासों पर उपयोग करते समय सावधान रहें, विशेषकर प्रमाणित जाँचों और --audit के साथ। आप निश्चित रूप से पकड़े जाएंगे और यह आपकी गलती होगी! यदि आप किसी तरह यह वाक्य पढ़ रहे हैं और यह पहले से नहीं जानते थे, तो आपको README के शीर्ष पर चेतावनी पढ़ लेनी चाहिए थी।
जबकि अत्यधिक असंभव/असंभावित, यदि RelayKing किसी तरह कुछ तोड़ता है, तो आप स्वयं जिम्मेदार होंगे, और न लेखक और न ही Depth Security किसी भी परिणाम/समस्या/मुद्दे/उल्टी-सीधी भू-स्थानिक-बिट-फ्लिपिंग-परमाणु-विस्फोट (चाहे कितने भी असंभावित हों) के लिए उत्तरदायी होगा जो RelayKing के निष्पादन से उत्पन्न हो सकता है। आपका माइलेज भिन्न हो सकता है। RelayKing, एक बार फिर, किसी भी विशिष्ट परिणाम, सुविधाओं, उपयोगिता या व्यवहार की कोई गारंटी या वारंटी के बिना प्रदान किया जाता है - यहाँ स्पष्ट रूप से उल्लेखित (और/या उल्लेखित नहीं) या अन्यथा निहित।
लेखक (logansdiomedi) का एकमात्र वैध GitHub रिपॉजिटरी https://github.com/depthsecurity/RelayKing-Depth पर मौजूद है - बाकी सभी फोर्क्स/कॉपी/जो भी हों, लेखक ने संभवतः कार्यक्षमता/व्यवहार/वैधता के लिए नहीं पढ़ा, मान्य नहीं किया, परीक्षण नहीं किया, विश्लेषण नहीं किया या निरीक्षण नहीं किया। अपने दिमाग का उपयोग करें।
MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें
--krb-dc-only--audit--coerce--audit मोड): होस्ट स्कैन पूरा होने के बाद, RelayKing AD में उन SPN की क्वेरी करता है जिनके होस्टनाम का कोई DNS रिकॉर्ड नहीं है। ये DNS पंजीकरण हमलों के लिए उम्मीदवार हैं जो NTLM प्रमाणीकरण को इंटरसेप्ट करते हैं। रिपोर्ट में आउटपुट को प्रबंधनीय रखने के लिए 5 निष्कर्ष शामिल हैं; पूर्ण सूची हमेशा कार्यशील निर्देशिका में possible-ghost-spns.txt में लिखी जाती है। इस जाँच को पूरी तरह से छोड़ने के लिए --no-ghosts पास करें।--remove-mic फ़्लैग के साथ क्रॉस-प्रोटोकॉल रिले के लिए उम्मीदवार के रूप में पहचाना जाता है।