Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-58073-check — بأمان اكتشاف تجاوز المصادقة في Veeam Service Provider Console CVE-2026-58073 | Kitploit
أدوات/GitHubGitHub/bishopfox/cve-2026-58073-check
أمن البنية التحتية السحابيةماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةأمن الشبكاتاختبار الاختراق
GitHubbishopfox/cve-2026-58073-check

CVE-2026-58073-check

بأمان اكتشاف تجاوز المصادقة في Veeam Service Provider Console CVE-2026-58073

عرض المستودع
منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

سكربت كشف حالة التصحيح لانتحال وكيل Veeam Service Provider Console

أداة كشف آمنة وغير مصادق عليها لثغرات KB4893 في Veeam Service Provider Console (نُشرت في 2026-08-04). تجيب على سؤال واحد لكل هدف، قبل أي مصادقة أو TLS: هل إصلاحات KB4893 موجودة على هذه الكونسول؟

الزوج الرئيسي هو سلسلة. CVE-2026-58073 (CVSS 9.5) تسمح لنظير شبكة غير مصادق عليه بانتحال وكيل إدارة متصل والحصول على شهادة ذلك الوكيل الحقيقية، لأن مصافحة الوكيل تحدد التفويض من GUID الذي كتبه النظير في شهادته الخاصة. CVE-2026-58072 (CVSS 9.0) هي كتابة ملفات تعسفية يمكن الوصول إليها بمجرد امتلاك هوية وكيل. عند ربطهما، تشكلان تنفيذ كود عن بُعد غير مصادق عليه على الكونسول التي تدير نسخ احتياطية لكل مستأجر. نفس النشرة تصلح أيضًا CVE-2026-58071 (CVSS 8.2، واجهة برمجة تطبيقات الأجهزة عبر وكيل كمسؤول بوابة) وCVE-2026-58067 (CVSS 8.7، رفض خدمة غير مصادق عليه باستنزاف الذاكرة). تم الإبلاغ عن CVE-2026-58073 وCVE-2026-58072 إلى Veeam عبر HackerOne؛ النشرة لا تذكر اسم المُبلِّغ.

هذا السكربت لا يحاول الانتحال، أو طلب شهادة، أو كتابة ملف. يقرأ جيل البروتوكول المُعلن عنه من الموجّه ولا شيء آخر.

هل من الآمن تشغيله؟

نعم. صُمم المكتشف للاستخدام في الإنتاج والتقييم:

  • لا تتم محاولة أي مصادقة، ولا يتم استغلال أي من الثغرتين. يرسل فقط مصافحة Connector تسمي مستقبلًا لن يكون موجودًا. لا يتم التفاوض على جلسة TLS، ولا يتم تقديم شهادة، ولا يتم استدعاء SaveFiles أبدًا.
  • لا تتغير حالة الهدف. الإجراء الوحيد للخادم هو بحث قاموس فاشل في . لا يتم تسجيل مستقبل، ولا يتم بناء قناة أو مضاعِف، ولا يتم لمس سجل وكيل. مصافحة من نوع اسمًا؛ هذه الأداة لا ترسلها أبدًا.
