SYMBOLCOMMON_NAMEaka. SYNONYMS
win.oceansalt (Back to overview)

Oceansalt

VTCollection    

There is no description at this point.

References
2018-10-18McAfeeAsheer Malhotra, Ryan Sherstobitoff
‘Operation Oceansalt’ Attacks South Korea, U.S., and Canada With Source Code From Chinese Hacker Group
Oceansalt APT1
Yara Rules
[TLP:WHITE] win_oceansalt_auto (20260504 | Detects win.oceansalt.)
rule win_oceansalt_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.oceansalt."
        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.oceansalt"
        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 = { 743c 6a00 56 ff15???????? 8b4d08 }
            // n = 5, score = 300
            //   743c                 | dec                 eax
            //   6a00                 | lea                 edx, [0x96ae]
            //   56                   | inc                 ecx
            //   ff15????????         |                     
            //   8b4d08               | mov                 eax, 5

        $sequence_1 = { 50 51 8d95fcfbffff 6800020000 52 e8???????? 83c410 }
            // n = 7, score = 300
            //   50                   | movzx               edi, word ptr [esp + 0x4e]
            //   51                   | inc                 esp
            //   8d95fcfbffff         | movzx               ecx, word ptr [esp + 0x4a]
            //   6800020000           | cmp                 eax, ecx
            //   52                   | jl                  0xfffffff7
            //   e8????????           |                     
            //   83c410               | push                esi

        $sequence_2 = { 8b95d4fdffff 8955f4 8d642400 6a00 6808010000 }
            // n = 5, score = 300
            //   8b95d4fdffff         | mov                 dword ptr [esp + 0x50], ebx
            //   8955f4               | mov                 dword ptr [esp + 0x70], 0x68
            //   8d642400             | inc                 ebp
            //   6a00                 | lea                 eax, [ecx + 8]
            //   6808010000           | dec                 eax

        $sequence_3 = { 57 6a00 6a00 6a00 6a04 53 }
            // n = 6, score = 300
            //   57                   | lea                 edx, [esp + 0x350]
            //   6a00                 | dec                 eax
            //   6a00                 | lea                 edx, [esp + 0x350]
            //   6a00                 | dec                 eax
            //   6a04                 | lea                 ecx, [0xbe36]
            //   53                   | jne                 0xfffffe74

        $sequence_4 = { 3bc1 7cf3 56 51 }
            // n = 4, score = 300
            //   3bc1                 | mov                 dword ptr [esp + 0x58], eax
            //   7cf3                 | dec                 eax
            //   56                   | mov                 dword ptr [esp + 0x60], eax
            //   51                   | dec                 eax

        $sequence_5 = { 8b4508 50 ff15???????? 85c0 750a ff15???????? 8be5 }
            // n = 7, score = 300
            //   8b4508               | push                ecx
            //   50                   | mov                 edx, dword ptr [ebp - 0x22c]
            //   ff15????????         |                     
            //   85c0                 | mov                 dword ptr [ebp - 0xc], edx
            //   750a                 | lea                 esp, [esp]
            //   ff15????????         |                     
            //   8be5                 | push                0

        $sequence_6 = { 8945fc 8b4d08 56 8d450c 50 }
            // n = 5, score = 300
            //   8945fc               | dec                 eax
            //   8b4d08               | mov                 ecx, ebx
            //   56                   | movzx               edx, word ptr [esp + 0x54]
            //   8d450c               | movzx               ecx, word ptr [esp + 0x50]
            //   50                   | movzx               eax, word ptr [esp + 0x52]

        $sequence_7 = { 8b450c 56 6a00 6800000008 }
            // n = 4, score = 300
            //   8b450c               | dec                 ecx
            //   56                   | add                 ebx, edi
            //   6a00                 | cmp                 byte ptr [ebx], 0x20
            //   6800000008           | je                  0xfffffffd

        $sequence_8 = { ff15???????? 4533c9 488d542420 458d4102 }
            // n = 4, score = 100
            //   ff15????????         |                     
            //   4533c9               | dec                 eax
            //   488d542420           | mov                 dword ptr [ecx + eax], edx
            //   458d4102             | dec                 eax

        $sequence_9 = { b81a000000 eb78 33c9 488d15afdf0000 48891401 4883c230 4883c108 }
            // n = 7, score = 100
            //   b81a000000           | dec                 eax
            //   eb78                 | lea                 edx, [esp + 0x100]
            //   33c9                 | mov                 eax, 0x1a
            //   488d15afdf0000       | jmp                 0x7f
            //   48891401             | xor                 ecx, ecx
            //   4883c230             | dec                 eax
            //   4883c108             | lea                 edx, [0xdfaf]

        $sequence_10 = { 4889442458 4889442460 48895c2450 c744247068000000 e8???????? }
            // n = 5, score = 100
            //   4889442458           | mov                 ecx, ebx
            //   4889442460           | dec                 eax
            //   48895c2450           | mov                 ecx, dword ptr [esp + 0x28]
            //   c744247068000000     | dec                 eax
            //   e8????????           |                     

        $sequence_11 = { 458d4108 488d942450030000 ff15???????? 488d942450030000 488d0d36be0000 e8???????? }
            // n = 6, score = 100
            //   458d4108             | xor                 ecx, esp
            //   488d942450030000     | inc                 ebp
            //   ff15????????         |                     
            //   488d942450030000     | lea                 eax, [ecx + 7]
            //   488d0d36be0000       | dec                 eax
            //   e8????????           |                     

        $sequence_12 = { 458d4107 488bcb ff15???????? 488b4c2428 4833cc }
            // n = 5, score = 100
            //   458d4107             | add                 edx, 0x30
            //   488bcb               | dec                 eax
            //   ff15????????         |                     
            //   488b4c2428           | add                 ecx, 8
            //   4833cc               | inc                 ebp

        $sequence_13 = { ff15???????? 488b0d???????? 4c8d0d92150100 488d942400010000 }
            // n = 4, score = 100
            //   ff15????????         |                     
            //   488b0d????????       |                     
            //   4c8d0d92150100       | dec                 esp
            //   488d942400010000     | lea                 ecx, [0x11592]

        $sequence_14 = { 482bd8 660f1f840000000000 0fb601 48ffc1 }
            // n = 4, score = 100
            //   482bd8               | lea                 eax, [ecx + 2]
            //   660f1f840000000000     | inc    ebp
            //   0fb601               | lea                 eax, [ecx + 7]
            //   48ffc1               | dec                 eax

        $sequence_15 = { 0f856efeffff 4903df 803b20 74f8 488d15ae960000 41b805000000 488bcb }
            // n = 7, score = 100
            //   0f856efeffff         | mov                 ecx, ebx
            //   4903df               | dec                 eax
            //   803b20               | mov                 ecx, dword ptr [esp + 0x28]
            //   74f8                 | dec                 eax
            //   488d15ae960000       | xor                 ecx, esp
            //   41b805000000         | dec                 eax
            //   488bcb               | sub                 ebx, eax

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