SYMBOLCOMMON_NAMEaka. SYNONYMS
win.pillowmint (Back to overview)

PILLOWMINT

Actor(s): Anunak

VTCollection    

According to FireEye, PILLOWMINT is a Point-of-Sale malware tool used to scrape track 1 and track 2 payment card data from memory.
Scraped payment card data is encrypted and stored in the registry and as plaintext in a file (T1074: Data Staged)
Contains additional backdoor capabilities including:
Running processes
Downloading and executing files (T1105: Remote File Copy)
Downloading and injecting DLLs (T1055: Process Injection)
Communicates with a command and control (C2) server over HTTP using AES encrypted messages
(T1071: Standard Application Layer Protocol)
(T1032: Standard Cryptographic Protocol)

References
2022-05-22 ⋅ cocomelonc ⋅ cocomelonc
Malware development trick - part 29: Store binary data in registry. Simple C++ example.
Turla RAT PILLOWMINT PipeMon
2021-08-30 ⋅ CrowdStrike ⋅ Eric Loui, Josh Reynolds
CARBON SPIDER Embraces Big Game Hunting, Part 1
Bateleur Griffon Carbanak DarkSide JSSLoader PILLOWMINT REvil
2020-06-22 ⋅ Trustwave ⋅ Rodel Mendrez
Pillowmint: FIN7’s Monkey Thief
PILLOWMINT
2018-10-01 ⋅ FireEye ⋅ Katie Nickels, Regina Elwell
ATT&CKing FIN7
Bateleur BELLHOP Griffon ANTAK POWERPIPE POWERSOURCE HALFBAKED BABYMETAL Carbanak Cobalt Strike DNSMessenger DRIFTPIN PILLOWMINT SocksBot
Yara Rules
[TLP:WHITE] win_pillowmint_auto (20260917 | Detects win.pillowmint.)
rule win_pillowmint_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-09-17"
        version = "1"
        description = "Detects win.pillowmint."
        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.pillowmint"
        malpedia_rule_date = "20260916"
        malpedia_hash = "53a643781c18e08f4a50949af60172d837a0b6f6"
        malpedia_version = "20260917"
        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 = { e8???????? 488d0d85670300 895c2420 ff15???????? 488d1544670300 488bc8 ff15???????? }
            // n = 7, score = 100
            //   e8????????           |                     
            //   488d0d85670300       | nop                 
            //   895c2420             | dec                 eax
            //   ff15????????         |                     
            //   488d1544670300       | cmp                 dword ptr [ebp + 0x1f], 0
            //   488bc8               | je                  0x1777
            //   ff15????????         |                     

        $sequence_1 = { 90 488b8de8000000 488b01 ff5008 4c8bc0 488d5520 }
            // n = 6, score = 100
            //   90                   | dec                 eax
            //   488b8de8000000       | lea                 ecx, [0x43493]
            //   488b01               | dec                 esp
            //   ff5008               | mov                 eax, ebx
            //   4c8bc0               | mov                 edx, 0x3e80
            //   488d5520             | dec                 esp

        $sequence_2 = { 83ca04 4533c0 e8???????? 90 488d8d88000000 e8???????? 488d05da3e0200 }
            // n = 7, score = 100
            //   83ca04               | mov                 dword ptr [ecx + edi + 0x10], eax
            //   4533c0               | dec                 eax
            //   e8????????           |                     
            //   90                   | mov                 ecx, esi
            //   488d8d88000000       | nop                 
            //   e8????????           |                     
            //   488d05da3e0200       | dec                 eax

        $sequence_3 = { 4156 4157 488dac2490fcffff 4881ec70040000 48c74550feffffff 48899c24c8040000 }
            // n = 6, score = 100
            //   4156                 | jne                 0xbd4
            //   4157                 | inc                 eax
            //   488dac2490fcffff     | test                bh, bh
            //   4881ec70040000       | jne                 0xbd4
            //   48c74550feffffff     | test                al, al
            //   48899c24c8040000     | jne                 0xbc3

        $sequence_4 = { 8905???????? 48c705????????0f000000 48893d???????? c605????????00 488d0d6ab90200 e8???????? 488d35eee32200 }
            // n = 7, score = 100
            //   8905????????         |                     
            //   48c705????????0f000000     |     
            //   48893d????????       |                     
            //   c605????????00       |                     
            //   488d0d6ab90200       | dec                 eax
            //   e8????????           |                     
            //   488d35eee32200       | mov                 edx, ebx

        $sequence_5 = { 48897910 c60100 4983c9ff 4533c0 488d942450030000 e8???????? 488b0d???????? }
            // n = 7, score = 100
            //   48897910             | mov                 dword ptr [ebp + 0x70], eax
            //   c60100               | dec                 eax
            //   4983c9ff             | lea                 ecx, [ebp + 0x70]
            //   4533c0               | xor                 ecx, ecx
            //   488d942450030000     | dec                 eax
            //   e8????????           |                     
            //   488b0d????????       |                     

        $sequence_6 = { e8???????? 48c7030f000000 488973f8 408873e8 4883c330 488d43d8 483bc7 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   48c7030f000000       | dec                 eax
            //   488973f8             | mov                 dword ptr [esp + 0x10], edx
            //   408873e8             | dec                 eax
            //   4883c330             | lea                 ecx, [edx + 0x20]
            //   488d43d8             | dec                 eax
            //   483bc7               | lea                 ecx, [edx + 0x20]

        $sequence_7 = { 8079010a 7514 48ffc1 eb0f 0fb601 4a0fbe8420e0470400 4803c8 }
            // n = 7, score = 100
            //   8079010a             | inc                 esp
            //   7514                 | mov                 bh, byte ptr [edi]
            //   48ffc1               | inc                 ebp
            //   eb0f                 | test                bh, bh
            //   0fb601               | dec                 eax
            //   4a0fbe8420e0470400     | mov    edi, dword ptr [ebp - 0x19]
            //   4803c8               | dec                 eax

        $sequence_8 = { 90 8b05???????? a801 752e 83c801 8905???????? 48c705????????0f000000 }
            // n = 7, score = 100
            //   90                   | mov                 edx, dword ptr [esi + 0x18]
            //   8b05????????         |                     
            //   a801                 | dec                 ecx
            //   752e                 | cmp                 edx, 0x10
            //   83c801               | jb                  0xa02
            //   8905????????         |                     
            //   48c705????????0f000000     |     

        $sequence_9 = { 33c9 ff15???????? 488bc8 e8???????? 90 4883bc24f800000010 720d }
            // n = 7, score = 100
            //   33c9                 | nop                 
            //   ff15????????         |                     
            //   488bc8               | inc                 ecx
            //   e8????????           |                     
            //   90                   | mov                 al, 1
            //   4883bc24f800000010     | dec    esp
            //   720d                 | mov                 eax, ebx

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