ChannelHostProxy.m_multiplexers
Receiver
ستسجل
  • بصمة السجل موثقة ويمكن نسبها. اتصالان TCP وستة أسطر في ConnectionHub.log، يحمل كل منها اسم المستقبل bf-probe-<uuid4> حتى يتمكن المدافع من تمييز الفحص عن الهجوم. الأسطر الدقيقة أدناه.
  • حارس النتائج الإيجابية الخاطئة. لا يتم الإبلاغ عن الهدف أبدًا على أنه VULNERABLE إلا بعد إثبات أنه ConnectionHub لـ VSPC (انظر أدناه)، لذا لا يمكن الخلط بين خدمة TCP صامتة وكونسول غير مصحح.
  • ما يتركه على الهدف

    لكل هدف تفتح الأداة اتصالين TCP وترسل مصافحة ConnectionHub واحدة على كل منهما، تسمي مستقبلًا bf-probe-<uuid4> لن يكون موجودًا.

    تحت النقل الافتراضي --transport auto، الهدف الذي لا يكون نقله هو النقل المُشار إليه بمنفذه يكلف اتصالًا إضافيًا واحدًا: يتم رفض فحص النقل الخاطئ أثناء المصافحة، قبل قراءة أي اسم مستقبل، ثم يُستخدم النقل الصحيح لكلا الفحصين الحقيقيين. ثبّت --transport direct أو --transport gateway لإبقائه على اتصالين بالضبط — وهو أمر يستحق القيام به إذا كنت قد حددت عدد اتصالات في طلب تغيير.

    الحالة المتغيرة على الخادم: لا شيء. مسار كود Connector ينفذ بحث قاموس في ChannelHostProxy.m_multiplexers، يفشل، ويعيد خطأ. لا يتم تسجيل مستقبل، ولا يتم إنشاء مضاعِف أو قناة، ولا يتم التفاوض على جلسة TLS، ولا يتم لمس سجل وكيل. هذه الأداة لا ترسل أبدًا مصافحة من نوع Receiver، وهي التي ستسجل اسمًا.

    تُكتب إدخالات السجل إلى %ProgramData%\Veeam\Veeam Availability Console\Log\Server\ConnectionHub.log. حرفيًا من ConnectionHub حي 9.2.1.33875، مع اقتطاع الطوابع الزمنية وJSON النطاق:

    root@kitploit:~
    الفحص 1 (الإصدار 6)، كل من البنيات المصححة وغير المصححة:
        [INFO] ChannelHostProxy: Accept connection begin {"RemoteEndPoint":"<ip>:<port>","Line":"1"}
        [INFO] ChannelHostProxy: Accept connection end   {"RemoteEndPoint":"<ip>:<port>","Line":"2",...}
        [WARN] ChannelHostProxy: Cannot connect transmitter. Requested receiver not found
               (receiver name:bf-probe-<uuid>) {"RemoteEndPoint":"<ip>:<port>","Line":"3",...}
    
    الفحص 2 (الإصدار 7)، البنيات المصححة فقط:
        نفس الأسطر الثلاثة
    
    الفحص 2 (الإصدار 7)، البنيات غير المصححة:
        [INFO] ChannelHostProxy: Accept connection begin
        [WARN] ChannelHostProxy: Handshake failed. Reason:Unsupported client version "7"
        [INFO] ChannelHostProxy: Accept connection end
    

    اتصالان، ستة أسطر، لا إدخالات أخرى ولا تغيير حالة — مؤكد على مضيف حي.

    السلسلة الحرفية bf-probe- في ConnectionHub.log تحدد حركة مرور هذه الأداة، لذا يمكن للمدافع نسبها ويمكن لفريق الفحص إثبات ما أرسلوه. غيّر RECEIVER_PREFIX في المصدر إذا كنت بحاجة إلى علامة مختلفة.

    كيف يعمل

    يقرأ موجّه وكيل إدارة ConnectionHub مصافحة العميل قبل أي مصادقة أو TLS، وRequest.Read يتحقق من إصدار البروتوكول المُعلن من العميل مقابل نطاق مكتوب في الكود. ال إصلاح وسّع ذلك النطاق في نفس البنية التي أصلحت CVEs:

    البنيةالفحصيقبل
    <= 9.2.1.33875 (قابل للاستغلال)(uint)(versionByte - 3) <= 33، 4، 5، 6
    >= 9.3.0.35057 (مصحح)(uint)(versionByte - 3) <= 43، 4، 5، 6، 7

    لذا فإن مصافحة تعلن الإصدار 7 هي مميز ثنائي نظيف. يرسل المكتشف فحصين لكل هدف، بهذا الترتيب لسبب (كشف النقل يمكن أن يضيف ثالثًا — انظر أدناه):

    الفحصيُعلنالغرض
    1الإصدار 6يجب أن يعيد Requested receiver not found، مما يثبت أن الهدف هو حقًا ConnectionHub لـ VSPC
    2الإصدار 7الرد يعني PATCHED؛ الصمت يعني VULNERABLE

    بدون بوابة المرحلة الأولى، الصمت في الفحص 2 يطابق أيضًا أي خدمة TCP صامتة على الإنترنت، وسيتم الإبلاغ عن جدران الحماية ككونسولات Veeam قابلة للاستغلال.

    كلا النقلين، مُكتشف لكل هدف

    يعمل عبر كلا المسارين اللذين يستخدمهما وكيل الإدارة:

    النقلالمنفذالتعرض
    مباشر إلى ConnectionHub9999داخلي عادةً
    عبر بوابة Veeam Cloud Connect6180مواجه للإنترنت بالتصميم

    مسار البوابة يحتاج مقدمة ترحيل لا يجب أن يمتلكها المسار المباشر، لذا الفحص 1 يعمل مزدوجًا ككشف نقل. تحت --transport auto الافتراضي يحاول نقلًا واحدًا، وإذا لم تمر بوابة البصمة، يحاول الآخر. أيًا كان ما يمر يتم تثبيته، والفحص 2 يعيد استخدامه — ملف أهداف مختلط لا يحتاج تعليقًا لكل مضيف.

    التثبيت حاسم. إذا كان الفحص 2 يمكنه إعادة المحاولة على النقل الآخر، فلن يكون الصمت بعد الآن قابلًا للنسبة إلى فحص الإصدار، فقط إلى "أحد مساري البايت لم يرد"، وهو كيف يُصنع VULNERABLE خاطئ.

    أي نقل يُحاول أولًا يُقرر بالمنفذ، وهذا ليس تجميليًا — ال عدم التطابقان يفشلان بسرعات مختلفة جدًا:

    عدم التطابقكيف يقرأه الطرف البعيدالتكلفة
    مقدمة الترحيل → مركز مباشرint16 بيانات وصفية لـ hostType 44 / versionByte 0، يفشل فحص نطاق Request.Readيُتخلص منه في رحلة ذهاب وإياب واحدة
    مصافحة مباشرة → بوابةint32 طول إطار 1,012,729,346البوابة تنتظر بايتات لا تصل أبدًا؛ تحرق المهلة الكاملة

    لذا auto يبدأ بالخدمة التي تملك المنفذ: بوابة أولًا على 6180، مباشر في كل مكان آخر. هذا يبقي الحالة الشائعة عند محاولة واحدة وعدم التطابق المكلف خارج المسار السريع. الفحص الذي يفشل في فتح TCP تمامًا يقصر الدائرة دون محاولة النقل الثاني، لذا المضيفون الميتون في مسح واسع يكلفون مهلة واحدة، لا اثنتين.

    يبلغ عن جيل البروتوكول، ليس بنية دقيقة

    VULNERABLE تعني "إصلاحات KB4893 غير موجودة"، ليس "هذه 9.2.1.33875". البنيات الأقدم من 9.2.1 تشارك نفس فحص الإصدار، لذا يجب أن تبلغ البروتوكول 6 وتُبلغ كقابلة للاستغلال أيضًا (مستنتج من الكود، ليس مقاسًا — انظر القيود)، لكن الأداة لا تستطيع فصل 9.2.1 عن 9.1 أو 8.1. أكد البنية الدقيقة في واجهة الكونسول إذا كنت بحاجة إليها.

    المتطلبات

    • Python 3.8+، المكتبة القياسية فقط — لا حزم طرف ثالث.

    الاستخدام

    root@kitploit:~
    # مضيف واحد (TCP/9999 الافتراضي)
    ./cve_2026_58073_check.py vspc.example.com
    
    # منفذ صريح، عدة مضيفين
    ./cve_2026_58073_check.py vspc.example.com:9999 10.0.0.5
    
    # مسح قائمة، هدف واحد لكل سطر (تعليقات '#' مسموحة)، إخراج مضغوط
    ./cve_2026_58073_check.py -f targets.txt --brief
    
    # إخراج قابل للقراءة آليًا للأنابيب
    ./cve_2026_58073_check.py -f targets.txt --json > results.json
    
    # بوابة Veeam Cloud Connect — نقل الترحيل يُكتشف تلقائيًا
    ./cve_2026_58073_check.py cc-gw.example.com:6180
    
    # تثبيت النقل لتخطي الكشف (المنفذ يصبح 6180 افتراضيًا)
    ./cve_2026_58073_check.py --transport gateway cc-gw.example.com
    
    # التحقق من ترميزات الأسلاك بدون وصول شبكة
    ./cve_2026_58073_check.py --self-test
    

    الخيارات

    العلمالوصف
    targetsواحد أو أكثر من HOST[:PORT] (المنفذ الافتراضي 9999، أو 6180 مع --transport gateway)
    -f, --targets-file FILEقراءة الأهداف من ملف (واحد لكل سطر؛ تعليقات #)
    --transport {auto,direct,gateway}كيفية الوصول إلى ConnectionHub. auto (الافتراضي) يكتشفه لكل هدف؛ gateway يضيف مقدمة ترحيل Cloud Connect ويجعل المنفذ الافتراضي 6180
    -p, --port PORTتجاوز المنفذ الافتراضي
    --timeout SECSمهلة لكل فحص (الافتراضي: 8)
    --workers Nالأهداف المتزامنة (الافتراضي: 16)؛ يبقى الإخراج بترتيب الإدخال
    -b, --briefسطر واحد محاذى لكل هدف — مثالي لمسح العديد من المضيفين
    --jsonإصدار JSON منظم، بما في ذلك كل فحص مُرسل لكل هدف
    --no-colorتعطيل الإخراج الملون (يحترم أيضًا NO_COLOR وغير TTY)
    --self-testالتحقق من ترميزات أسلاك .NET والخروج؛ لا وصول شبكة

    أمثلة

    كونسول غير مصحح (الإخراج الافتراضي بسطرين). علامة [!] وVULNERABLE تظهران بالأحمر على TTY:

    root@kitploit:~
    $ ./cve_2026_58073_check.py vspc.example.com
    [!] vspc.example.com:9999: VULNERABLE  [protocol-7-rejected]
          ConnectionHub rejects protocol 7 but accepts 6, so the KB4893 fixes are absent (<= 9.2.1.33875)
    

    كونسول مصحح:

    root@kitploit:~
    $ ./cve_2026_58073_check.py patched.example.com
    [+] patched.example.com:9999: PATCHED  [protocol-7-accepted]
          ConnectionHub accepts protocol 7, so the KB4893 fixes are present (>= 9.3.0.35057)
    

    هدف بوابة، مع كشف نقل الترحيل تلقائيًا. لاحقة (gateway) تسمي النقل الذي تم الوصول إلى الحكم عبره:

    root@kitploit:~
    $ ./cve_2026_58073_check.py cc-gw.example.com:6180
    [!] cc-gw.example.com:6180 (gateway): VULNERABLE  [protocol-7-rejected]
          ConnectionHub rejects protocol 7 but accepts 6, so the KB4893 fixes are absent (<= 9.2.1.33875)
    

    مسح ممتلكات، سطر واحد محاذى لكل مضيف (--brief). حالة الخروج 1 إذا كان أي مضيف VULNERABLE، وإلا 0 — مفيد في السكربتات:

    root@kitploit:~
    $ ./cve_2026_58073_check.py -f targets.txt --brief; echo "exit: $?"
    VULNERABLE    vspc.example.com:9999            protocol-7-rejected
    PATCHED       patched.example.com:9999         protocol-7-accepted
    UNAFFECTED    fileserver.example.com:9999      not-vspc
    ERROR         unused.example.com:9999          unreachable
    exit: 1
    

    إخراج قابل للقراءة آليًا للأنابيب (--json). كل فحص مُدرج لكل هدف، لذا يمكن إعادة اشتقاق النتيجة من الأدلة بدلًا من الثقة بها. transport هو النقل الذي تم الوصول إلى الحكم عبره، وكل فحص يحمل النقل الذي استخدمه — لذا هدف مُكتشف تلقائيًا يُظهر المحاولة المرفوضة أيضًا:

    root@kitploit:~
    $ ./cve_2026_58073_check.py vspc.example.com --json
    [
      {
        "target": "vspc.example.com:9999",
        "host": "vspc.example.com",
        "port": 9999,
        "transport": "direct",
        "verdict": "VULNERABLE",
        "reason": "protocol-7-rejected",
        "detail": "ConnectionHub rejects protocol 7 but accepts 6, so the KB4893 fixes are absent (<= 9.2.1.33875)",
        "protocol_version": 6,
        "affected_cves": [
          "CVE-2026-58073",
          "CVE-2026-58072",
          "CVE-2026-58071",
          "CVE-2026-58067"
        ],
        "probes": [
          {
            "version_byte": 6,
            "transport": "direct",
            "connected": true,
            "responded": true,
            "status": "Error",
            "message": "Cannot connect transmitter. Requested receiver not found (receiver name:bf-probe-b7c40be0-e2e8-41dc-9fc3-cbbd7345954a)",
            "error": ""
          },
          {
            "version_byte": 7,
            "transport": "direct",
            "connected": true,
            "responded": false,
            "status": "",
            "message": "",
            "error": ""
          }
        ]
      }
    ]
    

    الأحكام

    الحكمعلامة السببالمعنى
    VULNERABLEprotocol-7-rejectedConnectionHub مؤكد لـ VSPC يقبل البروتوكول 6 ويرفض 7. إصلاحات KB4893 غائبة (<= 9.2.1.33875).
    PATCHEDprotocol-7-acceptedConnectionHub مؤكد لـ VSPC يقبل البروتوكول 7. إصلاحات KB4893 موجودة (>= 9.3.0.35057).
    UNAFFECTEDnot-vspcقبل TCP لكنه لم يرد على مصافحة ConnectionHub صالحة على أي نقل مُحاول، لذا ليس ConnectionHub لـ VSPC.
    INCONCLUSIVEunexpected-replyرد على فحص البصمة بشيء غير Requested receiver not found.
    INCONCLUSIVEinconclusive-discriminatorاجتاز بوابة البصمة، ثم رد على فحص الإصدار 7 بطريقة ليست نجاحًا ولا فشلًا — أو أن الاتصال الثاني فشل تمامًا. أعد المحاولة.
    ERRORunreachableتعذر الاتصال، أو رفضت بوابة Cloud Connect مقدمة الترحيل على أول نقل مُحاول (والذي تحت auto يعني أي هدف على المنفذ 6180).

    رموز الخروج

    الرمزالمعنى
    0لا هدف كان VULNERABLE
    1هدف واحد على الأقل VULNERABLE
    2خطأ استخدام (وسائط خاطئة / ملف أهداف غير قابل للقراءة)

    القيود

    • جيل البروتوكول، ليس رقم البنية. انظر يبلغ عن جيل البروتوكول، ليس بنية دقيقة أعلاه.
    • نقل البوابة لم يعمل إلا ضد ترحيل وهمي. المقدمة والتمرير بايت-ببايت اشتُقا من كود بوابة Cloud Connect المُفكك وتم اختبارهما ضد وهمي كتبناه منه. لم يُشغَّل ضد بوابة Cloud Connect إنتاجية. هذا ينطبق على ساق البوابة من --transport auto أيضًا؛ ثبّت --transport direct لإبقاء المسار غير المختبر خارج المسح تمامًا.
    • التعرض فقط. حكم VULNERABLE يتحدث عن حالة التصحيح، ليس عن ما إذا كان أي شخص استغل الكونسول. الاستغلال يترك آثاره الخاصة في سجلات الكونسول على كل من البنيات المصححة وغير المصححة؛ ابحث عن تلك بشكل منفصل.
    • الوصولية. النتيجة تعكس ما تجيب به الكونسول من الموضع الشبكي الذي تشغله منه.

    المعالجة

    قم بالترقية إلى Veeam Service Provider Console 9.3.0.35057 أو أحدث (KB4893). جميع المشكلات الأربع مُصلحة في تلك البنية الواحدة، ولا يوجد إصدار 9.2.x رجعي، لذا المعالجة هي ترقية إصدار وليست تصحيحًا سريعًا.

    شيئان لا تفعلهما الترقية. لا تقيد من يمكنه الوصول إلى TCP/9999، الذي يجب أن يرد فقط على الشبكات الفرعية التي تعيش فيها وكلاء الإدارة لديك. ولا تلغي شهادة وكيل أصدرتها الكونسول بالفعل، بما في ذلك شهادة صدرت لمهاجم بينما كانت غير مصححة. إذا وجدت دليلًا على استغلال، افتح حالة دعم Veeam للحصول على إرشادات حول شهادات الوكيل المخترقة: تدويرها ليس إجراءً موثقًا، والشهادات التي يمكنك إدارتها في البوابة ليست هي المرجع المصدق الذي يوقع شهادات الوكيل.

    الترخيص

    هذا الكود موزع تحت رخصة MIT.

    إخلاء مسؤولية قانوني

    استخدام هذه الأداة لمهاجمة أهداف دون موافقة متبادلة مسبقة غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المطورون أي مسؤولية وليسوا مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.

    انظر أيضًا

    • Veeam KB4893 — نشرة البائع والبنية المُصلحة
    • NVD — CVE-2026-58073
    • NVD — CVE-2026-58072
    تنزيل الأداة