Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
connectwise-automate-AiTM-rce — CVE-2025-11492, CVE-2025-11493 के लिए राइटअप और कोड - ConnctWise Automate RMM में Adversary-in-the-Middle के माध्यम से RCE | Kitploit
उपकरण/GitHubGitHub/synap5e/connectwise-automate-aitm-rce
विशेषाधिकार वृद्धिस्थायित्व तंत्रभेद्यता विश्लेषणशोषणपार्श्व आंदोलनपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलपेपर और शोधलर्निंग और शिक्षा

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रेड टीमिंग
रिमोट एक्सेस टूल
GitHubsynap5e/connectwise-automate-aitm-rce

connectwise-automate-AiTM-rce

CVE-2025-11492, CVE-2025-11493 के लिए राइटअप और कोड - ConnctWise Automate RMM में Adversary-in-the-Middle के माध्यम से RCE

रिपॉजिटरी देखें
11310 महीने पहलेअभी तक समीक्षित नहीं

कनेक्टवाइज़ ऑटोमेट Adversary-in-the-Middle रिमोट कोड निष्पादन

विषय-सूची

  • पृष्ठभूमि
  • समयरेखा
  • विचार और सीख
  • जिम्मेदार प्रकटीकरण
  • PoC कोड
  • कनेक्टवाइज़ को दी गई रिपोर्ट
    • सारांश
    • असुरक्षित कॉन्फ़िगरेशन
    • प्रभाव
    • तकनीकी विवरण
      • 1. HTTP ट्रांसपोर्ट
      • 2. अपर्याप्त प्रोटोकॉल सुरक्षा (एन्क्रिप्शन और सत्यापन का अभाव)
        • 2.1 निर्भरता जाँच और डाउनलोड पर अपर्याप्त सत्यापन
        • 2.2 रीप्ले सुरक्षा का अभाव
        • 2.3 सेल्फ‑अपडेट पर अपर्याप्त सत्यापन
      • 3. RMM कमांड‑एंड‑कंट्रोल अधिग्रहण
    • शमन

पृष्ठभूमि

पेनेट्रेशन परीक्षण के हिस्से के रूप में, मैंने ConnectWise Automate रिमोट मॉनिटरिंग और मैनेजमेंट (RMM) एजेंट में कई असुरक्षाएँ खोजीं। कनेक्टवाइज़ का उपयोग कई प्रबंधित सेवा प्रदाता (MSPs) क्लाइंट डिवाइसों को प्रबंधित और मॉनिटर करने के लिए करते हैं। ये असुरक्षाएँ रिमोट कोड निष्पादन को सक्षम बनाती हैं यदि कोई हमलावर नेटवर्क Adversary-in-the-Middle स्थापित कर सकता है, या स्थानीय विशेषाधिकार वृद्धि और गुप्त स्थिरता (persistence) के रूप में उपयोग की जा सकती हैं यदि किसी हमलावर को कोड निष्पादन या ConnectWise Automate एजेंट चलाने वाले डिवाइस तक भौतिक पहुँच प्राप्त हो।

ये असुरक्षाएँ 20 अगस्त 2025 को ConnectWise को सूचित की गईं। ConnectWise ने CVE IDs निर्दिष्ट कीं और 16 अक्टूबर 2025 को संस्करण 2025.9 में एक पैच जारी किया।

ConnectWise बुलेटिन:

  • https://www.connectwise.com/company/trust/security-bulletins/connectwise-automate-2025.9-security-fix

CVE IDs:

  • https://nvd.nist.gov/vuln/detail/CVE-2025-11492 - 9.6 CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • https://nvd.nist.gov/vuln/detail/CVE-2025-11493 - 8.8 CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

समयरेखा

  • 2025-08-20: ConnectWise को प्रारंभिक रिपोर्ट, जिसमें PoC, तकनीकी विवरण और सुझाए गए शमन (नीचे रिपोर्ट) शामिल हैं, साथ ही CVE IDs का अनुरोध।
  • 2025-08-20: ConnectWise ने प्राप्ति की पुष्टि की
  • 2025-08-21: ConnectWise ने जवाब दिया कि वे जाँच कर रहे हैं, और पुष्टि की कि वे CVE IDs निर्दिष्ट कर सकते हैं और सार्वजनिक प्रकटीकरण का समर्थन कर सकते हैं (हल होने के बाद)।
  • 2025-08-29: ConnectWise ने असुरक्षाओं के आंतरिक ट्राइएज और सत्यापन की पुष्टि की।
  • 2025-09-03 - 2025-09-19: ConnectWise और मैंने चर्चा की कि CVEs को सर्वोत्तम तरीके से कैसे निर्दिष्ट/विभाजित किया जाए और CVSS स्कोरिंग कैसे की जाए।
  • 2025-09-26: ConnectWise ने पुष्टि की कि प्राथमिक शमन HTTP फ़ॉलबैक को हटाना होगा, और वे वर्तमान में इसका परीक्षण कर रहे हैं। रिलीज़ अक्टूबर की शुरुआत में अपेक्षित है।
  • 2025-10-16: ConnectWise ने Automate 2025.9 जारी किया और सुरक्षा बुलेटिन और CVEs प्रकाशित किए।

