
msbuild.exe를 악용하는 PureRAT RAT의 리버스 엔지니어링 분석으로, C2 인프라, .NET 회피 API, 파일 시스템 조작, 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는 실행을 위해 악용되는 정상적인 도구입니다.
C2 도메인(pure8s.ddnsfree.com)과 IP(52.241.248.38)가 포함된 msbuild.exe 문자열을 보여주는 Process Hacker 화면.
msbuild.exe에 대한 Process Hacker 메모리 분석 결과, PureRAT는 탐지를 피하기 위해 .NET 조작 및 회피 API를 사용하는 것으로 나타났습니다.
DisableNativeImageLoad – 네이티브 이미지 로딩을 비활성화합니다(회피).FlsSetValue / FlsGetValue – Fiber Local Storage(안티 디버그).OpenProcessToken / GetTokenInformation – 토큰 조작(권한 상승).CreateBoundaryDescriptorW – 경계 설명자를 생성합니다(샌드박스 회피).mscordacwks.dll – .NET 디버깅 DLL(잠재적 디버깅 회피).AssemblyPath / BindingConfiguration – .NET 어셈블리 로딩.WerRegisterRuntimeExceptionModule – 오류 보고 조작.AttachThreadAlwaysOn – 스레드 연결(인젝션).AssemblyPath와 BindingConfiguration은 .NET 사용을 확인시켜 줍니다.DisableNativeImageLoad와 CreateBoundaryDescriptorW는 탐지를 피하는 데 도움이 됩니다.OpenProcessToken은 토큰 조작을 가능하게 합니다.FlsSetValue와 AttachThreadAlwaysOn은 분석을 어렵게 만듭니다.
DisableNativeImageLoad, OpenProcessToken 및 기타 회피 API를 보여주는 Process Hacker 화면.
저장된 DisableNativeImageLoad 코드에 대한 Binary Ninja 분석 결과, PureRAT는 .NET 어셈블리 조작과 XML 기반 데이터 구조를 사용하는 것으로 나타났습니다.
MicrodomImplementation – Microsoft XML DOM 구현.CreateMicrodomSource – XML DOM 소스를 생성합니다(구성).DsiGBufferedStream – 데이터 처리를 위한 버퍼링된 스트림.CRTIXMLDSIGBaseHasher – XML 디지털 서명 해싱.CRTIXMLDSIGEnvelopedSignatureTransformer – XML 서명 변환.AssemblyPath – .NET 어셈블리 경로.BindingConfiguration – .NET 바인딩 구성.DsiGBufferedStream은 대용량 데이터 스트림을 처리합니다.DisableNativeImageLoad는 네이티브 이미지 로딩을 방지하여 분석을 어렵게 만듭니다.
MicrodomImplementation, DsiGBufferedStream 및 XML 서명 API를 보여주는 Binary Ninja 화면.
이 섹션은 이전 섹션의 DisableNativeImageLoad 코드에 대한 Binary Ninja 분석을 이어갑니다. PureRAT가 사용하는 파일 시스템 작업과 CDF(Component Definition File) 조작을 보여줍니다.
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}) – 파일 경로를 동적으로 구성합니다.
파일 작업, CDF 검증 및 동적 경로 구성을 보여주는 Binary Ninja 화면.
msbuild.exe에 대한 Process Hacker 메모리 분석 결과, PureRAT는 프로세스 간 통신 및 코드 인젝션을 위해 .NET Remoting 및 프록시 API를 사용하는 것으로 나타났습니다.
GetServerDomainIdForProxy – 프록시에 대한 서버 도메인 ID를 검색합니다.RegisterAssembly – .NET 어셈블리를 등록합니다.CreateProxyForDomain – 도메인에 대한 프록시를 생성합니다.MarshalToBuffer / UnmarshalFromBuffer – 데이터를 직렬화/역직렬화합니다.GetLocalSignature – 로컬 서명을 검색합니다.ThrowException – 예외를 발생시킵니다(오류 처리).UnsafeCast / UnsafeEnumCast – 안전하지 않은 형식 캐스팅(회피).ExecuteBackoutCodeHelper – 백아웃 코드를 실행합니다.GetServerDomainIdForProxy는 리모팅 사용을 확인시켜 줍니다.CreateProxyForDomain은 IPC를 가능하게 합니다.MarshalToBuffer와 UnmarshalFromBuffer는 데이터를 처리합니다.UnsafeCast와 UnsafeEnumCast는 형식 안전성을 우회하는 데 도움이 됩니다.
GetServerDomainIdForProxy, RegisterAssembly 및 기타 Remoting API를 보여주는 Process Hacker 화면.
이 섹션은 이전 섹션의 GetServerDomainIdForProxy 코드에 대한 Binary Ninja 분석을 이어갑니다. PureRAT가 사용하는 HTTP 통신, COM(Component Object Model) 사용 및 격리된 파일 시스템 작업을 보여줍니다.
Content-Type: %s Content-Length: %d Accept: %s – C2 통신에 사용됩니다.CoTaskMemAlloc 및 IsolationImplementation::Com – COM 객체를 위한 메모리를 할당합니다.*ppClsid = (CLSID *)... – COM 클래스 식별자를 할당합니다.IsolatedFilesystemObject 및 RtlIsIsolatedFilesystemObjectHandleValid – 격리된 파일 시스템 핸들을 검증합니다.
HTTP 헤더, COM 메모리 할당, CLSID 할당 및 격리된 파일 시스템 API를 보여주는 Binary Ninja 화면.
이 분석은 msbuild.exe를 통해 실행되고 고급 .NET 회피 기법을 사용하는 정교한 파일리스 RAT인 PureRAT를 밝혀냈습니다.
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