Mandiant associates this with UNC4191, this malware is a launcher for NCAT to establish a reverse tunnel.
rule win_bluehaze_auto { meta: author = "Felix Bilstein - yara-signator at cocacoding dot com" date = "2026-05-04" version = "1" description = "Detects win.bluehaze." info = "autogenerated rule brought to you by yara-signator" tool = "yara-signator v0.6.0" signator_config = "callsandjumps;datarefs;binvalue" malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.bluehaze" malpedia_rule_date = "20260422" malpedia_hash = "a182e35da64e6d71cb55f125c4d4225196523f14" malpedia_version = "20260504" malpedia_license = "CC BY-SA 4.0" malpedia_sharing = "TLP:WHITE" /* DISCLAIMER * The strings used in this rule have been automatically selected from the * disassembly of memory dumps and unpacked files, using YARA-Signator. * The code and documentation is published here: * https://github.com/fxb-cocacoding/yara-signator * As Malpedia is used as data source, please note that for a given * number of families, only single samples are documented. * This likely impacts the degree of generalization these rules will offer. * Take the described generation method also into consideration when you * apply the rules in your use cases and assign them confidence levels. */ strings: $sequence_0 = { c645fc18 e8???????? 8b08 8b5104 83c408 f644020c06 } // n = 6, score = 100 // c645fc18 | mov byte ptr [ebp - 4], 0x18 // e8???????? | // 8b08 | mov ecx, dword ptr [eax] // 8b5104 | mov edx, dword ptr [ecx + 4] // 83c408 | add esp, 8 // f644020c06 | test byte ptr [edx + eax + 0xc], 6 $sequence_1 = { e9???????? 68???????? 8d8db0fbffff e8???????? 85c0 753c 6a30 } // n = 7, score = 100 // e9???????? | // 68???????? | // 8d8db0fbffff | lea ecx, [ebp - 0x450] // e8???????? | // 85c0 | test eax, eax // 753c | jne 0x3e // 6a30 | push 0x30 $sequence_2 = { 895e10 8bc7 8b4df4 64890d00000000 59 5f 5e } // n = 7, score = 100 // 895e10 | mov dword ptr [esi + 0x10], ebx // 8bc7 | mov eax, edi // 8b4df4 | mov ecx, dword ptr [ebp - 0xc] // 64890d00000000 | mov dword ptr fs:[0], ecx // 59 | pop ecx // 5f | pop edi // 5e | pop esi $sequence_3 = { 8bf0 3b772c 75ac 5e 8b07 8b5048 8bcf } // n = 7, score = 100 // 8bf0 | mov esi, eax // 3b772c | cmp esi, dword ptr [edi + 0x2c] // 75ac | jne 0xffffffae // 5e | pop esi // 8b07 | mov eax, dword ptr [edi] // 8b5048 | mov edx, dword ptr [eax + 0x48] // 8bcf | mov ecx, edi $sequence_4 = { ffd2 8b10 8bc8 8b4240 53 ffd0 8b4dfc } // n = 7, score = 100 // ffd2 | call edx // 8b10 | mov edx, dword ptr [eax] // 8bc8 | mov ecx, eax // 8b4240 | mov eax, dword ptr [edx + 0x40] // 53 | push ebx // ffd0 | call eax // 8b4dfc | mov ecx, dword ptr [ebp - 4] $sequence_5 = { 8d4e08 c745e40f000000 895de0 c645d000 e8???????? 8b7e0c 89856cfeffff } // n = 7, score = 100 // 8d4e08 | lea ecx, [esi + 8] // c745e40f000000 | mov dword ptr [ebp - 0x1c], 0xf // 895de0 | mov dword ptr [ebp - 0x20], ebx // c645d000 | mov byte ptr [ebp - 0x30], 0 // e8???????? | // 8b7e0c | mov edi, dword ptr [esi + 0xc] // 89856cfeffff | mov dword ptr [ebp - 0x194], eax $sequence_6 = { 51 8bd8 e8???????? 8bf0 83c414 85f6 7407 } // n = 7, score = 100 // 51 | push ecx // 8bd8 | mov ebx, eax // e8???????? | // 8bf0 | mov esi, eax // 83c414 | add esp, 0x14 // 85f6 | test esi, esi // 7407 | je 9 $sequence_7 = { 8d8df0feffff e9???????? c3 8b8574feffff 83e002 0f8412000000 83a574fefffffd } // n = 7, score = 100 // 8d8df0feffff | lea ecx, [ebp - 0x110] // e9???????? | // c3 | ret // 8b8574feffff | mov eax, dword ptr [ebp - 0x18c] // 83e002 | and eax, 2 // 0f8412000000 | je 0x18 // 83a574fefffffd | and dword ptr [ebp - 0x18c], 0xfffffffd $sequence_8 = { 50 8d8d80feffff c645fc04 e8???????? 83bdccfeffff10 c645fc03 720f } // n = 7, score = 100 // 50 | push eax // 8d8d80feffff | lea ecx, [ebp - 0x180] // c645fc04 | mov byte ptr [ebp - 4], 4 // e8???????? | // 83bdccfeffff10 | cmp dword ptr [ebp - 0x134], 0x10 // c645fc03 | mov byte ptr [ebp - 4], 3 // 720f | jb 0x11 $sequence_9 = { 897dc8 8b7db4 c745cc0f000000 c645b800 83fb01 0f8716feffff be10000000 } // n = 7, score = 100 // 897dc8 | mov dword ptr [ebp - 0x38], edi // 8b7db4 | mov edi, dword ptr [ebp - 0x4c] // c745cc0f000000 | mov dword ptr [ebp - 0x34], 0xf // c645b800 | mov byte ptr [ebp - 0x48], 0 // 83fb01 | cmp ebx, 1 // 0f8716feffff | ja 0xfffffe1c // be10000000 | mov esi, 0x10 condition: 7 of them and filesize < 424960 }
If your designated proposal does not fit in any other category, feel free to write a free-text in the comment field below. Changes regarding references should be proposed on the Malpedia library page.
Your suggestion will be reviewed before being published. Thank you for contributing!
YYYY-MM-DD
YYYY-MM
YYYY