विचार और सीख

मैंने ConnectWise की त्वरित प्रतिक्रियाओं और सुधार के प्रति उनके सहयोगात्मक दृष्टिकोण तथा वर्गीकरण और सुधार के सर्वोत्तम तरीके पर चर्चा में शामिल होने की उनकी इच्छा की सराहना की।

इन असुरक्षाओं को वर्गीकृत करना एक दिलचस्प चुनौती थी। जबकि HTTPs पर स्विच करना इस रिपोर्ट के लगभग सभी परिदृश्यों को हल करता है, यह स्पष्ट था कि यह मूल रूप से एजेंट-सर्वर संचार की विश्वसनीयता में सुधार के लिए एक डिज़ाइन विकल्प (HTTP का समर्थन करना) था। एन्क्रिप्शन योजना आंशिक रूप से AiTM के जोखिम को स्वीकार/कम करने का प्रयास करती प्रतीत हुई, लेकिन इसे लगातार लागू नहीं किया गया था। इसकी गहराई से जाँच में यह वर्गीकृत करने का प्रयास शामिल था कि क्या कमजोरी http स्वयं थी या HTTP के ऊपर एन्क्रिप्शन की कमी, साथ ही रीप्ले रोकथाम, प्लगइन सत्यापन आदि सभी अपनी-अपनी असुरक्षाएँ थीं। एक समय पर ConnectWise असुरक्षाओं के विभिन्न पहलुओं के लिए 5+ अलग-अलग CVEs पर विचार कर रहा था।

इसके अतिरिक्त, दायरा और हमला वेक्टर इस बात पर निर्भर करते हुए बदल गए कि असुरक्षा को AiTM जैसे कॉफी शॉप Wi-Fi या LPE/भौतिक पहुँच परिप्रेक्ष्य से देखा गया था। एक वैकल्पिक दृष्टिकोण प्रत्येक परिदृश्य को एक अलग असुरक्षा के रूप में मानना होगा, जैसे AiTM RCE, LPE, Persistence अधिग्रहण, आदि।

एक अंतिम सीख यह है कि 2025 में भी, हम फ़ाइलों को प्रभावी ढंग से साझा करने में संघर्ष कर रहे हैं :D (ईमेल सुरक्षा को .dll फ़ाइलें या उनसे युक्त .zips ईमेल करना पसंद नहीं आया)।

जिम्मेदार प्रकटीकरण

यह रिपोर्ट ConnectWise द्वारा पैच जारी करने और CVEs के प्रकटीकरण के बाद प्रकाशित की जा रही है, और उनकी सहमति से कि ऐसा प्रकटीकरण उनके उपयोगकर्ताओं को नुकसान नहीं पहुँचाता। इसके अलावा, मेरा मानना है कि इन असुरक्षाओं और उनके शमन का सार्वजनिक प्रकटीकरण अन्य विक्रेताओं और सुरक्षा पेशेवरों को ConnectWise Automate और अन्य RMM प्रणालियों दोनों में जोखिमों को बेहतर ढंग से समझने और कम करने में मदद करेगा।

यह सामग्री केवल कानूनी, अधिकृत सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए है। सिस्टम, नेटवर्क या डेटा से समझौता करने के लिए इस जानकारी का अनधिकृत उपयोग अवैध और अनैतिक है। सामग्री यथास्थिति (as-is) और बिना किसी प्रकार की वारंटी के प्रदान की गई है। लेखक इस जानकारी के उपयोग या दुरुपयोग से होने वाली किसी भी क्षति के लिए सभी दायित्व से इनकार करते हैं।

यदि आप इस कोड या जानकारी का उपयोग आगे के शोध के लिए कर रहे हैं, तो प्रभावित विक्रेता(विक्रेताओं) को किसी भी खोजी गई असुरक्षा की रिपोर्ट करके जिम्मेदार प्रकटीकरण का अभ्यास करें।

PoC कोड

नीचे दी गई रिपोर्ट के अलावा, इस रिपॉजिटरी में असुरक्षाओं को प्रदर्शित करने के लिए PoC कोड शामिल है। नकली सर्वर कार्यान्वयन और उपयोग निर्देशों के विवरण के लिए automate_server/README.md देखें।

इस कोड का उपयोग ConnectWise Automate पर आगे (नैतिक) सुरक्षा अनुसंधान करने के लिए भी किया जा सकता है।

 


