SYMBOLCOMMON_NAMEaka. SYNONYMS
win.bs2005 (Back to overview)

BS2005

Actor(s): Mirage

VTCollection    

There is no description at this point.

References
2020-01-01 ⋅ Secureworks ⋅ SecureWorks
BRONZE PALACE
BS2005 Enfal Mirage RoyalCli Royal DNS APT15
2018-03-16 ⋅ Github (nccgroup) ⋅ NCC Group PLC
Royal APT - APT15 Repository
BS2005 MS Exchange Tool RoyalCli Royal DNS APT15
2018-03-10 ⋅ NCC Group ⋅ Rob Smallridge
APT15 is alive and strong: An analysis of RoyalCli and RoyalDNS
BS2005 MS Exchange Tool RoyalCli Royal DNS APT15
Yara Rules
[TLP:WHITE] win_bs2005_auto (20260917 | Detects win.bs2005.)
rule win_bs2005_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.bs2005."
        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.bs2005"
        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 = { 83c9ff 80fb19 7708 0fbeca 83e941 eb36 }
            // n = 6, score = 100
            //   83c9ff               | or                  ecx, 0xffffffff
            //   80fb19               | cmp                 bl, 0x19
            //   7708                 | ja                  0xa
            //   0fbeca               | movsx               ecx, dl
            //   83e941               | sub                 ecx, 0x41
            //   eb36                 | jmp                 0x38

        $sequence_1 = { 7505 b83f000000 8d5abf 83c9ff 80fb19 771c 0fbeca }
            // n = 7, score = 100
            //   7505                 | jne                 7
            //   b83f000000           | mov                 eax, 0x3f
            //   8d5abf               | lea                 ebx, [edx - 0x41]
            //   83c9ff               | or                  ecx, 0xffffffff
            //   80fb19               | cmp                 bl, 0x19
            //   771c                 | ja                  0x1e
            //   0fbeca               | movsx               ecx, dl

        $sequence_2 = { 8b55f8 57 68???????? 68???????? }
            // n = 4, score = 100
            //   8b55f8               | mov                 edx, dword ptr [ebp - 8]
            //   57                   | push                edi
            //   68????????           |                     
            //   68????????           |                     

        $sequence_3 = { 8b45f0 8b4d0c 3bc1 0f8d9a020000 2bc8 33c0 89450c }
            // n = 7, score = 100
            //   8b45f0               | mov                 eax, dword ptr [ebp - 0x10]
            //   8b4d0c               | mov                 ecx, dword ptr [ebp + 0xc]
            //   3bc1                 | cmp                 eax, ecx
            //   0f8d9a020000         | jge                 0x2a0
            //   2bc8                 | sub                 ecx, eax
            //   33c0                 | xor                 eax, eax
            //   89450c               | mov                 dword ptr [ebp + 0xc], eax

        $sequence_4 = { e8???????? 83c404 33db e8???????? 99 }
            // n = 5, score = 100
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   33db                 | xor                 ebx, ebx
            //   e8????????           |                     
            //   99                   | cdq                 

        $sequence_5 = { 7412 53 ff15???????? 8bce }
            // n = 4, score = 100
            //   7412                 | je                  0x14
            //   53                   | push                ebx
            //   ff15????????         |                     
            //   8bce                 | mov                 ecx, esi

        $sequence_6 = { a1???????? 898324010000 8b0d???????? 898b28010000 eb1e 83f801 7519 }
            // n = 7, score = 100
            //   a1????????           |                     
            //   898324010000         | mov                 dword ptr [ebx + 0x124], eax
            //   8b0d????????         |                     
            //   898b28010000         | mov                 dword ptr [ebx + 0x128], ecx
            //   eb1e                 | jmp                 0x20
            //   83f801               | cmp                 eax, 1
            //   7519                 | jne                 0x1b

        $sequence_7 = { 51 8d860c010800 50 52 53 8bcf }
            // n = 6, score = 100
            //   51                   | push                ecx
            //   8d860c010800         | lea                 eax, [esi + 0x8010c]
            //   50                   | push                eax
            //   52                   | push                edx
            //   53                   | push                ebx
            //   8bcf                 | mov                 ecx, edi

        $sequence_8 = { 8b4dfc 83c410 e8???????? 8b55f8 57 68???????? 68???????? }
            // n = 7, score = 100
            //   8b4dfc               | mov                 ecx, dword ptr [ebp - 4]
            //   83c410               | add                 esp, 0x10
            //   e8????????           |                     
            //   8b55f8               | mov                 edx, dword ptr [ebp - 8]
            //   57                   | push                edi
            //   68????????           |                     
            //   68????????           |                     

        $sequence_9 = { 8d41fd 33d2 c785dcfeffff00000000 89b5e0feffff 899de8feffff }
            // n = 5, score = 100
            //   8d41fd               | lea                 eax, [ecx - 3]
            //   33d2                 | xor                 edx, edx
            //   c785dcfeffff00000000     | mov    dword ptr [ebp - 0x124], 0
            //   89b5e0feffff         | mov                 dword ptr [ebp - 0x120], esi
            //   899de8feffff         | mov                 dword ptr [ebp - 0x118], ebx

    condition:
        7 of them and filesize < 212992
}
[TLP:WHITE] win_bs2005_w0   (20180312 | Detects malware from APT 15 report by NCC Group)
import "pe"

rule win_bs2005_w0 {
    meta:
        description = "Detects malware from APT 15 report by NCC Group"
        author = "Florian Roth"
        reference = "https://goo.gl/HZ5XMN"
        date = "2018-03-10"
        hash = "750d9eecd533f89b8aa13aeab173a1cf813b021b6824bc30e60f5db6fa7b950b"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.bs2005"
        malpedia_version = "20180312"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"
    strings:
        $x1 = "AAAAKQAASCMAABi+AABnhEBj8vep7VRoAEPRWLweGc0/eiDrXGajJXRxbXsTXAcZAABK4QAAPWwAACzWAAByrg==" fullword ascii
        $x2 = "AAAAKQAASCMAABi+AABnhKv3kXJJousn5YzkjGF46eE3G8ZGse4B9uoqJo8Q2oF0AABK4QAAPWwAACzWAAByrg==" fullword ascii

        $a1 = "http://%s/content.html?id=%s" fullword ascii
        $a2 = "http://%s/main.php?ssid=%s" fullword ascii
        $a3 = "http://%s/webmail.php?id=%s" fullword ascii
        $a9 = "http://%s/error.html?tab=%s" fullword ascii

        $s1 = "%s\\~tmp.txt" fullword ascii
        $s2 = "%s /C %s >>\"%s\" 2>&1" fullword ascii
        $s3 = "DisableFirstRunCustomize" fullword ascii
    condition:
        1 of ($x*) or 2 of them
}
Download all Yara Rules