SYMBOLCOMMON_NAMEaka. SYNONYMS
win.bubblewrap (Back to overview)

BUBBLEWRAP

Actor(s): Temper Panda

VTCollection    

BUBBLEWRAP is a full-featured backdoor that is set to run when the system boots, and can communicate using HTTP, HTTPS, or a SOCKS proxy. This backdoor collects system information, including the operating system version and hostname, and includes functionality to check, upload, and register plugins that can further enhance its capabilities.

References
2019-01-01MITREMITRE ATT&CK
Tool description: BUBBLEWRAP
BUBBLEWRAP
2015-12-01FireEyeFireEye Threat Intelligence
China-based Cyber Threat Group Uses Dropbox for Malware Communications and Targets Hong Kong Media Outlets
BUBBLEWRAP LOWBALL TEMPER PANDA
Yara Rules
[TLP:WHITE] win_bubblewrap_auto (20260504 | Detects win.bubblewrap.)
rule win_bubblewrap_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.bubblewrap."
        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.bubblewrap"
        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 = { 55 56 57 668908 }
            // n = 4, score = 100
            //   55                   | push                ebp
            //   56                   | push                esi
            //   57                   | push                edi
            //   668908               | mov                 word ptr [eax], cx

        $sequence_1 = { 84c0 0f84e5010000 e8???????? 8b842420020000 be???????? 8a10 }
            // n = 6, score = 100
            //   84c0                 | test                al, al
            //   0f84e5010000         | je                  0x1eb
            //   e8????????           |                     
            //   8b842420020000       | mov                 eax, dword ptr [esp + 0x220]
            //   be????????           |                     
            //   8a10                 | mov                 dl, byte ptr [eax]

        $sequence_2 = { bf???????? 33f6 68???????? 68???????? }
            // n = 4, score = 100
            //   bf????????           |                     
            //   33f6                 | xor                 esi, esi
            //   68????????           |                     
            //   68????????           |                     

        $sequence_3 = { 8db434b00a0000 894c2434 8bc1 c1e902 }
            // n = 4, score = 100
            //   8db434b00a0000       | lea                 esi, [esp + esi + 0xab0]
            //   894c2434             | mov                 dword ptr [esp + 0x34], ecx
            //   8bc1                 | mov                 eax, ecx
            //   c1e902               | shr                 ecx, 2

        $sequence_4 = { 33ed 51 52 896c2428 896c2420 }
            // n = 5, score = 100
            //   33ed                 | xor                 ebp, ebp
            //   51                   | push                ecx
            //   52                   | push                edx
            //   896c2428             | mov                 dword ptr [esp + 0x28], ebp
            //   896c2420             | mov                 dword ptr [esp + 0x20], ebp

        $sequence_5 = { 8bca 4f c1e902 f3a5 8bca b8???????? 83e103 }
            // n = 7, score = 100
            //   8bca                 | mov                 ecx, edx
            //   4f                   | dec                 edi
            //   c1e902               | shr                 ecx, 2
            //   f3a5                 | rep movsd           dword ptr es:[edi], dword ptr [esi]
            //   8bca                 | mov                 ecx, edx
            //   b8????????           |                     
            //   83e103               | and                 ecx, 3

        $sequence_6 = { 8bc8 83e103 f3a4 8bcb 8b5c2414 }
            // n = 5, score = 100
            //   8bc8                 | mov                 ecx, eax
            //   83e103               | and                 ecx, 3
            //   f3a4                 | rep movsb           byte ptr es:[edi], byte ptr [esi]
            //   8bcb                 | mov                 ecx, ebx
            //   8b5c2414             | mov                 ebx, dword ptr [esp + 0x14]

        $sequence_7 = { ffd6 68???????? ffd6 68b80b0000 ffd5 e9???????? 8b0d???????? }
            // n = 7, score = 100
            //   ffd6                 | call                esi
            //   68????????           |                     
            //   ffd6                 | call                esi
            //   68b80b0000           | push                0xbb8
            //   ffd5                 | call                ebp
            //   e9????????           |                     
            //   8b0d????????         |                     

        $sequence_8 = { ffd6 68???????? ffd6 8b5c241c }
            // n = 4, score = 100
            //   ffd6                 | call                esi
            //   68????????           |                     
            //   ffd6                 | call                esi
            //   8b5c241c             | mov                 ebx, dword ptr [esp + 0x1c]

        $sequence_9 = { 50 52 ffd6 8d442408 6a10 50 68???????? }
            // n = 7, score = 100
            //   50                   | push                eax
            //   52                   | push                edx
            //   ffd6                 | call                esi
            //   8d442408             | lea                 eax, [esp + 8]
            //   6a10                 | push                0x10
            //   50                   | push                eax
            //   68????????           |                     

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