SYMBOLCOMMON_NAMEaka. SYNONYMS
win.waterspout (Back to overview)

WaterSpout

Actor(s): IXESHE

VTCollection    

There is no description at this point.

References
2014-09-03FireEyeMike Oppenheim, Ned Moran
Darwin’s Favorite APT Group
EtumBot ThreeByte WaterSpout APT12
Yara Rules
[TLP:WHITE] win_waterspout_auto (20260504 | Detects win.waterspout.)
rule win_waterspout_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.waterspout."
        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.waterspout"
        malpedia_rule_date = "20260422"
        malpedia_hash = "a182e35da64e6d71cb55f125c4d4225196523f14"
        malpedia_version = "20260504"
        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 = { c6842491000000ff c6842492000000f3 c6842493000000d2 c6842494000000cd c68424950000000c c684249600000013 }
            // n = 6, score = 200
            //   c6842491000000ff     | mov                 byte ptr [esp + 0x91], 0xff
            //   c6842492000000f3     | mov                 byte ptr [esp + 0x92], 0xf3
            //   c6842493000000d2     | mov                 byte ptr [esp + 0x93], 0xd2
            //   c6842494000000cd     | mov                 byte ptr [esp + 0x94], 0xcd
            //   c68424950000000c     | mov                 byte ptr [esp + 0x95], 0xc
            //   c684249600000013     | mov                 byte ptr [esp + 0x96], 0x13

        $sequence_1 = { 885c2412 885c2413 be???????? bf08000000 bd34000000 8b46fc }
            // n = 6, score = 200
            //   885c2412             | mov                 byte ptr [esp + 0x12], bl
            //   885c2413             | mov                 byte ptr [esp + 0x13], bl
            //   be????????           |                     
            //   bf08000000           | mov                 edi, 8
            //   bd34000000           | mov                 ebp, 0x34
            //   8b46fc               | mov                 eax, dword ptr [esi - 4]

        $sequence_2 = { ff15???????? 8bb4246c200000 3bc5 8906 751c a1???????? }
            // n = 6, score = 200
            //   ff15????????         |                     
            //   8bb4246c200000       | mov                 esi, dword ptr [esp + 0x206c]
            //   3bc5                 | cmp                 eax, ebp
            //   8906                 | mov                 dword ptr [esi], eax
            //   751c                 | jne                 0x1e
            //   a1????????           |                     

        $sequence_3 = { 81fe00040000 77bf 8b442420 8b4c241c 8b542414 6a02 03f8 }
            // n = 7, score = 200
            //   81fe00040000         | cmp                 esi, 0x400
            //   77bf                 | ja                  0xffffffc1
            //   8b442420             | mov                 eax, dword ptr [esp + 0x20]
            //   8b4c241c             | mov                 ecx, dword ptr [esp + 0x1c]
            //   8b542414             | mov                 edx, dword ptr [esp + 0x14]
            //   6a02                 | push                2
            //   03f8                 | add                 edi, eax

        $sequence_4 = { be04000000 8a18 83c004 8819 41 4e }
            // n = 6, score = 200
            //   be04000000           | mov                 esi, 4
            //   8a18                 | mov                 bl, byte ptr [eax]
            //   83c004               | add                 eax, 4
            //   8819                 | mov                 byte ptr [ecx], bl
            //   41                   | inc                 ecx
            //   4e                   | dec                 esi

        $sequence_5 = { f3ab 8b420c 8b08 8b11 52 e8???????? 8bf8 }
            // n = 7, score = 200
            //   f3ab                 | rep stosd           dword ptr es:[edi], eax
            //   8b420c               | mov                 eax, dword ptr [edx + 0xc]
            //   8b08                 | mov                 ecx, dword ptr [eax]
            //   8b11                 | mov                 edx, dword ptr [ecx]
            //   52                   | push                edx
            //   e8????????           |                     
            //   8bf8                 | mov                 edi, eax

        $sequence_6 = { 33c0 be???????? f2ae 8b44240c f7d1 49 8db882000000 }
            // n = 7, score = 200
            //   33c0                 | xor                 eax, eax
            //   be????????           |                     
            //   f2ae                 | repne scasb         al, byte ptr es:[edi]
            //   8b44240c             | mov                 eax, dword ptr [esp + 0xc]
            //   f7d1                 | not                 ecx
            //   49                   | dec                 ecx
            //   8db882000000         | lea                 edi, [eax + 0x82]

        $sequence_7 = { 50 8d85fcfeffff 58 50 }
            // n = 4, score = 200
            //   50                   | push                eax
            //   8d85fcfeffff         | lea                 eax, [ebp - 0x104]
            //   58                   | pop                 eax
            //   50                   | push                eax

        $sequence_8 = { 89442428 c1f808 88442413 8b02 2b44241c 83f801 7706 }
            // n = 7, score = 200
            //   89442428             | mov                 dword ptr [esp + 0x28], eax
            //   c1f808               | sar                 eax, 8
            //   88442413             | mov                 byte ptr [esp + 0x13], al
            //   8b02                 | mov                 eax, dword ptr [edx]
            //   2b44241c             | sub                 eax, dword ptr [esp + 0x1c]
            //   83f801               | cmp                 eax, 1
            //   7706                 | ja                  8

        $sequence_9 = { 33c0 56 89442409 57 89442411 }
            // n = 5, score = 200
            //   33c0                 | xor                 eax, eax
            //   56                   | push                esi
            //   89442409             | mov                 dword ptr [esp + 9], eax
            //   57                   | push                edi
            //   89442411             | mov                 dword ptr [esp + 0x11], eax

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