
HWMonitor로 위장한 DLL Sideloading 캠페인에 대한 기술 분석, 분석 보고서 및 YARA 규칙
⚠️ 면책 조항 / DISCLAIMER
이 저장소는 교육, 방어 및 위협 연구 목적으로만 작성되었습니다. 기술적 사후 분석, 침해 지표(IoC), 방어용 YARA 시그니처를 포함하고 있습니다. 이 저장소에는 활성 악성코드 바이너리가 배포되지 않습니다.
이 저장소는 하드웨어 진단 유틸리티 CPUID HWMonitor(가상 버전 6.77.7)로 위장한 다단계 악성코드 전달 키트의 기술적 분석을 문서화합니다.
동적 샌드박스 분석 및 행위 분류기(Tria.ge / Recorded Future)는 최종 페이로드를 Blakcsee Stealer(BLAKCSEE_STEALER, 점수: 10/10 악성)로 확인했습니다.
리버스 엔지니어링을 통해 다음이 확인되었습니다:
GUP.exe)를 악용한 DLL 사이드로딩(검색 순서 하이재킹).ntdll.dll을 대상으로 하는 메모리 내 IAT(Import Address Table) 후킹.ReadFile, VirtualProtect)을 은닉하는 동적 스택 문자열 연산(XOR 난독화).System.ServiceModel.dll)와 암호화된 93.8 MB 페이로드 컨테이너(ProfilerTools.dll)를 통한 바이너리 팽창 및 안티 분석 밸러스트.flowchart TD
subgraph Stage1["1. Initial Access & Sideloading"]
Victim(["User executes downloaded file"]) --> Carrier["hwmonitor-...-6.77.7.exe<br/>(Legitimate Notepad++ GUP.exe)"]
Carrier -->|Auto-loads via Search Order| Loader["libcurl.dll<br/>(Malicious C++ Hook Loader)"]
end
subgraph Stage2["2. Evasion & Memory Hijacking"]
Loader --> CheckEnv{"Environment Check<br/>fcn.180005700"}
CheckEnv -->|Sandbox detected / Network isolated| ExitClean["Clean exit (Timeout 10s)"]
CheckEnv -->|Target host confirmed| StackXOR["Stack-String XOR Resolution<br/>('ReadFile' via 0x180005cf0)"]
StackXOR --> IATHook["Patch Host IAT table<br/>(ntdll.dll via fcn.180009ac0)"]
end
subgraph Stage3["3. Payload Delivery & Ballast"]
IATHook --> ReadBox["Read & decrypt in memory"]
ReadBox --> SafeBox["ProfilerTools.dll (93.8 MB)<br/>Ciphertext Container (Entropy 8.0)"]
SafeBox --> StealerRAM["Decrypted Infostealer in RAM<br/>(RedLine / Lumma / Vidar)"]
Carrier -.->|Ignored by loader| Ballast["ui_framework.dll (16.5 MB)<br/>Clean Microsoft WCF Ballast"]
Carrier -.->|Ignored by loader| Decoy["config.txt (Decoy GitHub links)"]
endhwmonitor-windows-github-io-6.77.7.exe (전달자)GUP.exe).b9c965aa538c21b4702ec7e4f3ac47fc999e1cd505d69e0896a309f7956bb351libcurl.dll을 사이드로딩하기 위해 악용된 신뢰할 수 있는 애플리케이션.libcurl.dll (로더 및 IAT 후커)22a6cea4d2069935a7c621b9a96ba82d46a2d058dffca4d11917721c63ae341akernel32.dll만 해당).ReadFile의 동적 런타임 계산:
(0x23 + 0x07) ^ 0x78 = 'R' (0x52)
(0x23 + 0x26) ^ 0x2c = 'e' (0x65)
(0x23 + 0x45) ^ 0x09 = 'a' (0x61)
(0x23 + 0x64) ^ 0xe3 = 'd' (0x64)
(0x23 - 0x7d) ^ 0xe0 = 'F' (0x46)
(0x23 - 0x5e) ^ 0xac = 'i' (0x69)
(0x23 - 0x3f) ^ 0x88 = 'l' (0x6c)
(0x23 - 0x20) ^ 0x66 = 'e' (0x65)
ProfilerTools.dll (암호화된 페이로드 컨테이너)8.00 (고밀도 암호문, Non-PE).5B 28 B3 C0 5A 13 73 1F 1A B0 0A A9 53 3C 16 72242e5a415c7efb1f86b408e238d24835c72836f1e8e2439b0a6713e0b1f8d638133710d5b04ef72c22c48b43d0ad39afui_framework.dll (팽창 밸러스트)System.ServiceModel.dll (WCF Framework v4.8.3928.0).(Heur) Malware: Stealer로 오탐됩니다. 순전히 파일 팽창 밸러스트 역할을 합니다.# SHA-256 Hashes
64e602e1c744da32c53b5761fa7b15dba72023df0176cc03a48c0c0bb52f2c37 Desktop.7z (Parent Delivery Archive / Tria.ge Sample)
b9c965aa538c21b4702ec7e4f3ac47fc999e1cd505d69e0896a309f7956bb351 hwmonitor-windows-github-io-6.77.7.exe (GUP.exe)
22a6cea4d2069935a7c621b9a96ba82d46a2d058dffca4d11917721c63ae341a libcurl.dll (Malicious Loader)
242e5a415c7efb1f86b408e238d24835c72836f1e8e2439b0a6713e0b1f8d638 ProfilerTools.dll (Encrypted Container)
# MD5 Hashes
7744ed6fac4775706938298f9cb5ba0d hwmonitor-windows-github-io-6.77.7.exe
866da3588ceacbb854f95f6d581ca464 libcurl.dll
133710d5b04ef72c22c48b43d0ad39af ProfilerTools.dll
# Magic Header (Offset 0x0)
5B 28 B3 C0 5A 13 73 1F 1A B0 0A A9 53 3C 16 72 ProfilerTools.dll
이 캠페인에 대해 디렉터리나 파일을 스캔하려면 공식 YARA CLI 도구를 사용하십시오:
# Scan a specific directory recursively
yara64 -r rules_hwmonitor_sideload_en.yar /path/to/target/folder
| File | Description |
|---|
malware_analysis_report_en.txt | 포괄적인 9단계 기술 리버스 엔지니어링 보고서 (영어). |
malware_analysis_report.txt | 리버스 엔지니어링 및 방법론에 대한 전체 상세 보고서 (러시아어). |
rules_hwmonitor_sideload_en.yar | 영어 설명 및 메타데이터가 포함된 프로덕션용 YARA 규칙 세트. |
rules_hwmonitor_sideload.yar | 러시아어 주석이 포함된 YARA 시그니처 세트. |
| Tactic | Technique ID | Technique Name |
|---|
| Defense Evasion | T1574.002 | Hijack Execution Flow: DLL Side-Loading |
| Defense Evasion | T1027.001 | Binary Padding (Binary Inflation / File Pumping) |
| Defense Evasion | T1027 | Obfuscated Files or Information (Stack Strings XOR) |
| Defense Evasion | T1497 | Virtualization/Sandbox Evasion (GetSystemInfo checks) |
| Persistence / Execution | T1055 | Process Injection: IAT Hooking |
| Command and Control | T1568.002 | Dynamic Resolution: Domain Generation Algorithms (DGA) |