SYMBOLCOMMON_NAMEaka. SYNONYMS
win.nim_blackout (Back to overview)

NimBlackout

VTCollection    

According to its author, NimBlackout is an adaptation of the @Blackout project originally developed in C++ by @ZeroMemoryEx, which consists of removing AV/EDRs using the gmer (BYOVD) driver. The main reason for this project was to understand how BYOVD attacks work, and then to provide a valid PoC developed in Nim.

References
2023-07-06Github (Helixo32)Helixo32
NimBlackout
NimBlackout
Yara Rules
[TLP:WHITE] win_nim_blackout_auto (20230808 | Detects win.nim_blackout.)
rule win_nim_blackout_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2023-12-06"
        version = "1"
        description = "Detects win.nim_blackout."
        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.nim_blackout"
        malpedia_rule_date = "20231130"
        malpedia_hash = "fc8a0e9f343f6d6ded9e7df1a64dac0cc68d7351"
        malpedia_version = "20230808"
        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 = { 4889c8 83e001 84c0 7405 e8???????? 488b45f0 4885c0 }
            // n = 7, score = 100
            //   4889c8               | dec                 eax
            //   83e001               | mov                 eax, dword ptr [ebp + 0x28]
            //   84c0                 | dec                 eax
            //   7405                 | mov                 edx, dword ptr [ebp + 0xf8]
            //   e8????????           |                     
            //   488b45f0             | dec                 eax
            //   4885c0               | mov                 eax, dword ptr [ebp + 0x40]

        $sequence_1 = { 48c7401800000000 e9???????? 90 48c745e0c6000000 488d057d5c0200 488945e8 }
            // n = 6, score = 100
            //   48c7401800000000     | lea                 eax, [0x236a9]
            //   e9????????           |                     
            //   90                   | dec                 eax
            //   48c745e0c6000000     | mov                 dword ptr [ebp - 0x38], eax
            //   488d057d5c0200       | dec                 eax
            //   488945e8             | lea                 eax, [0x23159]

        $sequence_2 = { 488d057ad80000 488905???????? 488d05d85b0200 488905???????? c605????????01 48c705????????60000000 }
            // n = 6, score = 100
            //   488d057ad80000       | dec                 eax
            //   488905????????       |                     
            //   488d05d85b0200       | mov                 dword ptr [ebp - 0x28], eax
            //   488905????????       |                     
            //   c605????????01       |                     
            //   48c705????????60000000     |     

        $sequence_3 = { e8???????? 48c745e0e7000000 488d05c37e0200 488945e8 488b4510 488b00 ba08000000 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   48c745e0e7000000     | lea                 eax, [0x18b11]
            //   488d05c37e0200       | dec                 eax
            //   488945e8             | mov                 dword ptr [ebp - 0x48], eax
            //   488b4510             | dec                 eax
            //   488b00               | lea                 eax, [0x18ab8]
            //   ba08000000           | dec                 eax

        $sequence_4 = { e9???????? 90 48c785a800000000000000 48c785a000000000000000 48c7450088010000 488d05885b0100 48894508 }
            // n = 7, score = 100
            //   e9????????           |                     
            //   90                   | dec                 eax
            //   48c785a800000000000000     | lea    eax, [ebp - 0x30]
            //   48c785a000000000000000     | dec    eax
            //   48c7450088010000     | lea                 eax, [0xd84f]
            //   488d05885b0100       | dec                 eax
            //   48894508             | mov                 dword ptr [ebp - 0x28], eax

        $sequence_5 = { 488945c8 488b4de8 488b55e0 4889d0 4801c0 4801d0 48c1e003 }
            // n = 7, score = 100
            //   488945c8             | mov                 dword ptr [ebx + 0x24], eax
            //   488b4de8             | inc                 ecx
            //   488b55e0             | lea                 eax, [esi - 1]
            //   4889d0               | inc                 ebp
            //   4801c0               | test                esi, esi
            //   4801d0               | jg                  0x71b
            //   48c1e003             | dec                 eax

        $sequence_6 = { 488b1402 4889c8 4801c0 4801c8 48c1e004 4889c1 }
            // n = 6, score = 100
            //   488b1402             | dec                 eax
            //   4889c8               | lea                 eax, [0x2292f]
            //   4801c0               | dec                 eax
            //   4801c8               | mov                 dword ptr [ebp - 0x48], eax
            //   48c1e004             | dec                 eax
            //   4889c1               | mov                 eax, dword ptr [ebp - 8]

        $sequence_7 = { 488d0542460200 488945c8 488b4510 488b55f8 4889d1 48c1e105 488b55f0 }
            // n = 7, score = 100
            //   488d0542460200       | dec                 eax
            //   488945c8             | mov                 dword ptr [ebp], 0
            //   488b4510             | dec                 eax
            //   488b55f8             | mov                 dword ptr [ebp - 8], 0
            //   4889d1               | dec                 eax
            //   48c1e105             | mov                 dword ptr [ebp - 0x30], 0x111
            //   488b55f0             | dec                 eax

        $sequence_8 = { 488b4588 488945f0 eb49 90 48c745d033000000 488d05f48e0100 488945d8 }
            // n = 7, score = 100
            //   488b4588             | mov                 eax, dword ptr [ebp + 0x18]
            //   488945f0             | dec                 eax
            //   eb49                 | cwde                
            //   90                   | jne                 0x1c7
            //   48c745d033000000     | dec                 eax
            //   488d05f48e0100       | cmp                 dword ptr [ebp - 0x10], 0
            //   488945d8             | js                  0x15f

        $sequence_9 = { 48894508 48c785f800000000000000 48c7450084010000 488d05bf5c0100 48894508 4883bdf000000000 0f84ff000000 }
            // n = 7, score = 100
            //   48894508             | mov                 word ptr [ebp - 0x20], 0
            //   48c785f800000000000000     | dec    eax
            //   48c7450084010000     | lea                 eax, [ebp - 0x40]
            //   488d05bf5c0100       | dec                 eax
            //   48894508             | mov                 ecx, eax
            //   4883bdf000000000     | dec                 eax
            //   0f84ff000000         | mov                 dword ptr [ebp - 0x30], 0x224

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