निम्नलिखित रिपोर्ट (या उसके करीब का संस्करण) और इस रिपॉजिटरी में मौजूद PoC पायथन कोड, अनुशंसित शमन के साथ ConnectWise को प्रदान किए गए थे।

हटाया गया शमन अनुभाग उन परिवर्तनों पर अधिक विस्तार से चर्चा करता है जो Automate एजेंट को इन असुरक्षाओं के विरुद्ध कई तरीकों से सख्त (harden) करने के लिए किए जा सकते हैं।

चूँकि इनमें से कुछ परिवर्तन अभी भी ConnectWise द्वारा विचाराधीन हैं, उस अनुभाग को इस सार्वजनिक प्रकटीकरण से हटा दिया गया है।

कनेक्टवाइज़ को दी गई रिपोर्ट

सारांश

ConnectWise Automate रिमोट मॉनिटरिंग और मैनेजमेंट (RMM) एजेंट (अगस्त 2025 तक के नवीनतम संस्करण, संस्करण स्ट्रिंग 250.252 पर परीक्षण किया गया) कुछ कॉन्फ़िगरेशन में नेटवर्क-आधारित रिमोट कोड निष्पादन के प्रति असुरक्षित है। यदि एजेंट अपने Server Address के लिए एक अनएन्क्रिप्टेड HTTP ट्रांसपोर्ट (प्राथमिक रूप से या फ़ॉलबैक के रूप में) का उपयोग करने के लिए कॉन्फ़िगर किया गया है और कोई हमलावर एडवर्सरी-इन-द-मिडल (AiTM) हमला कर सकता है, तो वे SYSTEM के रूप में दूरस्थ रूप से कोड निष्पादित कर सकते हैं। यह कॉन्फ़िगरेशन कई प्रबंधित सेवा प्रदाताओं (MSPs) से वास्तविक दुनिया में देखा गया है।

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

Automate के नियंत्रण सर्वर की नकल करने वाला एक कस्टम सर्वर लागू करके, Automate एजेंट को एक दुर्भावनापूर्ण प्लगइन डाउनलोड और निष्पादित करने के लिए मजबूर किया जा सकता है।

समझौता किया गया एजेंट स्थिरता (persistence) का एक आकर्षक रूप भी प्रदान कर सकता है। RCE का उपयोग करके एजेंट की सममित एन्क्रिप्शन कुंजियाँ निकालकर, कस्टम सर्वर मानक RMM चैनल का उपयोग करके एजेंट को मनमाने कमांड भेज सकता है। AiTM परिदृश्य में, यह हमलावर को फ़ाइल निष्कर्षण, क्रेडेंशियल डंपिंग, कमांड निष्पादन और कॉन्फ़िगरेशन बदलने सहित मनमाने RMM कमांड निष्पादित करने की अनुमति देता है। हमलावर RMM के Server Address को अपने स्वयं के सर्वर पर भी संशोधित कर सकता है, जिससे AiTM के बाद भी गुप्त स्थिरता प्राप्त होती है। वैकल्पिक रूप से, RCE का उपयोग सीधे सिस्टम-स्तरीय कमांड चलाने के लिए किया जा सकता है।

असुरक्षित कॉन्फ़िगरेशन

  1. एजेंट एक Server Address का उपयोग करता है जिसमें http:// एंडपॉइंट शामिल है। दो अलग-अलग MSPs से असुरक्षित कॉन्फ़िगरेशन देखे गए हैं (वास्तविक MSP डोमेन और IPs बदल दिए गए हैं):
    • https://automate.msp-one.com|http://automate.msp-one.com
    • https://msp.msp-two.com|http://msp.msp-two.com|http://12.346.6.78
    • दोनों मामलों में, http:// एंडपॉइंट का उपयोग फ़ॉलबैक के रूप में किया जाता है यदि https:// कनेक्शन विफल हो जाता है, लेकिन एक हमलावर https को ब्लॉक करके इसका अनुकरण कर सकता है।
    • यह समझा जाता है कि यह http फ़ॉलबैक (है या था) डिफ़ॉल्ट कॉन्फ़िगरेशन है।
  2. हमलावर के पास नेटवर्क-AiTM परिदृश्य स्थापित करने का कोई न कोई तरीका होता है।
    • यह उस नेटवर्क से समझौता करके प्राप्त किया जा सकता है जिससे डिवाइस जुड़ा है, उदाहरण के लिए, होम-नेटवर्क समझौता परिदृश्य। होम नेटवर्क AiTM के प्रति तुच्छ रूप से असुरक्षित होते हैं यदि एक समझौता किया गया डिवाइस उसी नेटवर्क से जुड़ा हो, और उपयोगकर्ता आमतौर पर अपने कार्य डिवाइसों को उनसे जोड़ते हैं।
    • वैकल्पिक रूप से, डिवाइस तक (संक्षिप्त) भौतिक पहुँच रखने वाला हमलावर इसे एक दुर्भावनापूर्ण नेटवर्क से जोड़ सकता है—भले ही डिवाइस लॉक हो या बंद हो (और BitLocker कुंजी की आवश्यकता नहीं होती है), लॉगिन/लॉक स्क्रीन से Wi‑Fi नेटवर्क से जुड़ना संभव है। यह एक चोरी किया गया डिवाइस हो सकता है या बस एक डिवाइस जो सार्वजनिक स्थान पर बिना निगरानी के छोड़ दिया गया हो।
    • अंत में, यह असुरक्षा डिवाइस तक भौतिक पहुँच रखने वाले हमलावर के लिए विशेषाधिकार वृद्धि के रूप में भी कार्य करती है, क्योंकि वे इसे एक दुर्भावनापूर्ण नेटवर्क से जोड़ सकते हैं या एक दुर्भावनापूर्ण ईथरनेट केबल (जैसे, हमले को चलाने वाला Raspberry Pi) प्लग कर सकते हैं।

