SYMBOLCOMMON_NAMEaka. SYNONYMS
win.shipshape (Back to overview)

SHIPSHAPE

Actor(s): APT 30


SHIPSHAPE is malware developed by APT30 that allows propagation and exfiltration of data over removable devices. APT30 may use this capability to exfiltrate data across air-gaps.

References
2015-04FireEyeFireEye
@techreport{fireeye:201504:apt30:0129bf7, author = {FireEye}, title = {{APT30 AND THE MECHANICS OF A LONG-RUNNING CYBER ESPIONAGE OPERATION}}, date = {2015-04}, institution = {FireEye}, url = {https://www2.fireeye.com/rs/fireye/images/rpt-apt30.pdf}, language = {English}, urldate = {2020-01-07} } APT30 AND THE MECHANICS OF A LONG-RUNNING CYBER ESPIONAGE OPERATION
BACKBEND backspace CREAMSICLE FLASHFLOOD GEMCUTTER MILKMAID Naikon NETEAGLE ORANGEADE SHIPSHAPE SPACESHIP SslMM Sys10 WinMM xsPlus APT 30
Yara Rules
[TLP:WHITE] win_shipshape_auto (20220411 | Detects win.shipshape.)
rule win_shipshape_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2022-04-08"
        version = "1"
        description = "Detects win.shipshape."
        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.shipshape"
        malpedia_rule_date = "20220405"
        malpedia_hash = "ecd38294bd47d5589be5cd5490dc8bb4804afc2a"
        malpedia_version = "20220411"
        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 = { c645fc01 e8???????? 6888130000 c745fc00000000 }
            // n = 4, score = 100
            //   c645fc01             | mov                 byte ptr [ebp - 4], 1
            //   e8????????           |                     
            //   6888130000           | push                0x1388
            //   c745fc00000000       | mov                 dword ptr [ebp - 4], 0

        $sequence_1 = { 0fb601 0fb6fa 3bc7 7714 8b55fc 8a9220bc4000 }
            // n = 6, score = 100
            //   0fb601               | movzx               eax, byte ptr [ecx]
            //   0fb6fa               | movzx               edi, dl
            //   3bc7                 | cmp                 eax, edi
            //   7714                 | ja                  0x16
            //   8b55fc               | mov                 edx, dword ptr [ebp - 4]
            //   8a9220bc4000         | mov                 dl, byte ptr [edx + 0x40bc20]

        $sequence_2 = { 83c408 85db 0f849a010000 8b3d???????? 8d7301 68???????? }
            // n = 6, score = 100
            //   83c408               | add                 esp, 8
            //   85db                 | test                ebx, ebx
            //   0f849a010000         | je                  0x1a0
            //   8b3d????????         |                     
            //   8d7301               | lea                 esi, dword ptr [ebx + 1]
            //   68????????           |                     

        $sequence_3 = { 81c400020000 c3 8d44240c 6a00 50 }
            // n = 5, score = 100
            //   81c400020000         | add                 esp, 0x200
            //   c3                   | ret                 
            //   8d44240c             | lea                 eax, dword ptr [esp + 0xc]
            //   6a00                 | push                0
            //   50                   | push                eax

        $sequence_4 = { ff15???????? 85c0 0f8577ffffff 53 }
            // n = 4, score = 100
            //   ff15????????         |                     
            //   85c0                 | test                eax, eax
            //   0f8577ffffff         | jne                 0xffffff7d
            //   53                   | push                ebx

        $sequence_5 = { 56 e8???????? 56 e8???????? 83c408 eb09 56 }
            // n = 7, score = 100
            //   56                   | push                esi
            //   e8????????           |                     
            //   56                   | push                esi
            //   e8????????           |                     
            //   83c408               | add                 esp, 8
            //   eb09                 | jmp                 0xb
            //   56                   | push                esi

        $sequence_6 = { 8d4508 8db67cb74000 6a00 50 }
            // n = 4, score = 100
            //   8d4508               | lea                 eax, dword ptr [ebp + 8]
            //   8db67cb74000         | lea                 esi, dword ptr [esi + 0x40b77c]
            //   6a00                 | push                0
            //   50                   | push                eax

        $sequence_7 = { 8d741c10 84c0 0f8579ffffff 5f 5e 5d 5b }
            // n = 7, score = 100
            //   8d741c10             | lea                 esi, dword ptr [esp + ebx + 0x10]
            //   84c0                 | test                al, al
            //   0f8579ffffff         | jne                 0xffffff7f
            //   5f                   | pop                 edi
            //   5e                   | pop                 esi
            //   5d                   | pop                 ebp
            //   5b                   | pop                 ebx

        $sequence_8 = { e8???????? 8d542424 52 68???????? 56 e8???????? }
            // n = 6, score = 100
            //   e8????????           |                     
            //   8d542424             | lea                 edx, dword ptr [esp + 0x24]
            //   52                   | push                edx
            //   68????????           |                     
            //   56                   | push                esi
            //   e8????????           |                     

        $sequence_9 = { 8088????????10 8a9405ecfdffff 889000c34000 eb1c f6c202 }
            // n = 5, score = 100
            //   8088????????10       |                     
            //   8a9405ecfdffff       | mov                 dl, byte ptr [ebp + eax - 0x214]
            //   889000c34000         | mov                 byte ptr [eax + 0x40c300], dl
            //   eb1c                 | jmp                 0x1e
            //   f6c202               | test                dl, 2

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