# Wagner Wiper. Запланированная кампания или неудачная шутка? ![](https://hackmd.io/_uploads/HyNB4wAa2.png) Приветствую. Сегодня мы рассмотрим Wagner Wiper - вредоносное ПО, "кошмарившее" российские компании пару месяцев назад, и попытаемся понять, была ли это рекламная кампания ЧВК Вагнер или неудачная шутка неизвестных хактивистов. В общем, приступим. ##### Содержание: - [Общая информация](##Общая-информация) - [Технический анализ](##Технический-анализ) - [Логический анализ](##Логический-анализ) - [Индикаторы компрометации](##Индикаторы-компрометации) ## Общая информация **Wagner Wiper** - вредоносное ПО, атаковавшее российские компании в начале этого лета. После заражения данное ПО шифрует чувствительные файлы и выводит информационное сообщение с призывом вступить в ЧВК Вагнер. Текст выводимого сообщения: ``` Официальный вирус  ЧВК Вагнера по трудоустройству ® Вакансии. Служба в ЧВК Вагнер По сотрудничеству: Канал не предназначен для агитации, склонения, вербовки и иного вовлечения лиц в совершение противоправных деяний. Братья хватит терпеть Власть! идем на войну против Шойгу! Москва: +7(985)008-02-40 Московская область: +7(985)008-02-73 если хотите пойти против чиновников! Привет от Пригожина!      https://t.me/wagnernew ``` Все контакты и ссылки, указанные в сообщении, **действительно** связаны с ЧВК Вагнер, в связи с чем данное вредоносное ПО и получило свое название. ## Технический анализ Для анализа использовался следующий [семпл](https://samples.vx-underground.org/root/Samples/Families/WagnerWiper/1238ab3dd3ed620536969ee438e99a33a418ba20f5e691962ed07904e075b2a4.7z). При загрузке в dnSpy можно увидеть, что название сборки - "**ConsoleApplication7**". Вероятнее всего, проект был создан в Visual Studio. ![](https://hackmd.io/_uploads/S1XvEwAan.png) ### Поток исполнения Функция Main выглядит довольно просто (семпл чистый, следов обфускации не замечено): ``` private static void Main(string[] args) { if (Program.AlreadyRunning()) // Проверка на повторный запуск { Environment.Exit(1); } if (Program.checkSleep) // Уклонение от запуска путём "засыпания" на опредёленный промежуток времени { Program.sleepOutOfTempFolder(); } if (Program.checkAdminPrivilage) { Program.copyResistForAdmin(Program.processName); // Копирование в "AppData\Roaming" и запуск с правами администратора (при их наличии) } else if (Program.checkCopyRoaming) { Program.copyRoaming(Program.processName); // Копирование в "AppData\Roaming", если файл запущен по другому пути } if (Program.checkStartupFolder) { Program.addLinkToStartup(); // Добавление в автозагрузку } Program.lookForDirectories(); // Запуск процесса шифрования if (Program.checkAdminPrivilage) { if (Program.checkdeleteShadowCopies) { Program.deleteShadowCopies(); // Удаление теневых копий томов } if (Program.checkdisableRecoveryMode) { Program.disableRecoveryMode(); // Отключение режима восстановления } if (Program.checkdeleteBackupCatalog) { Program.deleteBackupCatalog(); // Удаление бэкапа } } if (Program.checkSpread) { Program.spreadIt(Program.spreadName); // Запись семпла в корневую директорию каждого диска, доступного устройству } Program.addAndOpenNote(); // Запись сообщения, показанного выше, и его открытие Program.SetWallpaper(Program.base64Image); // Установка обоев с помощью WinAPI new Thread(delegate { Program.Run(); // Подмена BTC криптокошелька из буфера обмена }).Start(); } ``` ### Проверка на копии Данная функция осуществляет проверку на то, запущено ли более одной копии данного вредоносного ПО в настоящий момент. Примечательно то, что вместо привычной проверки через мьютекс, Wagner Wiper получает все процессы в системе и пути к создавшим их программам, после чего сравнивает их со своим нынешним путем. ![](https://hackmd.io/_uploads/SJ-u4PAan.png) ### Закрепление на устройстве Функция "**copyResistForAdmin**" существляет попытку запуска вредоносного ПО с привилегиями администратора при помощи "runas" и копирования в "**AppData\\Roaming**". ![](https://hackmd.io/_uploads/Bkdu4vRph.png) При запуске ПО с правами обычного пользователя активируется функция "**copyRoaming**", осуществляющая практически те же действия, что и "**copyResistForAdmin**". ### Удаление бэкапов и точек восстановления Функции "**deleteShadowCopies**", "**disableRecoveryMode**" и "**deleteBackupCatalog**" закрывают возможность восстановления данных из бэкапов, если вредоносное ПО было запущено с правами администратора. Осуществляется это с помощью трех комманд: 1. vssadmin delete shadows /all /quiet & wmic shadowcopy delete 2. bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no 3. wbadmin delete catalog -quiet ### Шифрование файлов Вредоносное ПО шифрует все файлы, находящиеся в следующих директориях: - Desktop - Links - Contacts - Documents - Downloads - Pictures - Music - OneDrive - Saved Games - Favorites - Searches - Videos - Application Data - Common Documents - Common Pictures - Common Music - Common Videos - Common Desktop Directory В них ПО получает список директорий и файлов, которые, в зависимости от их размера, либо шифруются с помощью **AES** со случайным паролем, либо перезаписываются **случайными** данными. ![](https://hackmd.io/_uploads/ryah4wAan.png) ### Установка заднего фона В конце своей работы Wagner Wiper устанавливает на задний фон следующее изображение: ![](https://hackmd.io/_uploads/Hy4TNwR6n.jpg) Происходит это с помощью WinAPI функции "[**SystemParametersInfo**](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfoa)" с флагом "**SPI_SETDESKWALLPAPER**". ## Логический анализ > **Внимание**: все, что сказано в данном разделе, является личным мнением автора и может не совпадать с мнением читателя и / или реальностью. Соглашаться с высказываниями, представленными ниже, или нет - ваш выбор. Вот мы и подобрались к самому интересному вопросу: было ли это вредоносное ПО оригинальной рекламной кампанией ЧВК Вагнер или нет? На мой взгляд - **нет**. Почему? Все очень просто. 1. В ПО присутствует адрес [биткоин кошелька](https://www.blockchain.com/explorer/addresses/btc/bc1qw0ll8p9m8uezhqhyd7z459ajrk722yn8c5j4fg), который, однако, никак не фигурирует в записке о выкупе. Из этого можно сделать вывод, что данный шифровальщик является модифицированной версией какого-либо опенсорсного продукта. Также операции, связанные с данным кошельком, не похожи на переводы в качестве выкупа. 2. Слабо верится в то, что ЧВК Вагнер атаковал российские кампании (а именно на них атакующие и делали упор). У них хватало путей наема кадров и без подрыва деятельности российских компаний. 3. В указанном в записке канале не появлялось какой-либо информации, аффилирующей данное ПО с вышеуказанной организацией. 4. Написано ПО достаточно небрежно, есть синтаксические и логические ошибки, а, следовательно, разработкой занимался, скорее всего, не профессионал. а энтузиаст. Таким образом, за данной вредоносной кампанией скорее всего стояла хактивистская группа, не связанная с ЧВК Вагнер, но поддерживающая ее. ## Индикаторы компрометации **MD5**: d26b2c8fc07cb5c72bfc40779f09d491 **SHA1**: 8ee7fc0171b980aa93b687e334d1e29a8d634085 YARA правило, которое детектирует данное вредоносное ПО: ``` import "pe" rule wagner_wiper { meta: filetype = "Win32 EXE" date = "07/06/2023" md5 = "f5ef8c420c99bbddfe27c7046bf67986" description = "Detects Phemedrone Stealer - C# open source infostealer." strings: $filename = "WAGNER.exe" $spreadname = "surprise.exe" $appmutex1 = "7z459ajrk722yn8c5j4fg" $appmutex2 = "2X28tfRmWaPyPQgvoHV" condition: pe.is_pe and pe.imports("mscoree.dll") and all of them } ``` **Telegram**: [File Exploit](https://t.me/filexploit)