SYMBOLCOMMON_NAMEaka. SYNONYMS
win.nautilus (Back to overview)

Nautilus

Actor(s): APT34, Turla

VTCollection    

There is no description at this point.

References
2020-01-01SecureworksSecureWorks
IRON HUNTER
Agent.BTZ Cobra Carbon System LightNeuron Mosquito Nautilus Neuron Skipper Uroburos Turla
2019-10-21NCSC UKNCSC UK
Advisory: Turla group exploits Iranian APT to expand coverage of victims
Nautilus Neuron
2018-01-17NCSC UKNCSC UK
Turla group malware
Nautilus Neuron
Yara Rules
[TLP:WHITE] win_nautilus_auto (20260504 | Detects win.nautilus.)
rule win_nautilus_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.nautilus."
        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.nautilus"
        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 = { ba0a000000 488bcb e8???????? 488bcb e8???????? 4885ff 0f8542ffffff }
            // n = 7, score = 100
            //   ba0a000000           | inc                 esp
            //   488bcb               | mov                 eax, edx
            //   e8????????           |                     
            //   488bcb               | movzx               eax, byte ptr [ebx]
            //   e8????????           |                     
            //   4885ff               | inc                 ecx
            //   0f8542ffffff         | inc                 esp

        $sequence_1 = { e8???????? 443bf6 7646 4d8b4d38 4c8b45e7 488d55df 4889542430 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   443bf6               | mov                 edi, eax
            //   7646                 | dec                 eax
            //   4d8b4d38             | test                eax, eax
            //   4c8b45e7             | je                  0x266
            //   488d55df             | mov                 eax, 1
            //   4889542430           | dec                 eax

        $sequence_2 = { 85c0 0f85ad000000 4c8bc6 488bd3 488bcb e8???????? e9???????? }
            // n = 7, score = 100
            //   85c0                 | lea                 ebx, [esp + 0x60]
            //   0f85ad000000         | dec                 ecx
            //   4c8bc6               | mov                 ebx, dword ptr [ebx + 0x38]
            //   488bd3               | dec                 ecx
            //   488bcb               | mov                 esi, dword ptr [ebx + 0x40]
            //   e8????????           |                     
            //   e9????????           |                     

        $sequence_3 = { e9???????? 4983c202 4d3bd3 0f8406ffffff 418a4a01 84c9 750e }
            // n = 7, score = 100
            //   e9????????           |                     
            //   4983c202             | lea                 eax, [edx + 3]
            //   4d3bd3               | dec                 eax
            //   0f8406ffffff         | mov                 ebp, eax
            //   418a4a01             | dec                 eax
            //   84c9                 | cmp                 esi, eax
            //   750e                 | jle                 0x48f

        $sequence_4 = { 3da0010000 0f87e2000000 40f6c707 0f85d8000000 488d5948 488d1503370400 41b800100000 }
            // n = 7, score = 100
            //   3da0010000           | mov                 ecx, dword ptr [eax + ecx + 0x30]
            //   0f87e2000000         | xor                 ebp, ebp
            //   40f6c707             | or                  edx, 0xffffffff
            //   0f85d8000000         | dec                 esp
            //   488d5948             | imul                ebp, ebx, 0x12068
            //   488d1503370400       | dec                 ecx
            //   41b800100000         | mov                 ecx, dword ptr [ebp + esi + 0x30]

        $sequence_5 = { ba01000000 41b800020000 e8???????? 488907 488d4310 488b5c2430 4883c420 }
            // n = 7, score = 100
            //   ba01000000           | dec                 eax
            //   41b800020000         | mov                 ecx, dword ptr [edi + 8]
            //   e8????????           |                     
            //   488907               | inc                 ebp
            //   488d4310             | mov                 eax, edi
            //   488b5c2430           | inc                 esp
            //   4883c420             | sub                 eax, edx

        $sequence_6 = { eb03 418bca 4863c2 4863c9 488d14c8 420fbe940aa0e50700 c1fa04 }
            // n = 7, score = 100
            //   eb03                 | dec                 eax
            //   418bca               | mov                 edi, eax
            //   4863c2               | dec                 eax
            //   4863c9               | test                eax, eax
            //   488d14c8             | jne                 0xf8
            //   420fbe940aa0e50700     | lea    ebx, [eax + 0x26]
            //   c1fa04               | mov                 ecx, dword ptr [esp + 0x20]

        $sequence_7 = { 8a4742 a840 7420 24bf 884742 488b5c2430 488b6c2438 }
            // n = 7, score = 100
            //   8a4742               | dec                 esp
            //   a840                 | mov                 dword ptr [eax], esp
            //   7420                 | inc                 ecx
            //   24bf                 | mov                 eax, edi
            //   884742               | sete                al
            //   488b5c2430           | dec                 eax
            //   488b6c2438           | mov                 dword ptr [ebx + 0x278], eax

        $sequence_8 = { 41bf01000000 488b4b10 ff15???????? 4585ff 7509 418d7f14 e9???????? }
            // n = 7, score = 100
            //   41bf01000000         | dec                 eax
            //   488b4b10             | mov                 edi, dword ptr [esp + 0x50]
            //   ff15????????         |                     
            //   4585ff               | mov                 dword ptr [ecx + edx*4], eax
            //   7509                 | mov                 eax, dword ptr [ebx + 0x20]
            //   418d7f14             | lea                 ecx, [eax + 1]
            //   e9????????           |                     

        $sequence_9 = { 85c0 7508 8d4603 e9???????? 488d55e0 488d0db0e00500 e8???????? }
            // n = 7, score = 100
            //   85c0                 | mov                 edi, 1
            //   7508                 | dec                 eax
            //   8d4603               | mov                 dword ptr [eax + 8], ebx
            //   e9????????           |                     
            //   488d55e0             | dec                 eax
            //   488d0db0e00500       | mov                 dword ptr [eax + 0x10], ebp
            //   e8????????           |                     

    condition:
        7 of them and filesize < 1302528
}
[TLP:WHITE] win_nautilus_w0   (20180226 | Rule for detection of Nautilus based on assembly code for a modified RC4 loop)
rule win_nautilus_w0 {
    meta:
        description = "Rule for detection of Nautilus based on assembly code for a modified RC4 loop"
        author = "NCSC UK"
        hash = "a415ab193f6cd832a0de4fcc48d5f53d6f0b06d5e13b3c359878c6c31f3e7ec3"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.nautilus"
        malpedia_version = "20180226"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"
    strings:
        $rc4_loop = {42 0F B6 14 04 41 FF C0 03 D7 0F B6 CA 8A 14 0C 43 32 14 13 41 88 12 49 FF C2
        49 FF C9}
        $rc4_key = {31 42 31 34 34 30 44 39 30 46 43 39 42 43 42 34 36 41 39 41 43 39 36 34 33 38
        46 45 45 41 38 42}
        $string_0 = "nautilus-service.dll" ascii
        $string_1 = "oxygen.dll" ascii
        $string_2 = "config_listen.system" ascii
        $string_3 = "ctx.system" ascii
        $string_4 = "3FDA3998-BEF5-426D-82D8-1A71F29ADDC3" ascii
        $string_5 = "C:\\ProgramData\\Microsoft\\Windows\\Caches\\{%s}.2.ver0x0000000000000001.db"
    condition:
        ($rc4_loop and $rc4_key) or (all of ($string_*)) 
}
Download all Yara Rules