SYMBOLCOMMON_NAMEaka. SYNONYMS
win.morpheus (Back to overview)

Morpheus

aka: HellCat
VTCollection    

Ransomware. Identical samples (apart from note) operated by Morpheus and HellCat ransomware groups.

References
2025-05-14 ⋅ Zscaler ⋅ ThreatLabZ research team
Technical Analysis of TransferLoader
Morpheus TransferLoader
2025-03-13 ⋅ PICUS Security ⋅ Sıla Özeren Hacıoğlu
HellCat Ransomware: Exposing the TTPs of a Rising Ransomware Threat in 2025
Morpheus
2025-01-23 ⋅ SentinelOne ⋅ Jim Walter
HellCat and Morpheus | Two Brands, One Payload as Ransomware Affiliates Drop Identical Code
Morpheus
Yara Rules
[TLP:WHITE] win_morpheus_auto (20260917 | Detects win.morpheus.)
rule win_morpheus_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.morpheus."
        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.morpheus"
        malpedia_rule_date = "20260916"
        malpedia_hash = "53a643781c18e08f4a50949af60172d837a0b6f6"
        malpedia_version = "20260917"
        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 = { 488d8c2470030000 ff15???????? 488d15f90b0000 488d8c2470030000 ff15???????? 488d8c2470030000 }
            // n = 6, score = 200
            //   488d8c2470030000     | lea                 edx, [esp + 0x134]
            //   ff15????????         |                     
            //   488d15f90b0000       | dec                 eax
            //   488d8c2470030000     | mov                 ecx, dword ptr [esp + 0x58]
            //   ff15????????         |                     
            //   488d8c2470030000     | mov                 edx, 0x10000

        $sequence_1 = { eb7d c744244802000000 488b842490000000 4889442440 8b442450 }
            // n = 5, score = 200
            //   eb7d                 | dec                 esp
            //   c744244802000000     | mov                 eax, eax
            //   488b842490000000     | dec                 eax
            //   4889442440           | mov                 ecx, dword ptr [esp + 0x38]
            //   8b442450             | dec                 eax

        $sequence_2 = { 85c0 7426 c644242801 4c8b442430 ba00000100 488b0d???????? }
            // n = 6, score = 200
            //   85c0                 | inc                 ecx
            //   7426                 | mov                 ecx, 2
            //   c644242801           | mov                 eax, 0x5f
            //   4c8b442430           | mov                 word ptr [esp + 0xc0], ax
            //   ba00000100           | mov                 eax, 0x2d
            //   488b0d????????       |                     

        $sequence_3 = { b902000000 486bc900 488b542458 6689040a b802000000 486bc001 }
            // n = 6, score = 200
            //   b902000000           | dec                 eax
            //   486bc900             | cmp                 dword ptr [esp + 0x110], 0
            //   488b542458           | je                  0x158
            //   6689040a             | mov                 eax, dword ptr [esp + 0x44]
            //   b802000000           | xor                 ecx, ecx
            //   486bc001             | dec                 eax

        $sequence_4 = { 4883c002 4889842468010000 83bc241401000000 740c 8b442444 ffc0 89442444 }
            // n = 7, score = 200
            //   4883c002             | dec                 eax
            //   4889842468010000     | mov                 eax, dword ptr [esp + 0x68]
            //   83bc241401000000     | movzx               eax, word ptr [eax]
            //   740c                 | dec                 eax
            //   8b442444             | mov                 eax, dword ptr [esp + 0x70]
            //   ffc0                 | movzx               eax, word ptr [eax]
            //   89442444             | test                eax, eax

        $sequence_5 = { c744246000000000 eb14 8b442460 ffc0 89442460 }
            // n = 5, score = 200
            //   c744246000000000     | dec                 eax
            //   eb14                 | mov                 eax, dword ptr [esp + 0x60]
            //   8b442460             | dec                 eax
            //   ffc0                 | add                 eax, 2
            //   89442460             | dec                 eax

        $sequence_6 = { 85c0 7412 488b842488000000 4889842490010000 eb25 488b842488000000 }
            // n = 6, score = 200
            //   85c0                 | mov                 eax, eax
            //   7412                 | mov                 edx, 8
            //   488b842488000000     | mov                 eax, dword ptr [esp + 0x30]
            //   4889842490010000     | inc                 eax
            //   eb25                 | mov                 dword ptr [esp + 0x30], eax
            //   488b842488000000     | jmp                 0x1761

        $sequence_7 = { 750a c744245801000000 eb08 c744245800000000 0fb6442458 88442422 }
            // n = 6, score = 200
            //   750a                 | jmp                 0x1382
            //   c744245801000000     | movzx               eax, byte ptr [esp + 0x28]
            //   eb08                 | test                eax, eax
            //   c744245800000000     | jne                 0x1388
            //   0fb6442458           | dec                 eax
            //   88442422             | mov                 ecx, dword ptr [esp + 0x420]

        $sequence_8 = { 88442422 0fb6442422 85c0 7405 e9???????? 488b842420040000 4889842458010000 }
            // n = 7, score = 200
            //   88442422             | dec                 eax
            //   0fb6442422           | mov                 dword ptr [esp + 0x100], eax
            //   85c0                 | dec                 eax
            //   7405                 | mov                 eax, dword ptr [esp + 0x108]
            //   e9????????           |                     
            //   488b842420040000     | dec                 eax
            //   4889842458010000     | add                 eax, 2

        $sequence_9 = { 488b842480010000 4883c002 4889842480010000 83bc243001000000 740c }
            // n = 5, score = 200
            //   488b842480010000     | dec                 eax
            //   4883c002             | sub                 eax, 0xd
            //   4889842480010000     | dec                 eax
            //   83bc243001000000     | mov                 dword ptr [esp + 0x100], eax
            //   740c                 | inc                 ebp

    condition:
        7 of them and filesize < 74752
}
Download all Yara Rules