SYMBOLCOMMON_NAMEaka. SYNONYMS
win.decaf (Back to overview)

DECAF


Ransomware written in Go.

References
2021-10-28MorphisecHido Cohen, Michael Dereviashkin
@online{cohen:20211028:decaf:d22e18a, author = {Hido Cohen and Michael Dereviashkin}, title = {{DECAF Ransomware: A New Golang Threat Makes Its Appearance}}, date = {2021-10-28}, organization = {Morphisec}, url = {https://blog.morphisec.com/decaf-ransomware-a-new-golang-threat-makes-its-appearance}, language = {English}, urldate = {2021-11-03} } DECAF Ransomware: A New Golang Threat Makes Its Appearance
DECAF
Yara Rules
[TLP:WHITE] win_decaf_auto (20230125 | Detects win.decaf.)
rule win_decaf_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2023-01-25"
        version = "1"
        description = "Detects win.decaf."
        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.decaf"
        malpedia_rule_date = "20230124"
        malpedia_hash = "2ee0eebba83dce3d019a90519f2f972c0fcf9686"
        malpedia_version = "20230125"
        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 = { 90 4883f82e 7d31 0fb6540442 488d7001 4883fe2e 7355 }
            // n = 7, score = 100
            //   90                   | jne                 0x8d7
            //   4883f82e             | dec                 eax
            //   7d31                 | mov                 ecx, dword ptr [esp + 0x2b8]
            //   0fb6540442           | dec                 eax
            //   488d7001             | mov                 dword ptr [esp + 0x3b8], ecx
            //   4883fe2e             | dec                 eax
            //   7355                 | lea                 eax, [0x149fdf]

        $sequence_1 = { eb11 488d7818 488b8c24c0210000 e8???????? 488b4c2478 48894808 833d????????00 }
            // n = 7, score = 100
            //   eb11                 | dec                 eax
            //   488d7818             | lea                 eax, [0x16c81]
            //   488b8c24c0210000     | nop                 
            //   e8????????           |                     
            //   488b4c2478           | dec                 eax
            //   48894808             | mov                 dword ptr [esp + 0x18], eax
            //   833d????????00       |                     

        $sequence_2 = { b8d1ffffff 90 ffd1 488b08 4889c2 b833000000 ffd1 }
            // n = 7, score = 100
            //   b8d1ffffff           | mov                 eax, dword ptr [esp + 0x40]
            //   90                   | mov                 word ptr [edi + ebx], 0x222d
            //   ffd1                 | dec                 eax
            //   488b08               | mov                 edx, dword ptr [esp + 0x50]
            //   4889c2               | dec                 eax
            //   b833000000           | mov                 ebx, dword ptr [esp + 0x48]
            //   ffd1                 | dec                 esp

        $sequence_3 = { e8???????? 488d0594bb1400 488b5c2438 488d0ddc151700 bf07000000 0f1f00 e8???????? }
            // n = 7, score = 100
            //   e8????????           |                     
            //   488d0594bb1400       | mov                 dword ptr [eax + 8], ecx
            //   488b5c2438           | jne                 0x94
            //   488d0ddc151700       | dec                 eax
            //   bf07000000           | mov                 ecx, dword ptr [esp + 0x11f8]
            //   0f1f00               | dec                 eax
            //   e8????????           |                     

        $sequence_4 = { eb0c 488d3dce011700 e8???????? e8???????? 48891d???????? 833d????????00 7509 }
            // n = 7, score = 100
            //   eb0c                 | dec                 eax
            //   488d3dce011700       | mov                 edi, ecx
            //   e8????????           |                     
            //   e8????????           |                     
            //   48891d????????       |                     
            //   833d????????00       |                     
            //   7509                 | mov                 esi, 0xf

        $sequence_5 = { 7331 488d053e470600 4889d9 4889fb 4889f7 4c89c6 e8???????? }
            // n = 7, score = 100
            //   7331                 | mov                 edx, 0x10789e6f
            //   488d053e470600       | add                 bh, byte ptr [eax - 0x76b7ba4b]
            //   4889d9               | push                esp
            //   4889fb               | and                 al, 0x68
            //   4889f7               | movzx               edx, byte ptr [esp + 0x61]
            //   4c89c6               | mov                 byte ptr [esp + 0x59], dl
            //   e8????????           |                     

        $sequence_6 = { 90 c7442459aef5ccc5 0fb654245a 88542445 440fb644245c 4488442444 440fb64c245b }
            // n = 7, score = 100
            //   90                   | test                edx, edx
            //   c7442459aef5ccc5     | jle                 0x7de
            //   0fb654245a           | dec                 eax
            //   88542445             | mov                 dword ptr [esp + 0x28], edx
            //   440fb644245c         | xor                 eax, eax
            //   4488442444           | nop                 
            //   440fb64c245b         | jne                 0x7e4

        $sequence_7 = { c78424b2000000fa653403 66c78424b60000004496 0fb69424b5000000 88542450 440fb68424b3000000 448844244f 440fb68c24b7000000 }
            // n = 7, score = 100
            //   c78424b2000000fa653403     | dec    eax
            //   66c78424b60000004496     | lea    eax, [0x19c5cb]
            //   0fb69424b5000000     | dec                 eax
            //   88542450             | mov                 dword ptr [esp], eax
            //   440fb68424b3000000     | dec    eax
            //   448844244f           | mov                 esi, dword ptr [esp + 0x60]
            //   440fb68c24b7000000     | dec    eax

        $sequence_8 = { ba05000000 488d3de5f11800 eb08 488bbc2428020000 4889f8 4889d3 e8???????? }
            // n = 7, score = 100
            //   ba05000000           | dec                 eax
            //   488d3de5f11800       | mov                 eax, dword ptr [esp + 0x48]
            //   eb08                 | mov                 byte ptr [edi + ebx], 0xf9
            //   488bbc2428020000     | xor                 ecx, ecx
            //   4889f8               | dec                 eax
            //   4889d3               | mov                 edx, dword ptr [esp + 0x58]
            //   e8????????           |                     

        $sequence_9 = { e8???????? 6690 4885c9 7560 488b8c24d8010000 bf10000000 4889fe }
            // n = 7, score = 100
            //   e8????????           |                     
            //   6690                 | mov                 ebx, dword ptr [edi + 0x18]
            //   4885c9               | dec                 eax
            //   7560                 | lea                 eax, [0x14f379]
            //   488b8c24d8010000     | dec                 eax
            //   bf10000000           | mov                 edx, dword ptr [esp + 0xa8]
            //   4889fe               | dec                 eax

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