
شلّة ربط باستخدام خدمة الفاكس واختراق مكتبة DLL
إثبات مفهوم لشل ربط (bind shell) باستخدام خدمة Fax وانتحال DLL يعتمد على Ualapi.dll.
اطلع على مقالنا في: https://windows-internals.com/faxing-your-way-to-system/

Ualapi.dll وضعه في c:\windows\system32Fax، والتي ستقوم بتحميل DLL واستدعاء التصدير UalStart. سيقوم UalStart بإضافة عنصر عمل إلى مجمع الخيوط (thread pool) الذي سيفتح مقبضًا (handle) إلى RpcSs، ويجد توكن SYSTEM، ثم ينتحل هويته. بعد ذلك، سينشئ مقبسًا (socket) على عنوان نقطة النهاية المحلية، ويربطه بالمنفذ 9299، ثم ينتظر بشكل غير متزامن اتصالاً باستخدام منفذ إكمال الإدخال/الإخراج (I/O completion port) الخاص بمجمع الخيوط.nc(at).exe <ip> 9299) ثم اكتب let me in واضغط ENTER. إذا كنت تكتب كودًا مخصصًا، تأكد من إرسال السلسلة let me in\n.Cmd.exe تحت خدمة DcomLaunch بصلاحيات SYSTEM، رابطًا مقابض الإدخال والإخراج الخاصة بها إلى المقبس المنشأ حديثًا.SYSTEM، ويعود إلى NETWORK SERVICE بسرعة كبيرة بعد إجراء استدعاء API واحد فقط. يساعد هذا في تقليل فرصة اكتشافه من قبل الماسحات الضوئية المختلفة.DcomLaunch (وهي بالفعل خدمة SYSTEM) وليس تحت خدمة Fax، مما يجعله يبدو أكثر طبيعية ويتجنب شجرة عمليات مشبوهة جدًا.Fax، وليس إلى DcomLaunch أو Cmd.exe. إذا قمنا بقتل خدمة Fax، يبدو الأمر كما لو أن المقبس ينتمي إلى System.هذا ليس مخصصًا ليكون شلًا جاهزًا للاستخدام الفوري وغير قابل للاكتشاف وخبيثًا ومستعملًا كسلاح:
80 أو 443 سيكون أفضل.Spooler، تقوم أيضًا بتحميل Ualapi.dll. بينما يتصرف النظام بشكل جيد إذا كانت خدمة Fax "عالقة" في حالة SERVICE_START_PENDING، فإن هذا سيسبب مشاكل في Spoolsv.exe.