Злоумышленники продолжают расширять возможности зловредов, стремясь извлечь максимальную выгоду от компрометации заражённых компьютеров. Интересный пример подобной «модернизации» мы обнаружили недавно: в новой версии широко распространённого на территории России и СНГ шифровальщика Shade появилась новая логика, в соответствии с которой зловред проверяет компьютер на причастность к бухгалтерии и в случае успеха устанавливает в скомпрометированную систему инструменты удалённого управления вместо стандартного шифрования файлов.
Бухгалтер, милый мой бухгалтер
В качестве первичной проверки зараженной машины обновленный троянец (вердикт Trojan-Ransom.Win32.Shade.yb) перебирает список установленных в системе приложений и ищет строки, связанные с банковским ПО. Затем зловред ищет подстроки «BUH», «BUGAL», «БУХ», «БУГАЛ» в имени компьютера и пользователя. Если совпадение было найдено, троянец пропускает обычную процедуру поиска и шифрования файлов. Вместо этого он скачивает и запускает файл по заданной в конфигурации ссылке, а сам завершает исполнение.
Технически новые возможности выглядят так: в теле зловреда есть новый (по сравнению с предыдущими версиями Shade) блок данных, закодированных в base64:
После раскодирования видим конфигурационный блок:
Сразу после старта Shade начинает проверку зараженной системы в соответствии с этим конфигурационным блоком.
Троянец Shade.yb скачивает на компьютер пользователя бот Teamspy, который для коммуникации со своим командным сервером использует легальную утилиту удалённого управления TeamViewer 6, на лету модифицируя ее для незаметной работы. Вместе с ботом распространяются плагины (в нашем случае это installvpn.pg, rdw.pg, scankey.pg), которые хранятся на диске в зашифрованном виде и расшифровываются зловредом только в оперативной памяти. Расшифрованный плагин представляет собой DLL с экспортом InitPg, который и вызывается основным модулем бота. Отдельно отметим два плагина, выполнение которых предоставляет злоумышленникам возможность осуществить удаленный доступ к зараженной машине по протоколу Remote Desktop Protocol (RDP):
- installvpn.pg: в скрытном режиме устанавливает драйвер TeamViewer VPN.
- rdw.pg: в скрытном режиме устанавливает приложение «RDP Wrapper Library» и меняет настройки системы таким образом, чтобы разрешить соединение по протоколу RDP.
Автоматического соединения с VPN зловред не производит: возможно, эта возможность оставлена злоумышленниками для каких-то особых случаев.
Заражение системы
Скачиваемый исполняемый файл Teamspy представляет собой NSIS-инсталлер. Его содержимое включает:
- NSIS-скрипт script.bin (сценарий, управляющий распаковкой);
- стандартные плагины NSIS — nsExec.dll, StdUtils.dll, System.dll;
- легальную утилиту NirCmd (файл 6kzi6c94h2oeu4);
- легальную утилиту 7zip (файл vuoup3teqcux6q);
- картинку 2b6zfhf3ui7e03iv6.jpg
- картинку 6nmxxselb250du8c.jpg с «приклеенным» запароленным архивом 7z
При запуске инсталлер исполняет скрипт script.bin: с помощью StdUtils.dll вычисляет хэш BLAKE2-512 от содержимого 2b6zfhf3ui7e03iv6.jpg и использует полученную строку как пароль к 7z-архиву, спрятанному внутри 6nmxxselb250du8c.jpg.
Из архива распаковывается скрытая папка «%APPDATA%\Div» со следующим содержимым:
- Подпапка x64, содержащая файлы install64.exe, teamviewervpn.cat, TeamViewerVPN.inf и teamviewervpn.sys (легальные компоненты TeamViewer).
- Подпапка x86, содержащая файлы install.exe, teamviewervpn.cat, TeamViewerVPN.inf и teamviewervpn.sys (легальные компоненты TeamViewer).
- Тело бота avicap32.dll.
- Легальный исполняемый файл TeamViewer – cfmon.exe.
- Зашифрованные плагины бота installvpn.pg, rdw.pg, scankey.pg.
- Зашифрованный конфиг бота tv.cfg.
- Легальные компоненты TeamViewer: TeamViewer_Desktop.exe, TeamViewer_Resource_en.dll, tv_w32.dll, tv_w32.exe, tv_x64.dll,tv_x64.exe.
После распаковки инсталлер запускает cfmon.exe. При старте этого процесса происходит загрузка и передача управления расположенному в той же директории вредоносному файлу avicap32.dll, являющемуся телом бота (данная техника подмены легальной DLL на вредоносную известна под названием «DLL hijack»). Это тело имеет несколько слоев шифрования и обфусцировано для усложнения анализа.
Принцип работы бота
Вредоносный avicap32.dll в процессе исполнения модифицирует функциональность запущенного процесса TeamViewer путем перехвата нескольких системных вызовов, а также внутренних процедур TeamViewer. Одним из последствий этой модификации является сокрытие окна программы и ее значка в области уведомлений. Пользователь зараженного компьютера не видит графического интерфейса программы и может не подозревать о его наличии, если не посмотрит в список запущенных процессов.
Фрагмент псевдокода процедуры установки перехватов
Помимо сокрытия интерфейса TeamViewer, avicap32.dll расшифровывает и использует данные из конфигурационного файла tv.cfg.
Расшифрованное содержимое tv.cfg
Значение поля szadminhost – это адрес сервера C&C, с которым общается бот. Коммуникация происходит по протоколу HTTP, пример перехваченного трафика представлен на скриншоте.
В первом запросе бот сообщает C&C о своем существовании. В ответ C&C посылает команду (в данном случае lexec – загрузка и исполнение файла, о других командах ниже). Третьим запросом бот сообщает серверу результат выполнения команды: «cmd=1» – успех, «cmd=2» – ошибка.
Обработка команд от сервера производится в отдельном потоке, запущенном из процедуры, установленной на перехват API-функции SetWindowTextW.
Общий вид графа исполнения функции обработки команд
Фрагмент графа исполнения функции, разбирающей и выполняющей команды от сервера
Список строк, среди которых находятся принимаемые ботом команды
Из наиболее интересных команд, принимаемых зловредом, отметим следующие:
- startaudio / stopaudio: начать/завершить запись звука
- startvideo / stopvideo: начать/завершить запись видео с экрана
- lexec: скачать и запустить файл по предоставленной сервером C&C ссылке
- cmd: предоставить злоумышленникам консоль удаленного управления
Остальные команды связаны с обновлением конфигурационного файла и отдельных его полей, обновлением или удалением плагинов, управлением питанием ПК (выключение, перезагрузка), перезапуском собственного процесса или самоудалением бота.
Заключение
Использование бота открывает перед злоумышленниками широкие перспективы обогащения и в случае даже единичного успешного заражения может принести им значительные суммы денег. Троянцы-шифровальщики, по сути, отдают инициативу пользователю (который волен не платить за свои файлы), а их хозяева должны учитывать усредненную платежеспособность жертв при назначении выкупа. Возможность удаленного доступа к зараженной бухгалтерской системе позволяет злоумышленнику скрытно следить за деятельностью жертвы и собирать подробные сведения о ее платежеспособности, чтобы впоследствии использовать наиболее эффективный способ получения денег.
Продукты «Лаборатории Касперского» детектят тело бота как Trojan-Spy.Win32.Teamspy.gl; этот зловред также известен как TVSPY, TVRAT, SpY-Agent.
У жертв троянца Shade версий 1 и 2 есть шанс восстановить данные без оплаты выкупа киберпреступникам. ИТ-компании объединили усилия с правоохранительными органами, чтобы создать инструмент для дешифрования данных, его можно найти на сайте NoMoreRansom
MD5
Trojan-Ransom.Win32.Shade.yb 21f4bbcd65d0bff651fa45d442e33877
Trojan-Spy.Win32.Teamspy.gl 4235f3730bbd303d9b3956f489ff240d
Shade: не шифрованием единым