SYMBOLCOMMON_NAMEaka. SYNONYMS
win.slingshot (Back to overview)

Slingshot


- 2012 first sighted
- Attack vector via compromised Microtik routers where victim's got infection when they connect to Microtik router admin software - Winbox
- 2018 when discovered by Kaspersky Team

Infection Vector
- Infected Microtik Router > Malicious DLL (IP4.dll) in Router > User connect via windbox > Malicious DLL downloaded on computer

References
2018-03-20CyberScoopChris Bing, Patrick Howell O'Neill
@online{bing:20180320:kasperskys:9cf65c1, author = {Chris Bing and Patrick Howell O'Neill}, title = {{Kaspersky's 'Slingshot' report burned an ISIS-focused intelligence operation}}, date = {2018-03-20}, organization = {CyberScoop}, url = {https://www.cyberscoop.com/kaspersky-slingshot-isis-operation-socom-five-eyes/}, language = {English}, urldate = {2019-07-11} } Kaspersky's 'Slingshot' report burned an ISIS-focused intelligence operation
Slingshot
2018-03-09Kaspersky LabsAlexey Shulmin, Sergey Yunakovsky, Vasily Berdnikov, Andrey Dolgushev
@online{shulmin:20180309:slingshot:7417374, author = {Alexey Shulmin and Sergey Yunakovsky and Vasily Berdnikov and Andrey Dolgushev}, title = {{The Slingshot APT FAQ}}, date = {2018-03-09}, organization = {Kaspersky Labs}, url = {https://securelist.com/apt-slingshot/84312/}, language = {English}, urldate = {2019-12-20} } The Slingshot APT FAQ
Slingshot Slingshot
2018-03-09Kaspersky LabsAlexey Shulmin, Sergey Yunakovsky, Vasily Berdnikov, Andrey Dolgushev
@techreport{shulmin:20180309:slingshot:3885e37, author = {Alexey Shulmin and Sergey Yunakovsky and Vasily Berdnikov and Andrey Dolgushev}, title = {{The Slingshot APT}}, date = {2018-03-09}, institution = {Kaspersky Labs}, url = {https://s3-eu-west-1.amazonaws.com/khub-media/wp-content/uploads/sites/43/2018/03/09133534/The-Slingshot-APT_report_ENG_final.pdf}, language = {English}, urldate = {2020-01-10} } The Slingshot APT
Slingshot
Yara Rules
[TLP:WHITE] win_slingshot_auto (20211008 | Detects win.slingshot.)
rule win_slingshot_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2021-10-07"
        version = "1"
        description = "Detects win.slingshot."
        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.slingshot"
        malpedia_rule_date = "20211007"
        malpedia_hash = "e5b790e0f888f252d49063a1251ca60ec2832535"
        malpedia_version = "20211008"
        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 = { 50 33db 53 ff15???????? 8bf0 3bf3 }
            // n = 6, score = 200
            //   50                   | push                eax
            //   33db                 | xor                 ebx, ebx
            //   53                   | push                ebx
            //   ff15????????         |                     
            //   8bf0                 | mov                 esi, eax
            //   3bf3                 | cmp                 esi, ebx

        $sequence_1 = { 0f84ed020000 39442448 0f84e3020000 39442460 }
            // n = 4, score = 100
            //   0f84ed020000         | je                  0x2f3
            //   39442448             | cmp                 dword ptr [esp + 0x48], eax
            //   0f84e3020000         | je                  0x2e9
            //   39442460             | cmp                 dword ptr [esp + 0x60], eax

        $sequence_2 = { 3bcb 7411 ff75fc ff31 }
            // n = 4, score = 100
            //   3bcb                 | cmp                 ecx, ebx
            //   7411                 | je                  0x13
            //   ff75fc               | push                dword ptr [ebp - 4]
            //   ff31                 | push                dword ptr [ecx]

        $sequence_3 = { 48 8bd0 48 8d0deb880000 }
            // n = 4, score = 100
            //   48                   | dec                 eax
            //   8bd0                 | mov                 edx, eax
            //   48                   | dec                 eax
            //   8d0deb880000         | lea                 ecx, dword ptr [0x88eb]

        $sequence_4 = { 0f8462020000 3919 0f845a020000 68030000ff 8d44244c e8???????? }
            // n = 6, score = 100
            //   0f8462020000         | je                  0x268
            //   3919                 | cmp                 dword ptr [ecx], ebx
            //   0f845a020000         | je                  0x260
            //   68030000ff           | push                0xff000003
            //   8d44244c             | lea                 eax, dword ptr [esp + 0x4c]
            //   e8????????           |                     

        $sequence_5 = { 3bcb 7410 8b7104 3b7704 }
            // n = 4, score = 100
            //   3bcb                 | cmp                 ecx, ebx
            //   7410                 | je                  0x12
            //   8b7104               | mov                 esi, dword ptr [ecx + 4]
            //   3b7704               | cmp                 esi, dword ptr [edi + 4]

        $sequence_6 = { 3bcb 7404 3919 751b 57 52 }
            // n = 6, score = 100
            //   3bcb                 | cmp                 ecx, ebx
            //   7404                 | je                  6
            //   3919                 | cmp                 dword ptr [ecx], ebx
            //   751b                 | jne                 0x1d
            //   57                   | push                edi
            //   52                   | push                edx

        $sequence_7 = { ff7508 8d8e74020000 52 68???????? 8bc6 2bc1 }
            // n = 6, score = 100
            //   ff7508               | push                dword ptr [ebp + 8]
            //   8d8e74020000         | lea                 ecx, dword ptr [esi + 0x274]
            //   52                   | push                edx
            //   68????????           |                     
            //   8bc6                 | mov                 eax, esi
            //   2bc1                 | sub                 eax, ecx

        $sequence_8 = { eb05 e8???????? 833800 75f6 2bc2 83c004 3bc7 }
            // n = 7, score = 100
            //   eb05                 | jmp                 7
            //   e8????????           |                     
            //   833800               | cmp                 dword ptr [eax], 0
            //   75f6                 | jne                 0xfffffff8
            //   2bc2                 | sub                 eax, edx
            //   83c004               | add                 eax, 4
            //   3bc7                 | cmp                 eax, edi

        $sequence_9 = { 3bcb 7426 ff750c 51 }
            // n = 4, score = 100
            //   3bcb                 | cmp                 ecx, ebx
            //   7426                 | je                  0x28
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   51                   | push                ecx

        $sequence_10 = { 8a01 48 03cd 41 }
            // n = 4, score = 100
            //   8a01                 | mov                 al, byte ptr [ecx]
            //   48                   | dec                 eax
            //   03cd                 | add                 ecx, ebp
            //   41                   | inc                 ecx

        $sequence_11 = { 03d9 23d8 8a4c9a08 324e06 884f06 8b4dfc 41 }
            // n = 7, score = 100
            //   03d9                 | add                 ebx, ecx
            //   23d8                 | and                 ebx, eax
            //   8a4c9a08             | mov                 cl, byte ptr [edx + ebx*4 + 8]
            //   324e06               | xor                 cl, byte ptr [esi + 6]
            //   884f06               | mov                 byte ptr [edi + 6], cl
            //   8b4dfc               | mov                 ecx, dword ptr [ebp - 4]
            //   41                   | inc                 ecx

        $sequence_12 = { 8b5d10 56 8b7508 d1ee 7415 f7451400100000 740c }
            // n = 7, score = 100
            //   8b5d10               | mov                 ebx, dword ptr [ebp + 0x10]
            //   56                   | push                esi
            //   8b7508               | mov                 esi, dword ptr [ebp + 8]
            //   d1ee                 | shr                 esi, 1
            //   7415                 | je                  0x17
            //   f7451400100000       | test                dword ptr [ebp + 0x14], 0x1000
            //   740c                 | je                  0xe

        $sequence_13 = { 8a448f08 41 324504 41 }
            // n = 4, score = 100
            //   8a448f08             | mov                 al, byte ptr [edi + ecx*4 + 8]
            //   41                   | inc                 ecx
            //   324504               | xor                 al, byte ptr [ebp + 4]
            //   41                   | inc                 ecx

        $sequence_14 = { 46 8d0c48 75ed 4c 8b442428 45 }
            // n = 6, score = 100
            //   46                   | inc                 esi
            //   8d0c48               | lea                 ecx, dword ptr [eax + ecx*2]
            //   75ed                 | jne                 0xffffffef
            //   4c                   | dec                 esp
            //   8b442428             | mov                 eax, dword ptr [esp + 0x28]
            //   45                   | inc                 ebp

        $sequence_15 = { 3bcb 7420 0fb700 d1e8 }
            // n = 4, score = 100
            //   3bcb                 | cmp                 ecx, ebx
            //   7420                 | je                  0x22
            //   0fb700               | movzx               eax, word ptr [eax]
            //   d1e8                 | shr                 eax, 1

        $sequence_16 = { 0fb6f0 44 8b44b708 43 8d0410 44 0fb6d0 }
            // n = 7, score = 100
            //   0fb6f0               | movzx               esi, al
            //   44                   | inc                 esp
            //   8b44b708             | mov                 eax, dword ptr [edi + esi*4 + 8]
            //   43                   | inc                 ebx
            //   8d0410               | lea                 eax, dword ptr [eax + edx]
            //   44                   | inc                 esp
            //   0fb6d0               | movzx               edx, al

        $sequence_17 = { 85c0 7d2d 0fb74d0c 0fb7450e 51 8bc8 23cb }
            // n = 7, score = 100
            //   85c0                 | test                eax, eax
            //   7d2d                 | jge                 0x2f
            //   0fb74d0c             | movzx               ecx, word ptr [ebp + 0xc]
            //   0fb7450e             | movzx               eax, word ptr [ebp + 0xe]
            //   51                   | push                ecx
            //   8bc8                 | mov                 ecx, eax
            //   23cb                 | and                 ecx, ebx

        $sequence_18 = { 034308 e8???????? 44 8b1b babb000000 41 }
            // n = 6, score = 100
            //   034308               | add                 eax, dword ptr [ebx + 8]
            //   e8????????           |                     
            //   44                   | inc                 esp
            //   8b1b                 | mov                 ebx, dword ptr [ebx]
            //   babb000000           | mov                 edx, 0xbb
            //   41                   | inc                 ecx

        $sequence_19 = { 752c 48 8b0b 48 8d1533950000 ff15???????? }
            // n = 6, score = 100
            //   752c                 | jne                 0x2e
            //   48                   | dec                 eax
            //   8b0b                 | mov                 ecx, dword ptr [ebx]
            //   48                   | dec                 eax
            //   8d1533950000         | lea                 edx, dword ptr [0x9533]
            //   ff15????????         |                     

        $sequence_20 = { 3bcb 7413 ff7514 ff7510 }
            // n = 4, score = 100
            //   3bcb                 | cmp                 ecx, ebx
            //   7413                 | je                  0x15
            //   ff7514               | push                dword ptr [ebp + 0x14]
            //   ff7510               | push                dword ptr [ebp + 0x10]

        $sequence_21 = { 7407 6644 3b5802 741c }
            // n = 4, score = 100
            //   7407                 | je                  9
            //   6644                 | inc                 sp
            //   3b5802               | cmp                 ebx, dword ptr [eax + 2]
            //   741c                 | je                  0x1e

        $sequence_22 = { 3bcb 7415 8b45fc 83c014 }
            // n = 4, score = 100
            //   3bcb                 | cmp                 ecx, ebx
            //   7415                 | je                  0x17
            //   8b45fc               | mov                 eax, dword ptr [ebp - 4]
            //   83c014               | add                 eax, 0x14

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