SYMBOLCOMMON_NAMEaka. SYNONYMS
win.ksl0t (Back to overview)

KSL0T

Actor(s): Turla

VTCollection    

A keylogger used by Turla.

References
2019-07-080ffset Blog0verfl0w_
Analyzing KSL0T (Turla’s Keylogger), Part 1 – Reupload
KSL0T
2019-07-080ffset Blog0verfl0w_
Analyzing KSL0T (Turla’s Keylogger), Part 2 – Reupload
KSL0T
2018-10-05_
Post 0x17.2: Analyzing Turla’s Keylogger
KSL0T
Yara Rules
[TLP:WHITE] win_ksl0t_auto (20230808 | Detects win.ksl0t.)
rule win_ksl0t_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2023-12-06"
        version = "1"
        description = "Detects win.ksl0t."
        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.ksl0t"
        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 = { ff15???????? 83c40c 3bf7 7515 ff15???????? }
            // n = 5, score = 200
            //   ff15????????         |                     
            //   83c40c               | add                 esp, 0xc
            //   3bf7                 | cmp                 esi, edi
            //   7515                 | jne                 0x17
            //   ff15????????         |                     

        $sequence_1 = { c68424a100000039 c68424a200000039 888c24a3000000 c684248000000026 }
            // n = 4, score = 200
            //   c68424a100000039     | mov                 byte ptr [esp + 0xa1], 0x39
            //   c68424a200000039     | mov                 byte ptr [esp + 0xa2], 0x39
            //   888c24a3000000       | mov                 byte ptr [esp + 0xa3], cl
            //   c684248000000026     | mov                 byte ptr [esp + 0x80], 0x26

        $sequence_2 = { c684241001000006 88842411010000 889c2412010000 c684241301000013 }
            // n = 4, score = 200
            //   c684241001000006     | mov                 byte ptr [esp + 0x110], 6
            //   88842411010000       | mov                 byte ptr [esp + 0x111], al
            //   889c2412010000       | mov                 byte ptr [esp + 0x112], bl
            //   c684241301000013     | mov                 byte ptr [esp + 0x113], 0x13

        $sequence_3 = { 68???????? 8d8d00080000 51 ff15???????? 8d9500080000 52 }
            // n = 6, score = 200
            //   68????????           |                     
            //   8d8d00080000         | lea                 ecx, [ebp + 0x800]
            //   51                   | push                ecx
            //   ff15????????         |                     
            //   8d9500080000         | lea                 edx, [ebp + 0x800]
            //   52                   | push                edx

        $sequence_4 = { ff942418040000 4c8bd8 488b842420040000 4c899878010000 488d542468 }
            // n = 5, score = 200
            //   ff942418040000       | add                 esp, 0x38
            //   4c8bd8               | ret                 
            //   488b842420040000     | call                dword ptr [esp + 0x418]
            //   4c899878010000       | dec                 esp
            //   488d542468           | mov                 ebx, eax

        $sequence_5 = { c68424f600000034 c68424f700000038 c68424f800000030 c68424f900000002 c68424fa00000055 c644245813 c64424593c }
            // n = 7, score = 200
            //   c68424f600000034     | mov                 byte ptr [esp + 0xf6], 0x34
            //   c68424f700000038     | mov                 byte ptr [esp + 0xf7], 0x38
            //   c68424f800000030     | mov                 byte ptr [esp + 0xf8], 0x30
            //   c68424f900000002     | mov                 byte ptr [esp + 0xf9], 2
            //   c68424fa00000055     | mov                 byte ptr [esp + 0xfa], 0x55
            //   c644245813           | mov                 byte ptr [esp + 0x58], 0x13
            //   c64424593c           | mov                 byte ptr [esp + 0x59], 0x3c

        $sequence_6 = { c684245a01000021 c684245b01000018 c684245c01000030 c684245d01000026 c684245e01000026 c684245f01000034 }
            // n = 6, score = 200
            //   c684245a01000021     | mov                 ecx, esi
            //   c684245b01000018     | mov                 byte ptr [esp + 0x88], 2
            //   c684245c01000030     | mov                 byte ptr [esp + 0x89], 0x55
            //   c684245d01000026     | mov                 byte ptr [esp + 0x118], 0
            //   c684245e01000026     | mov                 byte ptr [esp + 0x119], 0x3b
            //   c684245f01000034     | mov                 byte ptr [esp + 0x11a], 0x3d

        $sequence_7 = { 4881c294000000 41b801000000 488d0dd7e60000 ff15???????? }
            // n = 4, score = 200
            //   4881c294000000       | dec                 eax
            //   41b801000000         | lea                 edx, [0x2892]
            //   488d0dd7e60000       | dec                 eax
            //   ff15????????         |                     

        $sequence_8 = { 8d94241c030000 52 53 89466c ffd7 894670 }
            // n = 6, score = 200
            //   8d94241c030000       | lea                 edx, [esp + 0x31c]
            //   52                   | push                edx
            //   53                   | push                ebx
            //   89466c               | mov                 dword ptr [esi + 0x6c], eax
            //   ffd7                 | call                edi
            //   894670               | mov                 dword ptr [esi + 0x70], eax

        $sequence_9 = { 3bcf 7518 81fa00010000 7510 }
            // n = 4, score = 200
            //   3bcf                 | cmp                 ecx, edi
            //   7518                 | jne                 0x1a
            //   81fa00010000         | cmp                 edx, 0x100
            //   7510                 | jne                 0x12

        $sequence_10 = { c684248800000002 c684248900000055 c684241801000000 c68424190100003b c684241a0100003d c684241b0100003a }
            // n = 6, score = 200
            //   c684248800000002     | dec                 eax
            //   c684248900000055     | lea                 edx, [esp + 0x68]
            //   c684241801000000     | dec                 eax
            //   c68424190100003b     | mov                 ecx, esi
            //   c684241a0100003d     | dec                 eax
            //   c684241b0100003a     | mov                 ecx, eax

        $sequence_11 = { 84c0 745a 68???????? 68???????? ff15???????? 68???????? 68???????? }
            // n = 7, score = 200
            //   84c0                 | test                al, al
            //   745a                 | je                  0x5c
            //   68????????           |                     
            //   68????????           |                     
            //   ff15????????         |                     
            //   68????????           |                     
            //   68????????           |                     

        $sequence_12 = { 488bce 488905???????? ff15???????? 488bc8 e8???????? 488d1592280000 488bce }
            // n = 7, score = 200
            //   488bce               | dec                 eax
            //   488905????????       |                     
            //   ff15????????         |                     
            //   488bc8               | mov                 eax, dword ptr [esp + 0x420]
            //   e8????????           |                     
            //   488d1592280000       | dec                 esp
            //   488bce               | mov                 dword ptr [eax + 0x178], ebx

        $sequence_13 = { ff15???????? 8bf0 6800020000 57 8d95000d0000 52 ff15???????? }
            // n = 7, score = 200
            //   ff15????????         |                     
            //   8bf0                 | mov                 esi, eax
            //   6800020000           | push                0x200
            //   57                   | push                edi
            //   8d95000d0000         | lea                 edx, [ebp + 0xd00]
            //   52                   | push                edx
            //   ff15????????         |                     

        $sequence_14 = { 7509 488d0de2450000 eb02 33c9 e8???????? 4883c438 c3 }
            // n = 7, score = 200
            //   7509                 | jne                 0xb
            //   488d0de2450000       | dec                 eax
            //   eb02                 | lea                 ecx, [0x45e2]
            //   33c9                 | jmp                 4
            //   e8????????           |                     
            //   4883c438             | xor                 ecx, ecx
            //   c3                   | dec                 eax

        $sequence_15 = { c68424f801000038 c68424f901000034 c68424fa01000039 c68424fb01000039 c68424fc0100003a }
            // n = 5, score = 200
            //   c68424f801000038     | mov                 byte ptr [esp + 0x11b], 0x3a
            //   c68424f901000034     | dec                 eax
            //   c68424fa01000039     | add                 edx, 0x94
            //   c68424fb01000039     | inc                 ecx
            //   c68424fc0100003a     | mov                 eax, 1

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