4bf14434ef61c6da79d3e5e4ea7831a4e5f0a2769cccdb41ddcc7ca0920e640aDeep Analysis: 4bf14434ef61c6da79d3e5e4ea7831a4e5f0a2769cccdb41ddcc7ca0920e640a
1. Build / RE
Toolchain
- Format: PE32 executable (GUI) Intel 80386 Mono/.NET assembly, 3 sections ^[file.txt]
- Compiler: CIL / .NET Framework 4.0.30319 ^[strings.txt:3530]
- Linker timestamp: Thu Apr 30 13:14:21 2020 UTC ^[pefile.txt:34] ^[rabin2-info.txt:11]
- Subsystem: Windows GUI ^[exiftool.json:26]
- Import table: Minimal — only
mscoree.dll!_CorExeMain^[pefile.txt:254]
Packing / Obfuscation
- Heavy name mangling: All types, methods, fields, and properties renamed to random alphanumeric strings (e.g.,
4LapsdJ3f2nRyw.6DpdEwf9.qLr02nNabGm5ck,yn7L2a.Xme8qY0g.zt7N0pSf). Pattern does not match ConfuserEx base64 (#=q…==) but achieves equivalent entropy. ^[r2:list_exports] ^[strings.txt:3532–5082] - Control-flow flattening: Decompilation produces large switch-dispatched state machines with exception-based branching, consistent with .NET obfuscator output. ^[r2:decompile entry0]
- String encryption:
flossrecovered no plaintext API names or C2 strings; only mscorlib and System.Drawing namespaces survive. ^[floss.txt] - Anti-analysis: capa flags anti-VM strings targeting Xen and system-check virtualization/sandbox evasion. ^[capa.txt:15–17]
- No native packer / no UPX: PE remains a valid .NET assembly.
.textsection entropy not anomalous for managed code.
Embedded Resources
- 20+ Bitmap resources: binwalk detects repeated
PC bitmap, Windows 3.x format, 76 x 76 x 24entries between offsets0x76940and0xD7E4A. ^[binwalk.txt:5–24] - System.Drawing references: Strings reveal
System.Drawing.BitmapandSystem.Drawing, Version=4.0.0.0repeated for each resource slot, indicating bitmap objects are materialized at runtime. ^[strings.txt:3070–3506] - ResourceReader manifest:
System.Resources.ResourceReaderandRuntimeResourceSetstrings confirm manifest-resource stream extraction. ^[strings.txt:3067] - Inference: The repeated 76×76×24 BMP structures are likely LSB-steganography carriers or encrypted payload slices, not genuine image assets. A typical .NET malware pattern.
Version-Info Masquerade
- OriginalFileName:
dgnjtnhgjf.exe(nonsense, likely auto-generated). ^[exiftool.json:42] - CompanyName / ProductName / FileDescription: Obfuscated gibberish (
J=:FEF32GGE5HDBCEG,94B;@F:?EE76G8A). Not a stolen legitimate identity — just randomized padding to populate the VS_VERSIONINFO block. ^[exiftool.json:36–38] - FileVersion:
21.19.1.278— fabricated, no correlation to any known product. ^[exiftool.json:27] - InternalName:
dgnjtnhgjf.exe^[exiftool.json:41]
Notable Functions
entry0(0x0040a474): Flattened dispatcher — pushes a state variable, branches via switch table, loops indefinitely until a return condition is met. No readable high-level logic in raw decompilation. ^[r2:decompile entry0]4LapsdJ3f2nRyw.6DpdEwf9: Largest class (~150+ methods) — likely the main orchestrator or decryption engine. Contains.ctor, file-write helpers, and thread-suspend wrappers. ^[r2:list_exports]
2. Deploy / ATT&CK
Note: CAPE detonation was skipped — no Windows guest exists in the lab. All TTPs below are inferred from static evidence (imports, strings, capa, binwalk). No runtime network IOCs, registry writes, or process trees are available.
TTPs Mapped
| Tactic | Technique | Evidence |
|---|---|---|
| Defense Evasion | T1620 Reflective Code Loading | Invoke, Assembly.Load, GetMethod strings + capa hit ^[capa.txt:15] ^[strings.txt:4233] |
| Defense Evasion | T1497.001 Virtualization Evasion | Anti-VM Xen strings flagged by capa ^[capa.txt:16–17] |
| Discovery | T1083 File and Directory Discovery | check file extension, check if file exists capa rules ^[capa.txt:18] |
| Execution | T1059.001 / T1059.003 | Suspected .NET in-memory assembly execution after resource decryption (static inference; no process tree observed) |
| Collection | T1025 Data from Removable Media | 20× bitmap resource slots suggest bulk payload or config extraction (static inference) |
| Defense Evasion | T1036.002 Masquerading | Version-info block with fabricated company/product strings ^[exiftool.json] |
Persistence
- No registry or scheduled-task strings observed statically. Persistence mechanism, if any, likely resides inside the decrypted bitmap payload and is not visible pre-runtime.
C2 / Comms
- No hardcoded IPs, domains, URLs, or port strings found in
strings.txtorfloss.txt. C2 configuration is almost certainly embedded in the encrypted bitmap resources and built at runtime.
Lateral Movement / Exfil
- No evidence from static analysis. Would require dynamic detonation to confirm.
Attribution
- Low confidence. The build traits (.NET 4.0, ConfuserEx-class obfuscation, bitmap-resource payload hiding) are commodity and overlap with multiple families (AsyncRAT, NanoCore, various stealers). The nonsensical version-info masquerade and
PO# SYF20069.exefilename suggest an adversary who does not invest in plausible branding — possibly a low-tier crimeware bundle. - No code-reuse signatures or linguistic markers. Not linked to any named family in the existing wiki corpus.
3. Summary
This sample is a .NET Framework PE32 loader protected by an unnamed (or custom-fork) .NET obfuscator that applies extreme name mangling, control-flow flattening, and string encryption. Its distinguishing feature is the embedding of ~20 small 76×76 bitmap resources that likely carry an encrypted secondary payload or C2 configuration via LSB steganography or stream-based decryption. Anti-VM and reflective-loading capabilities are confirmed statically. Without CAPE detonation, the final payload family and network footprint remain unknown. Treat as a previously unseen .NET steganographic loader variant.
Provenance
| Source | File |
|---|---|
| Static file-type | file.txt |
| PE headers | pefile.txt |
| radare2 analysis | rabin2-info.txt |
| FireEye floss | floss.txt |
| Mandiant capa | capa.txt |
| binwalk embedded scan | binwalk.txt |
| ExifTool metadata | exiftool.json |
| radare2 exports & functions | MCP list_exports, list_functions, decompile_function |
Confidence Assessment
- Family attribution: LOW — unique build signature, no known-family YARA matches beyond generic
PE_File_Generic. ^[yara.txt] - Steganography inference: MEDIUM — bitmap count, size uniformity, and System.Drawing runtime references are strong indicators, but no decoded payload recovered.
- Dynamic behaviour: NOT AVAILABLE — CAPE skipped, no runtime ground truth.