Обратно-инженерный анализ RAT PureRAT, злоупотребляющего msbuild.exe, с извлечением инфраструктуры C2, API обхода .NET, манипуляций с файловой системой и механизмов персистентности через VBScript.
Анализ памяти в Process Hacker показывает, что PureRAT выполняется через msbuild.exe (легитимный инструмент сборки Microsoft) и подключается к нескольким серверам C2.
MSBuild.exe (PID 2056).pure8s.ddnsfree.com52.241.248.38HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...Erişim izinlerinize izin verilmeyen bir... (сообщение об ошибке «Доступ запрещён»).msbuild.exe — легитимный инструмент, злонамеренно используемый для выполнения кода.
Вид в Process Hacker, показывающий строки msbuild.exe с доменом C2 (pure8s.ddnsfree.com) и IP (52.241.248.38).
Анализ памяти msbuild.exe в Process Hacker показывает, что PureRAT использует манипуляции с .NET и API обхода защиты для уклонения от обнаружения.
DisableNativeImageLoad – отключает загрузку нативных образов (обход защиты).FlsSetValue / FlsGetValue – Fiber Local Storage (защита от отладки).OpenProcessToken / GetTokenInformation – манипуляции с токенами (повышение привилегий).CreateBoundaryDescriptorW – создаёт дескрипторы границ (обход песочницы).mscordacwks.dll – DLL для отладки .NET (потенциальный обход отладки).AssemblyPath / BindingConfiguration – загрузка сборок .NET.WerRegisterRuntimeExceptionModule – манипуляции с отчётами об ошибках.AttachThreadAlwaysOn – присоединение потока (инъекция).AssemblyPath и BindingConfiguration подтверждают использование .NET.DisableNativeImageLoad и CreateBoundaryDescriptorW помогают избежать обнаружения.OpenProcessToken позволяет манипулировать токенами.FlsSetValue и AttachThreadAlwaysOn усложняют анализ.
Вид в Process Hacker, показывающий DisableNativeImageLoad, OpenProcessToken и другие API обхода защиты.
Анализ сохранённого кода DisableNativeImageLoad в Binary Ninja показывает, что PureRAT использует манипуляции со сборками .NET и структурами данных на основе XML.
MicrodomImplementation – реализация XML DOM от Microsoft.CreateMicrodomSource – создаёт источник XML DOM (конфигурация).DsiGBufferedStream – буферизованный поток для обработки данных.CRTIXMLDSIGBaseHasher – хеширование цифровой подписи XML.CRTIXMLDSIGEnvelopedSignatureTransformer – преобразование подписи XML.AssemblyPath – путь к сборке .NET.BindingConfiguration – конфигурация привязки .NET.DsiGBufferedStream обрабатывает большие потоки данных.DisableNativeImageLoad предотвращает загрузку нативных образов, усложняя анализ.
Вид в Binary Ninja, показывающий MicrodomImplementation, DsiGBufferedStream и API подписи XML.
Этот раздел продолжает анализ кода DisableNativeImageLoad в Binary Ninja из предыдущего раздела. Он раскрывает операции с файловой системой и манипуляции с CDF (Component Definition File), используемые PureRAT.
DeleteFile, QueryAttributesFile, QueryDirectoryFile, WriteFile, ReadFile, CopyFile, CreateHardLinkOrCopyFile, CreateFile – полный контроль над файловой системой.(ReferenceIdentityList != 0) || (CurrentPosition == 0) – проверяет ссылки CDF.(NewCdf->Flags & ~((0x00000001) | (0x00000002))) == 0 – проверяет флаги CDF.CreateFile(da={da}, oa={oa}, fa={fa}, sa={sa}, cd={cd}, co={co}):(st={st}.h={h}) – динамически конструирует пути к файлам.
Вид в Binary Ninja, показывающий файловые операции, проверку CDF и динамическое конструирование путей.
Анализ памяти msbuild.exe в Process Hacker показывает, что PureRAT использует .NET Remoting и API прокси для межпроцессного взаимодействия и инъекции кода.
GetServerDomainIdForProxy – получает идентификатор домена сервера для прокси.RegisterAssembly – регистрирует сборку .NET.CreateProxyForDomain – создаёт прокси для домена.MarshalToBuffer / UnmarshalFromBuffer – сериализует/десериализует данные.GetLocalSignature – получает локальную подпись.ThrowException – генерирует исключения (обработка ошибок).UnsafeCast / UnsafeEnumCast – небезопасное приведение типов (обход защиты).ExecuteBackoutCodeHelper – выполняет код отката.GetServerDomainIdForProxy подтверждает использование remoting.CreateProxyForDomain обеспечивает IPC.MarshalToBuffer и UnmarshalFromBuffer обрабатывают данные.UnsafeCast и UnsafeEnumCast помогают обойти проверку типов.
Вид в Process Hacker, показывающий GetServerDomainIdForProxy, RegisterAssembly и другие API Remoting.
Этот раздел продолжает анализ кода GetServerDomainIdForProxy в Binary Ninja из предыдущего раздела. Он раскрывает HTTP-взаимодействие, использование COM (Component Object Model) и операции с изолированной файловой системой, используемые PureRAT.
Content-Type: %s Content-Length: %d Accept: %s – используется для связи с C2.CoTaskMemAlloc и IsolationImplementation::Com – выделяет память для объектов COM.*ppClsid = (CLSID *)... – присваивает идентификатор класса COM.IsolatedFilesystemObject и RtlIsIsolatedFilesystemObjectHandleValid – проверяет дескрипторы изолированной файловой системы.
Вид в Binary Ninja, показывающий HTTP-заголовки, выделение памяти COM, присвоение CLSID и API изолированной файловой системы.
Этот анализ выявил PureRAT — изощрённый бесфайловый RAT, который выполняется через msbuild.exe и использует продвинутые методы обхода защиты .NET.
msbuild.exe.pure8s.ddnsfree.com и 52.241.248.38.DisableNativeImageLoad и OpenProcessToken.DeleteFile, WriteFile, ReadFile, CopyFile, CreateFile).HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...).pure8s.ddnsfree.com и IP 52.241.248.38.msbuild.exe с необычными командами.DisableNativeImageLoad и OpenProcessToken.msbuild.exe.Проанализированный образец PureRAT доступен на MalwareBazaar для тех, кто желает провести собственный анализ:
Использованные инструменты: Process Hacker, Binary Ninja, x64dbg