प्रभाव

  • प्रभावित (AiTM'd) डिवाइसों पर उपयोगकर्ता इंटरैक्शन या क्रेडेंशियल्स की आवश्यकता के बिना पूर्ण प्रशासनिक नियंत्रण।
  • दूरस्थ रूप से मनमाना कोड निष्पादित करने की क्षमता।
  • एंडपॉइंट डिटेक्शन एंड रिस्पॉन्स (EDR) समाधानों द्वारा पता लगाए बिना डिवाइस का स्थायी दूरस्थ प्रशासन।
  • नेटवर्क के भीतर पार्श्व गति (lateral movement) की संभावना (जैसे, ZTNA टनलों पर)।
  • डिवाइस से डेटा और क्रेडेंशियल्स बाहर निकालने की क्षमता।

तकनीकी विवरण

1. HTTP ट्रांसपोर्ट

Automate एजेंट को सर्वर पते के रूप में http:// URL का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है। यह कॉन्फ़िगरेशन संभवतः इंस्टॉलर स्क्रिप्ट/पैकेज द्वारा सेट किया जाता है, लेकिन रजिस्ट्री कुंजी HKLM\SOFTWARE\LabTech\Service\Server Address की जाँच करके इसे सत्यापित किया जा सकता है।

images/automate_server_address.png

HTTPS और HTTP दोनों एंडपॉइंट्स का उपयोग करना, जो एक पाइप | द्वारा अलग किए गए हैं, सिद्धांततः यह सुनिश्चित करता है कि यदि HTTPS कनेक्शन में कोई समस्या आती है, तो Automate एजेंट HTTP कनेक्शन पर वापस आ जाएगा।

यदि कोई हमलावर Automate एजेंट और सर्वर के बीच नेटवर्क ट्रैफ़िक तक Adversary-in-the-Middle (AiTM) पहुँच प्राप्त कर लेता है, तो वे जानबूझकर HTTPS कनेक्शन को बाधित कर सकते हैं, जिससे यह HTTP पर वापस आ जाता है। यह हमलावर को एजेंट और सर्वर के बीच आदान-प्रदान किए गए ट्रैफ़िक को इंटरसेप्ट, मॉनिटर और बदलने की अनुमति देता है। फिर एक हमलावर ट्रैफ़िक को https://automate.msp-one.com पर रिवर्स प्रॉक्सी कर सकता है, जिसके परिणामस्वरूप एजेंट का "मानक संचालन" होता है, लेकिन हमलावर डेटा पर गुप्त रूप से नज़र रखने में सक्षम होता है। इसके अतिरिक्त, वे प्रतिक्रियाओं को इंजेक्ट या संशोधित कर सकते हैं या एक पूरी तरह से धोखाधड़ी वाला Automate सर्वर भी स्थापित कर सकते हैं जो Automate एजेंट के अनुरोधों का जवाब देता है।

यह एक "दुष्ट" (rogue) Wi‑Fi एक्सेस पॉइंट (hostapd, dnsmasq, IP फ़ॉरवर्डिंग + NAT) स्थापित करके और ट्रैफ़िक पुनर्निर्देशन के लिए iptables नियमों तथा रिवर्स प्रॉक्सी के लिए mitmproxy स्क्रिप्ट का उपयोग करके प्राप्त किया गया था।

images/AiTM_automate.png

अन्य, अधिक संवेदनशील डेटा जिसमें चल रहे प्रोग्राम, पूर्ण नेटवर्क कॉन्फ़िगरेशन और दस्तावेज़ पथ शामिल हैं, कभी-कभी Automate एजेंट प्रतिक्रियाओं में देखे गए हैं।

iptables:```bash

iptables -t nat -A PREROUTING -i wlx90916440139a -p tcp --dport 80 -j REDIRECT --to-port 8080 iptables -A FORWARD -i wlx90916440139a -p tcp --dport 443 -j DROP

root@kitploit:~
#### mitmproxy स्क्रिप्ट:```python
# run with AiTMweb --mode transparent@8080 -s automate_AiTM.py

def request(flow: http.HTTPFlow):
    if flow.request.pretty_host == 'automate.msp-one.com':
        flow.request.url = 'https://automate.msp-one.com' + flow.request.path

ZTNA समाधान इस अवरोधन को थोड़ा जटिल कर सकते हैं, लेकिन आगे के mitmproxy स्क्रिप्ट द्वारा ZTNA को सशर्त रूप से पहचानने और ब्लॉक करने के कारण इन्हें विश्वसनीय रूप से बायपास कर दिया गया, जिसके परिणामस्वरूप गैर-टनल्ड HTTP पर वापसी हुई।

2. अपर्याप्त प्रोटोकॉल सुरक्षा (एन्क्रिप्शन और सत्यापन का अभाव)

Automate एजेंट सर्वर के साथ संवाद करने के लिए HTTP के ऊपर एक कस्टम प्रोटोकॉल का उपयोग करता है।

डिवाइस पर मौजूद RMM एजेंट समय-समय पर सर्वर के /LabTech/agent.aspx एंडपॉइंट पर HTTP(S) अनुरोध भेजता है। प्रासंगिक अनुरोध प्रकार इस प्रकार हैं:

ध्यान दें कि पथों में असंगत कैपिटलाइज़ेशन कोई टाइपो नहीं है; यह वैसे ही है जैसे Automate एजेंट ये अनुरोध भेजता है। स्पष्टता के लिए सभी एंडपॉइंट पथ कोड टिक्स में लपेटे गए हैं।

  • निर्भरता जाँच
    • RMM एजेंट /LabTech/Agent.aspx?DEPS का अनुरोध करता है और एक XML प्रतिक्रिया प्राप्त करता है जिसमें निर्भरता फ़ाइलों, उनके संस्करण संख्याओं और उनके चेकसम की सूची होती है।
  • निर्भरता डाउनलोड
    • RMM एजेंट /LabTech/Agent.Aspx?DepCheck=1&DependancyId=<id> का अनुरोध करता है और एक ऑबफस्केटेड बाइनरी फ़ाइल प्राप्त करता है जिसमें निर्भरता एक छवि फ़ाइल के रूप में प्रच्छन्न होती है (संभवतः यह ऑबफस्केशन सामग्री फ़िल्टर को डाउनलोड ब्लॉक करने से रोकने के लिए है)।
  • एजेंट कमांड
    • RMM एजेंट /LabTech/agent.aspx?<id>?c<CMD id>&<arg count> का अनुरोध करता है और कमांड-विशिष्ट डेटा युक्त एक कस्टम-पैक्ड प्रतिक्रिया प्राप्त करता है।
    • लगभग ~40 "एजेंट कमांड" होते हैं। इन "कमांड्स" का उपयोग कॉन्फ़िगरेशन लाने, चलाने के लिए "रिमोट कमांड" लाने (जिसमें InitialCommandRetrieve भी शामिल है), कमांड के परिणाम लौटाने और चैट करने के लिए किया जाता है।
  • स्व-अपडेट
    • RMM एजेंट के पास सर्वर से Automate एजेंट का नया संस्करण डाउनलोड करके स्वयं को अपडेट करने की क्षमता होती है।

संवेदनशील "रिमोट कमांड" अक्सर एक DES3-आधारित एन्क्रिप्शन योजना का उपयोग करके एन्क्रिप्ट की जाती हैं, जिसमें पूर्वनिर्धारित system password और computer password से कस्टम कुंजी व्युत्पत्ति होती है। सही पासवर्ड के बिना, एक हमलावर एजेंट को भेजे गए वैध कमांड को देख/इंजेक्ट/संशोधित नहीं कर सकता; हालाँकि, कमांड प्रतिक्रियाएँ एन्क्रिप्टेड नहीं होती हैं और अक्सर संवेदनशील प्लेनटेक्स्ट डेटा शामिल करती देखी गई हैं, जिनमें खुली फ़ाइलें, पथ, उपयोगकर्ता नाम, इंस्टॉल किए गए प्रोग्राम आदि शामिल हैं।

2.1 निर्भरता जाँच और डाउनलोड पर अपर्याप्त सत्यापन

निर्भरता जाँच (/LabTech/Agent.aspx?DEPS) और डाउनलोड (/LabTech/Agent.Aspx?DepCheck=1&DependancyId=<id>) एन्क्रिप्टेड या हस्ताक्षरित नहीं हैं, जिसका अर्थ है कि एक हमलावर प्रतिक्रिया में दुर्भावनापूर्ण निर्भरताएँ शामिल करने के लिए उसे संशोधित कर सकता है, जिन्हें RMM एजेंट द्वारा डाउनलोड और लोड किया जाएगा। यदि निर्भरता जाँच को एक अलग चेकसम शामिल करने के लिए जाली बनाया जाता है, तो RMM एजेंट बेमेल निर्भरता फ़ाइल के लिए एक नया डाउनलोड करेगा और उसे लोड करेगा (बशर्ते नई डाउनलोड की गई फ़ाइल जाली चेकसम से मेल खाती हो)। प्लगइन्स .NET असेंबली होते हैं जो एक विशिष्ट इंटरफ़ेस लागू करते हैं, और Automate एजेंट किसी भी .NET असेंबली को लोड करेगा जो अपेक्षित प्लगइन इंटरफ़ेस से मेल खाती है, फिर प्लगइन के इंटरफ़ेस को कॉल करेगा जिसके परिणामस्वरूप कोड निष्पादन होगा।

डाउनलोड किए गए प्लगइन निर्भरताओं के लिए सत्यापन का एक दूसरा स्तर भी है, जहाँ एजेंट एक cmdGetPlugins कमांड भेजता है और यह भी सत्यापित करता है कि चेकसम यहाँ मेल खाता है, लेकिन यह कमांड एन्क्रिप्शन योजना का उपयोग नहीं करता है।

dnSpy का उपयोग करके, एजेंट द्वारा उपयोग किए जाने वाले वैध ScreenConnectRemotePlugin.dll में दुर्भावनापूर्ण कोड इंजेक्ट करना संभव था। DEPS, DepCheck और cmdGetPlugins कमांड कार्यक्षमता वाला एक कस्टम Automate सर्वर बनाया गया था। नकली सर्वर ने अपेक्षित प्लगइन्स और निर्भरताओं की नकल की, लेकिन ScreenConnectRemotePlugin.dll के हैश को दुर्भावनापूर्ण रूप से संशोधित प्लगइन के लिए परिकलित हैश में बदल दिया। नकली सर्वर ने DepCheck अनुरोध के जवाब में दुर्भावनापूर्ण रूप से संशोधित ScreenConnectRemotePlugin.dll भी प्रदान किया (ऑबफस्केटेड नकली-छवि प्रारूप में) और cmdGetPlugins को भी हेरफेर किए गए हैश के साथ लागू किया। अंत में, mitmproxy स्क्रिप्ट को अपडेट किया गया ताकि Automate एजेंट को वैध (HTTPS) सर्वर के बजाय नकली सर्वर की ओर निर्देशित किया जा सके।

कनेक्शन पर, दुर्भावनापूर्ण प्लगइन एजेंट द्वारा डाउनलोड और लोड किया जाता है। इंजेक्ट किया गया कोड "system" और "computer" पासवर्ड को नकली सर्वर पर एक्सफ़िल्ट्रेट करता है। system और computer पासवर्ड रजिस्ट्री में संग्रहीत होते हैं लेकिन एक भारी ऑबफस्केटेड C# और नेटिव लाइब्रेरी द्वारा डिकोड किए जाते हैं। रजिस्ट्री मान निकालने के बजाय, पैच किया गया प्लगइन डिकोड किए गए मान प्राप्त करने के लिए रिफ्लेक्शन का उपयोग करता है, जिससे ऑबफस्केशन की रिवर्स इंजीनियरिंग करने का प्रयास बच जाता है। वैकल्पिक रूप से, रजिस्ट्री कुंजी HKLM\SOFTWARE\LabTech\Service की संपूर्ण सामग्री को एक्सफ़िल्ट्रेट किया जा सकता है और RMM एजेंट की एक प्रति के साथ नियंत्रित वातावरण में उपयोग करके .NET डीबगर की सहायता से रनटाइम पर पासवर्ड निकाले जा सकते हैं।

images/automate_plugin_injected_code.png

images/password_exfil_2.png

वैकल्पिक रूप से, प्लगइन का उपयोग सीधे सिस्टम-स्तरीय कमांड चलाने के लिए किया जा सकता है; हालाँकि, रहस्यों को निकालने से RMM एजेंट को स्वयं कमांड-एंड-कंट्रोल के रूप में उपयोग करना संभव हो गया और इसका मतलब था कि लगातार बना रहने वाला चैनल EDR द्वारा पहचाना नहीं गया। Server Address को हमलावर-नियंत्रित सर्वर में अपडेट करके दृढ़ता (पर्सिस्टेंस) प्राप्त की जा सकती है, जो वैकल्पिक रूप से डिवाइस को लापता दिखने से बचाने के लिए कमांड को वैध सर्वर पर अग्रेषित कर सकता है। अधिक विवरण के लिए 3. RMM कमांड-एंड-कंट्रोल टेकओवर देखें।

यह उम्मीद की जाती है कि भले ही डिफ़ॉल्ट कॉन्फ़िगरेशन में कोई प्लगइन स्थापित न हो, एक खाली प्लगइन (प्लगइन्स के लिए आवश्यक C# इंटरफ़ेस से मेल खाते हुए) संकलित किया जा सकता था और समान प्रभाव के लिए DEPS और cmdGetPlugins प्रतिक्रियाओं में डाला जा सकता था।

2.2 रीप्ले सुरक्षा का अभाव

यह भी देखा गया कि सर्वर द्वारा UpdatePlugins नामक एक "रिमोट कमांड" लौटाई जा सकती है, जो एजेंट को प्लगइन अपडेट शुरू करने के लिए ट्रिगर करती है। चूँकि कमांड्स में रीप्ले सुरक्षा शामिल नहीं होती है, यदि कोई हमलावर किसी वैध सर्वर द्वारा भेजे जा रहे कमांड को देख सकता है, तो वे अपडेट ट्रिगर करने के लिए इसे किसी भी अन्य एजेंट पर रीप्ले कर सकते हैं। यह RCE भेद्यता को अतिरिक्त परिदृश्यों में शोषित करने में सक्षम बनाता है, जिससे इस भेद्यता का प्रभाव बढ़ जाता है।

2.3 स्व-अपडेट पर अपर्याप्त सत्यापन

स्व-अपडेट भी अनएन्क्रिप्टेड और बिना हस्ताक्षर के पाया गया। स्व-अपडेट के माध्यम से रिमोट कोड निष्पादन का प्रदर्शन नहीं किया गया, लेकिन ऐसा माना जाता है कि यह समान रूप से कमजोर है। स्व-अपडेट का दुर्भावनापूर्ण संशोधन गुप्त रूप से करना अधिक कठिन होगा और Automate एजेंट को तोड़ने का अधिक जोखिम है; हालाँकि, संभवतः एक्सेक्यूटेबल्स/DLLs में .NET कोड इंजेक्ट करने का समान तरीका काम करेगा। स्व-अपडेट प्रक्रिया का आगे पता नहीं लगाया गया क्योंकि प्लगइन RCE पर्याप्त था और अधिक विश्वसनीय माना गया।

यह भी संभव है कि स्व-अपडेट प्रक्रिया का शोषण केवल-रीबूट-पर-शोषण-योग्य सीमा का एक व्यवहार्य समाधान हो (उदाहरण के लिए, यदि स्व-अपडेट ट्रिगर करने के लिए कोई प्रतिक्रिया इंजेक्ट या रीप्ले की जा सकती है)।

3. RMM कमांड-एंड-कंट्रोल टेकओवर

2.1 में वर्णित दृष्टिकोण का उपयोग करके system password और computer password निकालने से, मनमाने "रिमोट कमांड" पेलोड और प्रतिक्रियाएँ बनाना संभव था। कुंजी व्युत्पत्ति योजना को पूरी तरह से रिवर्स इंजीनियर और पुनः लागू करने के बजाय, केवल LabTechCommonBase.dll को आयात करना और "computer password" से DES3 कुंजी उत्पन्न करने के लिए Utilities.LabTechHash.ComputeHash का उपयोग करना संभव था। DLL से निकाले गए परिकलित DES कुंजी और हार्डकोडेड IV का उपयोग करके, RMM एजेंट को मनमाने कमांड के साथ जवाब देना संभव था।```python # IV extracted from decompiled LabTechSecurity.cs: # this._initializationVector = new byte[] { 240, 3, 45, 29, 0, 76, 173, 59 }; iv = [240, 3, 45, 29, 0, 76, 173, 59]

root@kitploit:~
# Helper functions for pythonnet, clr_loader, clr to load LabTechCommonBase.dll into python
labtech_net.setup_paths_and_references(str((Path(__file__).parent.parent / 'LTSvc').resolve()))
from LabTechCommonBase import Utilities

labtech_hash = Utilities.LabTechHash()
labtech_hash.ComputeHash(computer_password.encode('ascii'))  # Use the exfiltrated computer password
byts = bytes(labtech_hash.GetDigestBytes())

cipher = DES3.new(byts, DES3.MODE_CBC, bytes(iv))
padded_data = pad(data.encode('utf-8'), DES3.block_size)
encrypted_data = cipher.encrypt(padded_data)
return base64.b64encode(encrypted_data).decode('utf-8')
root@kitploit:~
फर्जी Automate सर्वर में विभिन्न "Agent Command" प्रकारों के लिए हैंडलर लागू किए गए थे, जिससे यह एजेंट को "Remote Commands" वापस भेज सकता था। इन कमांडों का उपयोग डिवाइस पर मनमाना कोड चलाने के लिए किया जा सकता है, जैसे पेलोड डाउनलोड करके निष्पादित करना, या डिवाइस पर नेटवर्क टनल स्थापित करना (उदाहरण के लिए, SOCKS प्रॉक्सी सेट करना जिसका उपयोग डिवाइस की ZTNA पहुंच के माध्यम से pivot करने के लिए किया जा सकता है)।

2.1 से तत्काल सफाई के लिए, सर्वर एन्क्रिप्टेड `UpdatePlugins` कमांड भेज सकता है और दुर्भावनापूर्ण रूप से संशोधित प्लगइन को ओवरराइड करने के लिए मूल वैध प्लगइन प्रदान कर सकता है। हमलावर अभी भी एजेंट के साथ इंटरैक्ट कर सकता है (यह मानते हुए कि पासवर्ड निकाले जा चुके हैं) और `Server Address` को हमलावर-नियंत्रित सर्वर में अपडेट करके स्थिरता बनाए रख सकता है।

![images/cleanup2.png](https://assets.kitploit.com/production/public/readmes/33122/0532a389158d13fd1fdd9ebc86feb086c85107d204430c8ce792581d771a3541.png)

कमांडों का मनमाना निष्पादन भी `Execute` कमांड का उपयोग करके ping चलाने के लिए प्रदर्शित किया गया था, जो व्यवस्थापक संदर्भ में डिवाइस पर सफलतापूर्वक निष्पादित किया गया। इसे `InitialCommandRetrieve` कमांड के रूप में परोसा जा सकता है या अन्य "agent commands"/चेक-इन के उत्तर में लौटाया जा सकता है।```python
# Extract the RemoteCommandIDs enum from LabTechCommonBase.Constants using pythonnet
REMOTE_CMD_IDS = get_RemoteCommandIDs()
REMOTE_CMD_IDS_r = {str(v): k for k, v in REMOTE_CMD_IDS.items()}

# `register_cmd_handler` registers a command handler for the `/LabTech/agent.aspx?c<id>` endpoint.
# The string 'InitialCommandRetrieve' is mapped back to ID `36`.
# The full set of "Agent Command" and their IDs can be extracted from `LabTechCommonBase.Constants.modEnums.AgentCommandIDs`
@register_cmd_handler('InitialCommandRetrieve')
async def initial_command_retrieve(_req: dict) -> str:
    cmd = '*!*'.join([
        '202706506',
        str(REMOTE_CMD_IDS_r['Execute']),
        '!!!'.join([
            'CMD.exe',
            '/c ping -t -l 1337 192.168.20.2'
        ])
    ])
    encrypted_cmd = encrypt(cmd)
    return '|||'.join([
        len_b64_gzip(  # Simple helper to return '{len(data)}-{base64(gzip(data))}'
            encrypted_cmd
        ),

        # Generate common [latest-version, FILETIME(), queued command(s), MD5 hashes] encoding string expected in "agent command" responses
        make_p2(),
    ])

images/ping2.png

-l 1337 का उपयोग ping को 1337 बाइट्स का पेलोड आकार प्रयोग करने का निर्देश देता है, जिसे फिर दूसरे स्क्रीनशॉट में (1337 पेलोड बाइट्स + 42 हेडर बाइट्स = 1379 कुल बाइट्स) एक "कैनरी" के रूप में देखा जाता है।

शमन

अनुभाग को सार्वजनिक प्रकटीकरण से हटा दिया गया है।

टूल डाउनलोड करें
  • जब Automate एजेंट अपना प्लगइन कॉन्फ़िगरेशन प्राप्त करता है तो नेटवर्क AiTM मौजूद होना चाहिए। डिवाइस को रीबूट करना इसे प्राप्त करने का सबसे आसान तरीका है, लेकिन अन्य तरीके भी काम कर सकते हैं।
    • यह आवश्यकता सार्वजनिक Wi‑Fi पर शोषण के जोखिम को कम करती है; हालाँकि, ऐसी संभावनाओं को खारिज नहीं किया जाना चाहिए—सार्वजनिक Wi‑Fi पर रीबूट अभी भी संभव हैं, और बिना रीबूट के शोषण प्राप्त करने के संभावित तरीकों की गहराई से खोज नहीं की गई थी।
    • होम-नेटवर्क परिदृश्यों में, हमलावर बस इंतज़ार कर सकता है। भौतिक पहुँच परिदृश्यों में, हमलावर इच्छानुसार डिवाइस को बूट/रीबूट कर सकता है।
    • यदि हमलावर प्लगइन कॉन्फ़िगरेशन अनुरोध को कैप्चर कर सकता है, तो वे RCE स्थितियों को ट्रिगर करने के लिए इसे एजेंट पर रीप्ले कर सकते हैं।