win.andromeda (Back to overview)

Andromeda

aka: Gamarue, B106-Gamarue, B67-SS-Gamarue, b66

Actor(s): Operation C-Major

URLhaus    

There is no description at this point.

References
http://blog.morphisec.com/andromeda-tactics-analyzed
http://resources.infosecinstitute.com/andromeda-bot-analysis-part-two/
http://resources.infosecinstitute.com/andromeda-bot-analysis/
http://www.0xebfe.net/blog/2013/03/30/fooled-by-andromeda/
https://blog.avast.com/andromeda-under-the-microscope
https://blogs.technet.microsoft.com/mmpc/2017/12/04/microsoft-teams-up-with-law-enforcement-and-other-partners-to-disrupt-gamarue-andromeda/
https://byte-atlas.blogspot.ch/2015/04/kf-andromeda-bruteforcing.html
https://eternal-todo.com/blog/andromeda-gamarue-loves-json
https://eternal-todo.com/blog/yet-another-andromeda-gamarue-analysis
https://www.europol.europa.eu/newsroom/news/andromeda-botnet-dismantled-in-international-cyber-operation
https://www.proofpoint.com/sites/default/files/proofpoint-operation-transparent-tribe-threat-insight-en.pdf
https://www.virusbulletin.com/virusbulletin/2013/08/andromeda-2-7-features
https://www.virusbulletin.com/virusbulletin/2018/02/review-evolution-andromeda-over-years-we-say-goodbye/
Yara Rules
[TLP:WHITE] win_andromeda_auto (20190620 | autogenerated rule brought to you by yara-signator)
rule win_andromeda_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.andromeda"
        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 = { 43 3b5d0c 74?? eb?? 33c0 }
            // n = 5, score = 800
            //   43                   | inc                 ebx
            //   3b5d0c               | cmp                 ebx, dword ptr [ebp + 0xc]
            //   74??                 |                     
            //   eb??                 |                     
            //   33c0                 | xor                 eax, eax

        $sequence_1 = { 02d6 81e2ff000000 368a942a00ffffff 301439 }
            // n = 4, score = 800
            //   02d6                 | add                 dl, dh
            //   81e2ff000000         | and                 edx, 0xff
            //   368a942a00ffffff     | mov                 dl, byte ptr ss:[edx + ebp - 0x100]
            //   301439               | xor                 byte ptr [ecx + edi], dl

        $sequence_2 = { 02c2 020433 368ab42800ffffff 3688b42900ffffff 3688942800ffffff }
            // n = 5, score = 800
            //   02c2                 | add                 al, dl
            //   020433               | add                 al, byte ptr [ebx + esi]
            //   368ab42800ffffff     | mov                 dh, byte ptr ss:[eax + ebp - 0x100]
            //   3688b42900ffffff     | mov                 byte ptr ss:[ecx + ebp - 0x100], dh
            //   3688942800ffffff     | mov                 byte ptr ss:[eax + ebp - 0x100], dl

        $sequence_3 = { 3688b42800ffffff 3688942b00ffffff 02d6 81e2ff000000 368a942a00ffffff 301439 }
            // n = 6, score = 800
            //   3688b42800ffffff     | mov                 byte ptr ss:[eax + ebp - 0x100], dh
            //   3688942b00ffffff     | mov                 byte ptr ss:[ebx + ebp - 0x100], dl
            //   02d6                 | add                 dl, dh
            //   81e2ff000000         | and                 edx, 0xff
            //   368a942a00ffffff     | mov                 dl, byte ptr ss:[edx + ebp - 0x100]
            //   301439               | xor                 byte ptr [ecx + edi], dl

        $sequence_4 = { 81c400ffffff 60 b940000000 8d7dfc b8fcfdfeff fd ab }
            // n = 7, score = 800
            //   81c400ffffff         | add                 esp, 0xffffff00
            //   60                   | pushal              
            //   b940000000           | mov                 ecx, 0x40
            //   8d7dfc               | lea                 edi, [ebp - 4]
            //   b8fcfdfeff           | mov                 eax, 0xfffefdfc
            //   fd                   | std                 
            //   ab                   | stosd               dword ptr es:[edi], eax

        $sequence_5 = { 33c0 8b7508 33db 368a942900ffffff 02c2 020433 }
            // n = 6, score = 800
            //   33c0                 | xor                 eax, eax
            //   8b7508               | mov                 esi, dword ptr [ebp + 8]
            //   33db                 | xor                 ebx, ebx
            //   368a942900ffffff     | mov                 dl, byte ptr ss:[ecx + ebp - 0x100]
            //   02c2                 | add                 al, dl
            //   020433               | add                 al, byte ptr [ebx + esi]

        $sequence_6 = { 81e2ff000000 368a942a00ffffff 301439 41 }
            // n = 4, score = 800
            //   81e2ff000000         | and                 edx, 0xff
            //   368a942a00ffffff     | mov                 dl, byte ptr ss:[edx + ebp - 0x100]
            //   301439               | xor                 byte ptr [ecx + edi], dl
            //   41                   | inc                 ecx

        $sequence_7 = { 3688b42800ffffff 3688942b00ffffff 02d6 81e2ff000000 368a942a00ffffff }
            // n = 5, score = 800
            //   3688b42800ffffff     | mov                 byte ptr ss:[eax + ebp - 0x100], dh
            //   3688942b00ffffff     | mov                 byte ptr ss:[ebx + ebp - 0x100], dl
            //   02d6                 | add                 dl, dh
            //   81e2ff000000         | and                 edx, 0xff
            //   368a942a00ffffff     | mov                 dl, byte ptr ss:[edx + ebp - 0x100]

        $sequence_8 = { 8a06 33c9 3c5a 0f9ec1 33d2 3c41 }
            // n = 6, score = 400
            //   8a06                 | mov                 al, byte ptr [esi]
            //   33c9                 | xor                 ecx, ecx
            //   3c5a                 | cmp                 al, 0x5a
            //   0f9ec1               | setle               cl
            //   33d2                 | xor                 edx, edx
            //   3c41                 | cmp                 al, 0x41

        $sequence_9 = { 75?? 0fb64601 84c0 79?? 0d00ffffff }
            // n = 5, score = 400
            //   75??                 |                     
            //   0fb64601             | movzx               eax, byte ptr [esi + 1]
            //   84c0                 | test                al, al
            //   79??                 |                     
            //   0d00ffffff           | or                  eax, 0xffffff00

        $sequence_10 = { 0f9ec1 33d2 3c41 0f9dc2 }
            // n = 4, score = 400
            //   0f9ec1               | setle               cl
            //   33d2                 | xor                 edx, edx
            //   3c41                 | cmp                 al, 0x41
            //   0f9dc2               | setge               dl

        $sequence_11 = { 8a06 33c9 3c5a 0f9ec1 33d2 3c41 0f9dc2 }
            // n = 7, score = 400
            //   8a06                 | mov                 al, byte ptr [esi]
            //   33c9                 | xor                 ecx, ecx
            //   3c5a                 | cmp                 al, 0x5a
            //   0f9ec1               | setle               cl
            //   33d2                 | xor                 edx, edx
            //   3c41                 | cmp                 al, 0x41
            //   0f9dc2               | setge               dl

        $sequence_12 = { 33d2 3c41 0f9dc2 85ca }
            // n = 4, score = 400
            //   33d2                 | xor                 edx, edx
            //   3c41                 | cmp                 al, 0x41
            //   0f9dc2               | setge               dl
            //   85ca                 | test                edx, ecx

        $sequence_13 = { 3c41 0f9dc2 85ca 74?? 0420 8806 }
            // n = 6, score = 400
            //   3c41                 | cmp                 al, 0x41
            //   0f9dc2               | setge               dl
            //   85ca                 | test                edx, ecx
            //   74??                 |                     
            //   0420                 | add                 al, 0x20
            //   8806                 | mov                 byte ptr [esi], al

        $sequence_14 = { 8a06 33c9 3c5a 0f9ec1 33d2 }
            // n = 5, score = 400
            //   8a06                 | mov                 al, byte ptr [esi]
            //   33c9                 | xor                 ecx, ecx
            //   3c5a                 | cmp                 al, 0x5a
            //   0f9ec1               | setle               cl
            //   33d2                 | xor                 edx, edx

        $sequence_15 = { 33d2 3c41 0f9dc2 85ca 74?? }
            // n = 5, score = 400
            //   33d2                 | xor                 edx, edx
            //   3c41                 | cmp                 al, 0x41
            //   0f9dc2               | setge               dl
            //   85ca                 | test                edx, ecx
            //   74??                 |                     

        $sequence_16 = { 6a02 e8???????? 8945f0 83f8ff 74?? }
            // n = 5, score = 300
            //   6a02                 | push                2
            //   e8????????           |                     
            //   8945f0               | mov                 dword ptr [ebp - 0x10], eax
            //   83f8ff               | cmp                 eax, -1
            //   74??                 |                     

        $sequence_17 = { e8???????? c7459c44000000 8945d4 8945d8 8945dc }
            // n = 5, score = 200
            //   e8????????           |                     
            //   c7459c44000000       | mov                 dword ptr [ebp - 0x64], 0x44
            //   8945d4               | mov                 dword ptr [ebp - 0x2c], eax
            //   8945d8               | mov                 dword ptr [ebp - 0x28], eax
            //   8945dc               | mov                 dword ptr [ebp - 0x24], eax

        $sequence_18 = { 66c745e00200 68401f0000 e8???????? 668945e2 c745e400000000 }
            // n = 5, score = 200
            //   66c745e00200         | mov                 word ptr [ebp - 0x20], 2
            //   68401f0000           | push                0x1f40
            //   e8????????           |                     
            //   668945e2             | mov                 word ptr [ebp - 0x1e], ax
            //   c745e400000000       | mov                 dword ptr [ebp - 0x1c], 0

        $sequence_19 = { 6a05 ff75f0 e8???????? 83f8ff 74?? }
            // n = 5, score = 200
            //   6a05                 | push                5
            //   ff75f0               | push                dword ptr [ebp - 0x10]
            //   e8????????           |                     
            //   83f8ff               | cmp                 eax, -1
            //   74??                 |                     

        $sequence_20 = { 66c745cc0000 c745c801010000 8d458c 50 8d459c }
            // n = 5, score = 200
            //   66c745cc0000         | mov                 word ptr [ebp - 0x34], 0
            //   c745c801010000       | mov                 dword ptr [ebp - 0x38], 0x101
            //   8d458c               | lea                 eax, [ebp - 0x74]
            //   50                   | push                eax
            //   8d459c               | lea                 eax, [ebp - 0x64]

        $sequence_21 = { e8???????? 6a06 ff75f8 e8???????? 8d45f4 50 6806000200 }
            // n = 7, score = 200
            //   e8????????           |                     
            //   6a06                 | push                6
            //   ff75f8               | push                dword ptr [ebp - 8]
            //   e8????????           |                     
            //   8d45f4               | lea                 eax, [ebp - 0xc]
            //   50                   | push                eax
            //   6806000200           | push                0x20006

        $sequence_22 = { 68401f0000 e8???????? 668945e2 c745e400000000 6a00 6a00 6a00 }
            // n = 7, score = 200
            //   68401f0000           | push                0x1f40
            //   e8????????           |                     
            //   668945e2             | mov                 word ptr [ebp - 0x1e], ax
            //   c745e400000000       | mov                 dword ptr [ebp - 0x1c], 0
            //   6a00                 | push                0
            //   6a00                 | push                0
            //   6a00                 | push                0

        $sequence_23 = { ff75f8 e8???????? 8d45f4 50 6806000200 6a00 }
            // n = 6, score = 200
            //   ff75f8               | push                dword ptr [ebp - 8]
            //   e8????????           |                     
            //   8d45f4               | lea                 eax, [ebp - 0xc]
            //   50                   | push                eax
            //   6806000200           | push                0x20006
            //   6a00                 | push                0

        $sequence_24 = { 69db055a877b 03c1 81f736424904 894514 81cfc88ca632 ff5638 }
            // n = 6, score = 100
            //   69db055a877b         | imul                ebx, ebx, 0x7b875a05
            //   03c1                 | add                 eax, ecx
            //   81f736424904         | xor                 edi, 0x4494236
            //   894514               | mov                 dword ptr [ebp + 0x14], eax
            //   81cfc88ca632         | or                  edi, 0x32a68cc8
            //   ff5638               | call                dword ptr [esi + 0x38]

        $sequence_25 = { 8b401c 81e32a861356 81f71b1ccc93 81f3db50ed3e 8945ec 81ff7185baee }
            // n = 6, score = 100
            //   8b401c               | mov                 eax, dword ptr [eax + 0x1c]
            //   81e32a861356         | and                 ebx, 0x5613862a
            //   81f71b1ccc93         | xor                 edi, 0x93cc1c1b
            //   81f3db50ed3e         | xor                 ebx, 0x3eed50db
            //   8945ec               | mov                 dword ptr [ebp - 0x14], eax
            //   81ff7185baee         | cmp                 edi, 0xeeba8571

        $sequence_26 = { ff5614 0fafd8 56 6a00 ff7510 }
            // n = 5, score = 100
            //   ff5614               | call                dword ptr [esi + 0x14]
            //   0fafd8               | imul                ebx, eax
            //   56                   | push                esi
            //   6a00                 | push                0
            //   ff7510               | push                dword ptr [ebp + 0x10]

        $sequence_27 = { 81c727a0f047 ff560c 03d8 837df800 }
            // n = 4, score = 100
            //   81c727a0f047         | add                 edi, 0x47f0a027
            //   ff560c               | call                dword ptr [esi + 0xc]
            //   03d8                 | add                 ebx, eax
            //   837df800             | cmp                 dword ptr [ebp - 8], 0

        $sequence_28 = { 6a00 ff750c ff5608 81f7a942fbde }
            // n = 4, score = 100
            //   6a00                 | push                0
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   ff5608               | call                dword ptr [esi + 8]
            //   81f7a942fbde         | xor                 edi, 0xdefb42a9

        $sequence_29 = { 8b7d08 ff5614 094508 ff5624 23d8 81e700f0ffff }
            // n = 6, score = 100
            //   8b7d08               | mov                 edi, dword ptr [ebp + 8]
            //   ff5614               | call                dword ptr [esi + 0x14]
            //   094508               | or                  dword ptr [ebp + 8], eax
            //   ff5624               | call                dword ptr [esi + 0x24]
            //   23d8                 | and                 ebx, eax
            //   81e700f0ffff         | and                 edi, 0xfffff000

        $sequence_30 = { 74?? e8???????? 0594104000 50 ff7510 ff5644 8b45fc }
            // n = 7, score = 100
            //   74??                 |                     
            //   e8????????           |                     
            //   0594104000           | add                 eax, 0x401094
            //   50                   | push                eax
            //   ff7510               | push                dword ptr [ebp + 0x10]
            //   ff5644               | call                dword ptr [esi + 0x44]
            //   8b45fc               | mov                 eax, dword ptr [ebp - 4]

        $sequence_31 = { 8b45f0 0fb600 8945f8 ff5614 8b4df0 23d8 }
            // n = 6, score = 100
            //   8b45f0               | mov                 eax, dword ptr [ebp - 0x10]
            //   0fb600               | movzx               eax, byte ptr [eax]
            //   8945f8               | mov                 dword ptr [ebp - 8], eax
            //   ff5614               | call                dword ptr [esi + 0x14]
            //   8b4df0               | mov                 ecx, dword ptr [ebp - 0x10]
            //   23d8                 | and                 ebx, eax

    condition:
        7 of them
}
Download all Yara Rules