
موصل القناة الافتراضية الديناميكية الشامل لخدمات سطح المكتب البعيد
تقدم خدمات الطرفية (أو خدمات سطح المكتب البعيد) العديد من الميزات المخفية لمن يرغب في التعمق أكثر. إحدى هذه الخدمات هي القناة الافتراضية الديناميكية التي تمكننا من التواصل عبر اتصال RDP مفتوح دون الحاجة إلى فتح مأخذ توصيل جديد أو اتصال أو منفذ على جدار الحماية. يمكن استخدام هذه القنوات لإخفاء البيانات من أجهزة الشبكة النشطة، وتجاوز جدران الحماية، وتنفيذ برامج تشغيل الأجهزة عبر الشبكات، أو فقط لمساعدة مختبرى الاختراق في نقل البيانات. الاحتمالات لا حصر لها.
السبب الحقيقي وراء إنشاء هذا المشروع هو XFLTReaT. يمكن استخدامه لبناء "VPN" عبر شبكات معزولة، وأخيراً يتيح إجراء الاختبارات عبر صناديق القفز دون طلب تغييرات في جدار الحماية. باختصار، يجعل حياة مختبرى الاختراق أسهل.
تحتاج إلى تثبيت إضافة (.dll) على جهاز العميل الذي تستخدمه للاتصال بخادم RDP. على خادم RDP، تحتاج إلى استخدام الجزء الآخر من المشروع وهو .exe، الذي ينشئ القناة بين الإضافة والملف التنفيذي للخادم. إذا كنت تريد معرفة المزيد من التفاصيل، يرجى التمرير لأسفل.
هذا يعمل على ويندوز فقط. تم تقديم القنوات الافتراضية الديناميكية في ويندوز سيرفر 2008 وويندوز فيستا SP1. هذه و أي شيء أحدث منها يجب أن يكون مناسبًا للاستخدام.
يمكنك الحصول على المشروع بأكمله وتجميعه بنفسك أو استخدام التجميعات الثنائية المجمعة من قسم الإصدارات. من المهم استخدام الثنائي الصحيح في جميع الحالات، يرجى اختيار الثنائي المناسب للهندسة المعمارية المقابلة (إذا كان عميلك 32 بت ولكن الخادم 64 بت، فاحصل على dll 32 بت و exe 64 بت).
يجب وضع ملف .dll على جهاز العميل في أي دليل (للاستخدام طويل الأمد، يمكنك وضعه في %SYSROOT%\system32\ أو %SYSROOT%\SysWoW64\) وتثبيته باستخدام الأمر التالي كمستخدم مرتفع الصلاحيات (أي مسؤول):
regsvr32.exe UDVC-Plugin.dll
إذا لم يكن المستخدم مسؤولاً، فستحتاج أيضًا إلى استيراد إعدادات التسجيل تحت المستخدم الخاص بك. يرجى استخدام ملف UDVC-Plugin.reg لذلك.
إذا كنت ترغب في إزالته:
regsvr32.exe /u UDVC-Plugin.dll
في كل مرة تتصل فيها بخادم RDP من الآن فصاعدًا، سيتم تحميل هذه الإضافة وتهيئة نفسها كما هو محدد في التسجيل (انظر أدناه).
يجب وضع ملف .exe على خادم RDP وتشغيله بواسطة أي مستخدم.
كلا الجانبين يدعم ثلاثة أوضاع في الوقت الحالي:
عند تمكين هذا الوضع، سيتم إعداد مستمع على المنفذ والواجهة (عنوان IP) المحددين.
في هذا الوضع، سيتم إنشاء اتصال إلى مستمع على عنوان IP والمنفذ المحددين.
يقوم هذا الوضع بإعداد أنبوب مسمى بالاسم المحدد. على سبيل المثال: يمكن استخدام هذا الوضع لأدوات أخرى للقيام باتصال IPC عبر RDP. لسوء الحظ، تتم كتابة الأنابيب المسماة على القرص لذا فهي تعتبر بطيئة مقارنة بأوضاع المقبس. إذا كنت تهتم بعرض النطاق الترددي، فيرجى استخدام أوضاع المقبس.
يعمل كل من ثنائي العميل والخادم بنفس الطريقة ويمكن تكوينهما بنفس الخيارات.
سيقرأ الثنائي الخادم الخيارات من سطر الأوامر.
PS C:\Users\UDVC\> .\UDVC-Server.exe -h
Universal Dynamic Virtual Channel server application
Usage: C:\Users\UDVC\UDVC-Server.exe [-s | -c [-p port [-h ip]] | -m [-n name]] [-0 | -1 | -2 | -3]
Socket server mode -s (default) OR
Socket client mode -c:
-p port port to bind the listener (default: 31337)
-i ip ip to bind the listener (default: 127.0.0.1)
Named pipe mode -m:
-n name name of the named pipe (by default: "\\.\pipe\UDVC_{RDP SESSION NUMBER}")
Data transfer priority parameters:
-0 real time (WTS_CHANNEL_OPTION_DYNAMIC_PRI_REAL)
-1 high priority (WTS_CHANNEL_OPTION_DYNAMIC_PRI_HIGH) - default
-2 medium priority (WTS_CHANNEL_OPTION_DYNAMIC_PRI_MED)
-3 low priority (WTS_CHANNEL_OPTION_DYNAMIC_PRI_LOW)
يقرأ ملف .dll الخاص بالعميل جميع الخيارات من السجل، ويمكن العثور على القيم تحت المفتاح التالي:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Default\AddIns\UDVC-Plugin
في كل مرة يتم فيها تمكين الوحدة وقبل إنشاء الاتصال، يتم عرض تحذير تذكيري. تمامًا مثل هذا:

