SYMBOLCOMMON_NAMEaka. SYNONYMS
win.xfscashncr (Back to overview)

XFSCashNCR


There is no description at this point.

References
2019-08-28Twitter (@r3c0nst)Frank Boldewin
@online{boldewin:20190828:atm:b393cb8, author = {Frank Boldewin}, title = {{Tweet on ATM Malware}}, date = {2019-08-28}, organization = {Twitter (@r3c0nst)}, url = {https://twitter.com/r3c0nst/status/1166773324548063232}, language = {English}, urldate = {2019-12-05} } Tweet on ATM Malware
XFSCashNCR
2019-08-28Cyttek GroupRafael Revert
@online{revert:20190828:other:abc18fa, author = {Rafael Revert}, title = {{Other day other malware in the way (died.exe)}}, date = {2019-08-28}, organization = {Cyttek Group}, url = {https://blog.cyttek.com/2019/08/28/other-day-other-malware-in-the-way-died-exe/}, language = {English}, urldate = {2020-01-08} } Other day other malware in the way (died.exe)
XFSCashNCR
Yara Rules
[TLP:WHITE] win_xfscashncr_auto (20230407 | Detects win.xfscashncr.)
rule win_xfscashncr_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2023-03-28"
        version = "1"
        description = "Detects win.xfscashncr."
        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.xfscashncr"
        malpedia_rule_date = "20230328"
        malpedia_hash = "9d2d75cef573c1c2d861f5197df8f563b05a305d"
        malpedia_version = "20230407"
        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 = { 753b 8b4df8 e8???????? b901000000 6bc9ff 03c1 }
            // n = 6, score = 100
            //   753b                 | jne                 0x3d
            //   8b4df8               | mov                 ecx, dword ptr [ebp - 8]
            //   e8????????           |                     
            //   b901000000           | mov                 ecx, 1
            //   6bc9ff               | imul                ecx, ecx, -1
            //   03c1                 | add                 eax, ecx

        $sequence_1 = { 0fbe4c05d4 3bd1 750e c6459b01 8b4d10 e8???????? ebbf }
            // n = 7, score = 100
            //   0fbe4c05d4           | movsx               ecx, byte ptr [ebp + eax - 0x2c]
            //   3bd1                 | cmp                 edx, ecx
            //   750e                 | jne                 0x10
            //   c6459b01             | mov                 byte ptr [ebp - 0x65], 1
            //   8b4d10               | mov                 ecx, dword ptr [ebp + 0x10]
            //   e8????????           |                     
            //   ebbf                 | jmp                 0xffffffc1

        $sequence_2 = { 51 6a03 8d55c0 52 e8???????? 83c40c 8b85f4feffff }
            // n = 7, score = 100
            //   51                   | push                ecx
            //   6a03                 | push                3
            //   8d55c0               | lea                 edx, [ebp - 0x40]
            //   52                   | push                edx
            //   e8????????           |                     
            //   83c40c               | add                 esp, 0xc
            //   8b85f4feffff         | mov                 eax, dword ptr [ebp - 0x10c]

        $sequence_3 = { c785bcafffff14765500 eb0a c785bcafffff2c765500 6a00 6835010000 68???????? 68???????? }
            // n = 7, score = 100
            //   c785bcafffff14765500     | mov    dword ptr [ebp - 0x5044], 0x557614
            //   eb0a                 | jmp                 0xc
            //   c785bcafffff2c765500     | mov    dword ptr [ebp - 0x5044], 0x55762c
            //   6a00                 | push                0
            //   6835010000           | push                0x135
            //   68????????           |                     
            //   68????????           |                     

        $sequence_4 = { 8d4dc4 e8???????? 0fbe00 83f87f 7424 8b4d94 51 }
            // n = 7, score = 100
            //   8d4dc4               | lea                 ecx, [ebp - 0x3c]
            //   e8????????           |                     
            //   0fbe00               | movsx               eax, byte ptr [eax]
            //   83f87f               | cmp                 eax, 0x7f
            //   7424                 | je                  0x26
            //   8b4d94               | mov                 ecx, dword ptr [ebp - 0x6c]
            //   51                   | push                ecx

        $sequence_5 = { 83c001 8945b0 8b4db0 3b4d9c 7326 8b55b0 52 }
            // n = 7, score = 100
            //   83c001               | add                 eax, 1
            //   8945b0               | mov                 dword ptr [ebp - 0x50], eax
            //   8b4db0               | mov                 ecx, dword ptr [ebp - 0x50]
            //   3b4d9c               | cmp                 ecx, dword ptr [ebp - 0x64]
            //   7326                 | jae                 0x28
            //   8b55b0               | mov                 edx, dword ptr [ebp - 0x50]
            //   52                   | push                edx

        $sequence_6 = { 8b4df8 e8???????? 50 e8???????? 83c404 898528ffffff }
            // n = 6, score = 100
            //   8b4df8               | mov                 ecx, dword ptr [ebp - 8]
            //   e8????????           |                     
            //   50                   | push                eax
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   898528ffffff         | mov                 dword ptr [ebp - 0xd8], eax

        $sequence_7 = { 8b5508 8b45e8 8b7508 d90486 d95c8afc 8b4de8 8b5508 }
            // n = 7, score = 100
            //   8b5508               | mov                 edx, dword ptr [ebp + 8]
            //   8b45e8               | mov                 eax, dword ptr [ebp - 0x18]
            //   8b7508               | mov                 esi, dword ptr [ebp + 8]
            //   d90486               | fld                 dword ptr [esi + eax*4]
            //   d95c8afc             | fstp                dword ptr [edx + ecx*4 - 4]
            //   8b4de8               | mov                 ecx, dword ptr [ebp - 0x18]
            //   8b5508               | mov                 edx, dword ptr [ebp + 8]

        $sequence_8 = { 8b4d14 e8???????? 8bf0 8d4db8 e8???????? 3bf0 761c }
            // n = 7, score = 100
            //   8b4d14               | mov                 ecx, dword ptr [ebp + 0x14]
            //   e8????????           |                     
            //   8bf0                 | mov                 esi, eax
            //   8d4db8               | lea                 ecx, [ebp - 0x48]
            //   e8????????           |                     
            //   3bf0                 | cmp                 esi, eax
            //   761c                 | jbe                 0x1e

        $sequence_9 = { 0f85a1000000 e8???????? 8945e4 68b9020000 68???????? 8b4de4 51 }
            // n = 7, score = 100
            //   0f85a1000000         | jne                 0xa7
            //   e8????????           |                     
            //   8945e4               | mov                 dword ptr [ebp - 0x1c], eax
            //   68b9020000           | push                0x2b9
            //   68????????           |                     
            //   8b4de4               | mov                 ecx, dword ptr [ebp - 0x1c]
            //   51                   | push                ecx

    condition:
        7 of them and filesize < 3126272
}
[TLP:WHITE] win_xfscashncr_w0   (20191004 | Detects ATM Malware XFSCashNCR)
rule win_xfscashncr_w0 {
	meta:
		description = "Detects ATM Malware XFSCashNCR"
		author = "Frank Boldewin (@r3c0nst)"
		reference = "https://twitter.com/r3c0nst/status/1166773324548063232"
		date = "2019-08-28"
		hash1 = "d6dff67a6b4423b5721908bdcc668951f33b3c214e318051c96e8c158e8931c0"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.xfscashncr"
        malpedia_version = "20191004"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"

	strings:
		$Code1 = {50 8b 4d e8 8b 51 10 52 6a 00 68 2d 01 00 00 8b 45 e8 0f b7 48 1c 51 e8} // CDM Status
		$Code2 = {52 8d 45 d0 50 68 2e 01 00 00 8b 4d e8 0f b7 51 1c 52 e8} // Dispense
		$StatusMessage1 = "[+] Ingrese Denominacion ISO" nocase ascii
		$StatusMessage2 = "[+] Ingrese numero de billetes" nocase ascii 
		$StatusMessage3 = "[!] FAIL.. dispensadores no encontrados" nocase ascii
		$StatusMessage4 = "[!] Unable continue, IMPOSIBLE abrir dispenser" nocase ascii
		$PDB = "C:\\Users\\cyttek\\Downloads\\xfs_cashXP\\Debug\\xfs_cash_ncr.pdb" nocase ascii
		$LogFile = "XfsLog.txt" nocase ascii
		
	condition:
		uint16(0) == 0x5A4D and filesize < 1500KB and 4 of them
}
Download all Yara Rules