sha1:
- daf7bf74dc54b8eb98be2f140c82c4ae1ea1f10e (profapi.dll)
Описание
Вредоносная программа на языке C++, компонент семейства Trojan.Scavenger. Представляет собой динамическую библиотеку, основной функцией которой является кража пользовательских данных из приложения криптокошелька Exodus.
Принцип действия
Trojan.Scavenger.4 загружается в инфицированную систему другой вредоносной программой семейства, Trojan.Scavenger.2. Он сохраняется в качестве файла profapi.dll в каталоге с приложением Exodus и запускается как компонент этого криптокошелька через эксплуатацию уязвимости DLL Search Order Hijaking.
Проверка окружения
При запуске Trojan.Scavenger.4 выполняет стандартную для представителей этого семейства проверку окружения. При обнаружении признаков запуска в виртуальной среде или в режиме отладки троян прекращает работу.
Перехват функции v8::String::NewFromUtf8
Троян получает список загруженных в процесс модулей через список PEB->LDR->InMemoryOrderModuleList и ищет в экспортируемых функциях этих модулей функцию ?NewFromUtf8@String@v8@SA?AV?$MaybeLocal@VString@v8@2@PEAVIsolate@2@PEBDW4NewStringType@2@H@Z. Она является частью движка V8 для работы с JavaScript и WebAssembly, и через нее выполняется формирование всех используемых строк в коде.
Перехватив эту функцию, Trojan.Scavenger.4 способен отслеживать все JSON, сформированные целевым приложением, и может получать различные пользовательские данные. В рассматриваемом случае троян ищет JSON, в котором присутствует ключ passphrase, после чего получает его значение. В результате он получает пользовательскую мнемоническую фразу, которой можно расшифровать или сгенерировать приватный ключ от криптокошелька.
После получения мнемонической фразы троян формирует путь до приватного ключа кошелька и считывает его:
%USERPROFILE%\AppData\Roaming\Exodus\exodus.wallet\seed.seco
Затем он отправляет собранные пользовательские данные от криптокошелька на C2-сервер.
Отправка данных на С2-сервер
Перед отправкой данных на управляющий сервер Trojan.Scavenger.4 выполняет стандартную для большинства троянов этого семейства процедуру создания и проверки ключа шифрования. Далее для передачи данных он использует маршрут /c/x.
Запрос с маршрутом /c/x
Собранные данные передаются на C2-сервер в два этапа. Запрос имеет параметр i, отвечающий за текущий этап.
Параметр запроса /c/x?i=1
В этом запросе троян формирует строку %USERNAME%|<passphrase>, которая затем шифруется с помощью алгоритма XXTEA и base64 и отправляется на C2-сервер. В ответ сервер передает идентификатор id, который будет использоваться на втором этапе.
Параметр запроса /c/x?i=2
Троян отправляет на C2-сервер приватный ключ от криптокошелька (файл seed.seco). К этому запросу добавляется параметр id, пришедший трояну в ответе сервера на первом этапе.
Подробнее о Trojan.Scavenger.2
Новость о трояне
Индикаторы компрометации