win.ramnit (Back to overview)

Ramnit

aka: Nimnul
URLhaus    

There is no description at this point.

References
http://contagiodump.blogspot.com/2012/01/blackhole-ramnit-samples-and-analysis.html
http://www.nao-sec.org/2018/01/analyzing-ramnit-used-in-seamless.html
http://www.vkremez.com/2018/02/deeper-dive-into-ramnit-banker-vnc-ifsb.html
https://malwarebreakdown.com/2017/08/23/the-seamless-campaign-isnt-losing-any-steam/
https://research.checkpoint.com/ramnits-network-proxy-servers/
https://www.cert.pl/en/news/single/ramnit-in-depth-analysis/
https://www.symantec.com/content/dam/symantec/docs/security-center/white-papers/w32-ramnit-analysis-15-en.pdf
https://www.youtube.com/watch?v=N4f2e8Mygag
Yara Rules
[TLP:WHITE] win_ramnit_auto (20190620 | autogenerated rule brought to you by yara-signator)
rule win_ramnit_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2019-07-05"
        version = "1"
        description = "autogenerated rule brought to you by yara-signator"
        tool = "yara-signator 0.2a"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.ramnit"
        malpedia_version = "20190620"
        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 / approach 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 = { e8???????? 83f800 74?? 8b7508 8906 6a00 }
            // n = 6, score = 3800
            //   e8????????           |                     
            //   83f800               | cmp                 eax, 0
            //   74??                 |                     
            //   8b7508               | mov                 esi, dword ptr [ebp + 8]
            //   8906                 | mov                 dword ptr [esi], eax
            //   6a00                 | push                0

        $sequence_1 = { 50 57 56 e8???????? eb?? 6a00 50 }
            // n = 7, score = 3800
            //   50                   | push                eax
            //   57                   | push                edi
            //   56                   | push                esi
            //   e8????????           |                     
            //   eb??                 |                     
            //   6a00                 | push                0
            //   50                   | push                eax

        $sequence_2 = { 6a00 6a03 6a00 6a03 6800000080 ff750c e8???????? }
            // n = 7, score = 3800
            //   6a00                 | push                0
            //   6a03                 | push                3
            //   6a00                 | push                0
            //   6a03                 | push                3
            //   6800000080           | push                0x80000000
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   e8????????           |                     

        $sequence_3 = { eb?? 8a07 50 e8???????? }
            // n = 4, score = 3800
            //   eb??                 |                     
            //   8a07                 | mov                 al, byte ptr [edi]
            //   50                   | push                eax
            //   e8????????           |                     

        $sequence_4 = { 48 59 5f 5e }
            // n = 4, score = 3800
            //   48                   | dec                 eax
            //   59                   | pop                 ecx
            //   5f                   | pop                 edi
            //   5e                   | pop                 esi

        $sequence_5 = { 50 e8???????? ba00000000 8b7518 8b7d10 }
            // n = 5, score = 3800
            //   50                   | push                eax
            //   e8????????           |                     
            //   ba00000000           | mov                 edx, 0
            //   8b7518               | mov                 esi, dword ptr [ebp + 0x18]
            //   8b7d10               | mov                 edi, dword ptr [ebp + 0x10]

        $sequence_6 = { 8bec 52 53 6a00 6a00 6a00 }
            // n = 6, score = 3800
            //   8bec                 | mov                 ebp, esp
            //   52                   | push                edx
            //   53                   | push                ebx
            //   6a00                 | push                0
            //   6a00                 | push                0
            //   6a00                 | push                0

        $sequence_7 = { 74?? 8bd8 6a00 8d45f8 50 }
            // n = 5, score = 3800
            //   74??                 |                     
            //   8bd8                 | mov                 ebx, eax
            //   6a00                 | push                0
            //   8d45f8               | lea                 eax, [ebp - 8]
            //   50                   | push                eax

        $sequence_8 = { eb?? 33c0 5d c20400 55 8bec 83ec14 }
            // n = 7, score = 2100
            //   eb??                 |                     
            //   33c0                 | xor                 eax, eax
            //   5d                   | pop                 ebp
            //   c20400               | ret                 4
            //   55                   | push                ebp
            //   8bec                 | mov                 ebp, esp
            //   83ec14               | sub                 esp, 0x14

        $sequence_9 = { e8???????? c9 c21000 55 8bec 83ec18 }
            // n = 6, score = 900
            //   e8????????           |                     
            //   c9                   | leave               
            //   c21000               | ret                 0x10
            //   55                   | push                ebp
            //   8bec                 | mov                 ebp, esp
            //   83ec18               | sub                 esp, 0x18

        $sequence_10 = { ffd3 85c0 74?? 50 e8???????? }
            // n = 5, score = 500
            //   ffd3                 | call                ebx
            //   85c0                 | test                eax, eax
            //   74??                 |                     
            //   50                   | push                eax
            //   e8????????           |                     

        $sequence_11 = { 8975e4 8975e8 ff15???????? 8bf8 }
            // n = 4, score = 500
            //   8975e4               | mov                 dword ptr [ebp - 0x1c], esi
            //   8975e8               | mov                 dword ptr [ebp - 0x18], esi
            //   ff15????????         |                     
            //   8bf8                 | mov                 edi, eax

        $sequence_12 = { ff7514 ff7510 ff750c ff7508 e8???????? 8945f4 }
            // n = 6, score = 400
            //   ff7514               | push                dword ptr [ebp + 0x14]
            //   ff7510               | push                dword ptr [ebp + 0x10]
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   ff7508               | push                dword ptr [ebp + 8]
            //   e8????????           |                     
            //   8945f4               | mov                 dword ptr [ebp - 0xc], eax

        $sequence_13 = { 51 ff7514 ff7510 ff750c ff7508 ff15???????? }
            // n = 6, score = 400
            //   51                   | push                ecx
            //   ff7514               | push                dword ptr [ebp + 0x14]
            //   ff7510               | push                dword ptr [ebp + 0x10]
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   ff7508               | push                dword ptr [ebp + 8]
            //   ff15????????         |                     

        $sequence_14 = { ff7518 ff7514 ff7510 ff750c ff7508 e8???????? 8945f4 }
            // n = 7, score = 400
            //   ff7518               | push                dword ptr [ebp + 0x18]
            //   ff7514               | push                dword ptr [ebp + 0x14]
            //   ff7510               | push                dword ptr [ebp + 0x10]
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   ff7508               | push                dword ptr [ebp + 8]
            //   e8????????           |                     
            //   8945f4               | mov                 dword ptr [ebp - 0xc], eax

        $sequence_15 = { ff7510 ff750c ff7508 e8???????? 8945f4 }
            // n = 5, score = 400
            //   ff7510               | push                dword ptr [ebp + 0x10]
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   ff7508               | push                dword ptr [ebp + 8]
            //   e8????????           |                     
            //   8945f4               | mov                 dword ptr [ebp - 0xc], eax

    condition:
        7 of them
}
[TLP:WHITE] win_ramnit_w0   (20180226 | Detects Ramnit banking malware VNC module)
rule win_ramnit_w0 {
    meta:
        author = "@VK_Intel"
        description = "Detects Ramnit banking malware VNC module"
        reference = "http://www.vkremez.com/2018/02/deeper-dive-into-ramnit-banker-vnc-ifsb.html"
        hash = "888b2c614567fb5b4474ddeeb453f8cd9f44d72efb325f7e3652fd0f748c08f1"
        malpedia_version = "20180226"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"
    strings:
        $s0 = "Failed mapping a section to the target process, status 0x%x" fullword ascii
        $s1 = "Unable to map the section into the target process, error %u" fullword ascii
        $s2 = "Unable to resolve target process import, error %u" fullword ascii
        $s3 = "No module found for the target process (%u) architecture" fullword ascii
        $s4 = "A section of %u bytes mapped to the target process at 0x%p" fullword ascii
        $s5 = "CreateProcessAsUserA %s->%s failed" fullword ascii
        $s6 = "Dep PsSupGetProcessModules, ModCount = %d " fullword ascii
        $s7 = "ActiveDll: PatchProcessMemory failed, error: %u" fullword ascii
        $s8 = "CreateProcessAsUserW %S->%S failed" fullword ascii
        $s9 = "AcInjectDll: GetOEP failed, error: %u" fullword ascii
        $s10 = "Shared section mapped at 0x%p. Starting within VNC session process." fullword ascii
        $s11 = "CreateToolhelp32Snapshot (of processes) failed err=%lu" fullword ascii
    condition:
        all of them
}
Download all Yara Rules