يضمن هذا التحذير أن المستخدم يعلم أنه تم تحميل الإضافة وبأي إعدادات.
يتم إنشاء المستمعين أو الاتصالات أو الأنابيب المسماة فقط عندما يتمكن الملف التنفيذي للخادم من الاتصال بإضافة dll. يعتمد ذلك على تكوينك، ولكن افتراضيًا عند إنشاء اتصال القناة الافتراضية (تم تحميل الإضافة بشكل صحيح، وتم تنفيذ الثنائي الخادم) فإنه يستمع على localhost:31337 على كلا نقطتي النهاية. عندما تتصل بهذه المنافذ وترسل البيانات عبر المقبس، ستظهر على الجانب الآخر.
فقط لإظهار بعض حالات الاستخدام حيث يمكن استخدام هذه الأداة.
إعادة توجيه المنافذ الأساسية جدًا. الجهاز المعزول 1 يحتوي على خدمة HTTP على tcp/80. لا يتم توجيه هذه الشبكة من شبكة 192.168.0.0/24، ويجب استخدام صندوق القفز ثنائي الارتباط للوصول. يتم تكوين وضع الاستماع على جانب العميل على 0.0.0.0:31337 وتم تنفيذ الثنائي الخادم مع إعدادات وضع الاتصال لإنشاء اتصال بخادم الويب. يمكن للمستخدم على عميل RDP استخدام متصفحه لفتح http://127.0.0.1:31337 للوصول إلى المحتوى من http://10.13.37.2:80.

سيناريو أكثر تقدمًا لنقل الملفات. تم تكوين كلا نقطتي النهاية للاستماع على 0.0.0.0:31337. أولاً، يتصل صندوق الاختراق بعميل RDP وينتظر الإدخال. ثم يتصل الجهاز المعزول 2 بصندوق القفز ويقرأ الملف بأكمله في المقبس.

كإضافة، يمكن أيضًا استخدام الأنابيب المسماة. في هذه الحالة، يقوم كل من عميل RDP وصندوق القفز بإنشاء أنبوب مسمى على كلا الجانبين (hIPC-client و hIPC-server) ويمكن للأجهزة الأخرى الاتصال بهذه الأنابيب. أي شيء يُكتب على الأنابيب سيظهر على الطرف الآخر. إنه لا يختلف كثيرًا عن مثال وضع الاستماع أعلاه، باستثناء أنه يستخدم أنابيب مسماة بدلاً من مقابس TCP.

في حالة عدم تحميل الإضافة أو عدم تشغيل الملف التنفيذي بسبب نقص بعض ملفات DLL مثل VCRUNTIME140.DLL، فقد ترغب في تثبيت حزمة Visual C++ Redistributable for Visual Studio 2015.