SYMBOLCOMMON_NAMEaka. SYNONYMS
win.blackcoffee (Back to overview)

BLACKCOFFEE

aka: PNGRAT, gresim, ZoxPNG

Actor(s): APT41, Aurora Panda, Leviathan


a backdoor that obfuscates its communications as normal traffic to legitimate websites such as Github and Microsoft's Technet portal.

References
2020-01-29nao_sec blognao_sec
@online{naosec:20200129:overhead:ec0aeb5, author = {nao_sec}, title = {{An Overhead View of the Royal Road}}, date = {2020-01-29}, organization = {nao_sec blog}, url = {https://nao-sec.org/2020/01/an-overhead-view-of-the-royal-road.html}, language = {English}, urldate = {2020-02-03} } An Overhead View of the Royal Road
BLACKCOFFEE Cotx RAT Datper DDKONG Derusbi Icefog Korlia NewCore RAT PLAINTEE Poison Ivy Sisfader
2020SecureworksSecureWorks
@online{secureworks:2020:bronze:e8ad4fb, author = {SecureWorks}, title = {{BRONZE MOHAWK}}, date = {2020}, organization = {Secureworks}, url = {https://www.secureworks.com/research/threat-profiles/bronze-mohawk}, language = {English}, urldate = {2020-05-23} } BRONZE MOHAWK
AIRBREAK scanbox BLACKCOFFEE CHINACHOPPER Cobalt Strike Derusbi homefry murkytop SeDll Leviathan
2020SecureworksSecureWorks
@online{secureworks:2020:bronze:65ecf8a, author = {SecureWorks}, title = {{BRONZE KEYSTONE}}, date = {2020}, organization = {Secureworks}, url = {https://www.secureworks.com/research/threat-profiles/bronze-keystone}, language = {English}, urldate = {2020-05-23} } BRONZE KEYSTONE
9002 RAT BLACKCOFFEE DeputyDog Derusbi HiKit PlugX Poison Ivy ZXShell Aurora Panda
2019-07-24IntrusiontruthIntrusiontruth
@online{intrusiontruth:20190724:apt17:6b9a666, author = {Intrusiontruth}, title = {{APT17 is run by the Jinan bureau of the Chinese Ministry of State Security}}, date = {2019-07-24}, organization = {Intrusiontruth}, url = {https://intrusiontruth.wordpress.com/2019/07/24/apt17-is-run-by-the-jinan-bureau-of-the-chinese-ministry-of-state-security/}, language = {English}, urldate = {2020-04-21} } APT17 is run by the Jinan bureau of the Chinese Ministry of State Security
BLACKCOFFEE
2019MITREMITRE ATT&CK
@online{attck:2019:tool:ebc79ce, author = {MITRE ATT&CK}, title = {{Tool description: BLACKCOFFEE}}, date = {2019}, organization = {MITRE}, url = {https://attack.mitre.org/software/S0069/}, language = {English}, urldate = {2019-12-20} } Tool description: BLACKCOFFEE
BLACKCOFFEE
2018-03-16FireEyeFireEye
@online{fireeye:20180316:suspected:2a77316, author = {FireEye}, title = {{Suspected Chinese Cyber Espionage Group (TEMP.Periscope) Targeting U.S. Engineering and Maritime Industries}}, date = {2018-03-16}, organization = {FireEye}, url = {https://www.fireeye.com/blog/threat-research/2018/03/suspected-chinese-espionage-group-targeting-maritime-and-engineering-industries.html}, language = {English}, urldate = {2019-12-20} } Suspected Chinese Cyber Espionage Group (TEMP.Periscope) Targeting U.S. Engineering and Maritime Industries
badflick BLACKCOFFEE CHINACHOPPER homefry murkytop SeDll Leviathan
2015-05-18Tetsuji Tanigawa
@online{tanigawa:20150518:tt:4cb29ea, author = {Tetsuji Tanigawa}, title = {{TT Malware Log}}, date = {2015-05-18}, url = {http://malware-log.hatenablog.com/entry/2015/05/18/000000_1}, language = {Japanese}, urldate = {2020-01-08} } TT Malware Log
BLACKCOFFEE
2015-05FireEyeFireEye
@techreport{fireeye:201505:hiding:8695fc2, author = {FireEye}, title = {{HIDING IN PLAIN SIGHT: FIREEYE AND MICROSOFT EXPOSE OBFUSCATION TACTIC}}, date = {2015-05}, institution = {FireEye}, url = {https://www2.fireeye.com/rs/fireye/images/APT17_Report.pdf}, language = {English}, urldate = {2019-12-19} } HIDING IN PLAIN SIGHT: FIREEYE AND MICROSOFT EXPOSE OBFUSCATION TACTIC
BLACKCOFFEE
2014-11NovettaNovetta
@techreport{novetta:201411:zoxpng:91e81c6, author = {Novetta}, title = {{ZoxPNG Analysis}}, date = {2014-11}, institution = {Novetta}, url = {http://www.novetta.com/wp-content/uploads/2014/11/ZoxPNG.pdf}, language = {English}, urldate = {2020-05-07} } ZoxPNG Analysis
BLACKCOFFEE
Yara Rules
[TLP:WHITE] win_blackcoffee_auto (20200817 | autogenerated rule brought to you by yara-signator)
rule win_blackcoffee_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2020-08-17"
        version = "1"
        description = "autogenerated rule brought to you by yara-signator"
        tool = "yara-signator v0.4.0"
        tool_config = "callsandjumps;datarefs;binvalue"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.blackcoffee"
        malpedia_rule_date = "20200817"
        malpedia_hash = "8c895fd01eccb47a6225bcb1a3ba53cbb98644c5"
        malpedia_version = "20200817"
        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 / approach 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 = { 752d ff15???????? 8945fc 6a1c }
            // n = 4, score = 200
            //   752d                 | jne                 0x2f
            //   ff15????????         |                     
            //   8945fc               | mov                 dword ptr [ebp - 4], eax
            //   6a1c                 | push                0x1c

        $sequence_1 = { 53 56 57 8b4174 8b7164 8b5130 8945f8 }
            // n = 7, score = 200
            //   53                   | push                ebx
            //   56                   | push                esi
            //   57                   | push                edi
            //   8b4174               | mov                 eax, dword ptr [ecx + 0x74]
            //   8b7164               | mov                 esi, dword ptr [ecx + 0x64]
            //   8b5130               | mov                 edx, dword ptr [ecx + 0x30]
            //   8945f8               | mov                 dword ptr [ebp - 8], eax

        $sequence_2 = { 57 ff763c e8???????? 8b467c 83c40c 8d0440 6a02 }
            // n = 7, score = 200
            //   57                   | push                edi
            //   ff763c               | push                dword ptr [esi + 0x3c]
            //   e8????????           |                     
            //   8b467c               | mov                 eax, dword ptr [esi + 0x7c]
            //   83c40c               | add                 esp, 0xc
            //   8d0440               | lea                 eax, [eax + eax*2]
            //   6a02                 | push                2

        $sequence_3 = { 8d9e94160000 8d4806 58 d3e0 6a04 50 8903 }
            // n = 7, score = 200
            //   8d9e94160000         | lea                 ebx, [esi + 0x1694]
            //   8d4806               | lea                 ecx, [eax + 6]
            //   58                   | pop                 eax
            //   d3e0                 | shl                 eax, cl
            //   6a04                 | push                4
            //   50                   | push                eax
            //   8903                 | mov                 dword ptr [ebx], eax

        $sequence_4 = { 50 8d85dcfeffff 895e10 c7460408100680 895e0c 50 c70614000000 }
            // n = 7, score = 200
            //   50                   | push                eax
            //   8d85dcfeffff         | lea                 eax, [ebp - 0x124]
            //   895e10               | mov                 dword ptr [esi + 0x10], ebx
            //   c7460408100680       | mov                 dword ptr [esi + 4], 0x80061008
            //   895e0c               | mov                 dword ptr [esi + 0xc], ebx
            //   50                   | push                eax
            //   c70614000000         | mov                 dword ptr [esi], 0x14

        $sequence_5 = { 83450804 6a01 88840e50140000 8b45f4 53 56 }
            // n = 6, score = 200
            //   83450804             | add                 dword ptr [ebp + 8], 4
            //   6a01                 | push                1
            //   88840e50140000       | mov                 byte ptr [esi + ecx + 0x1450], al
            //   8b45f4               | mov                 eax, dword ptr [ebp - 0xc]
            //   53                   | push                ebx
            //   56                   | push                esi

        $sequence_6 = { c1e102 66c704190100 80a4065014000000 8b45f4 ff8ea0160000 }
            // n = 5, score = 200
            //   c1e102               | shl                 ecx, 2
            //   66c704190100         | mov                 word ptr [ecx + ebx], 1
            //   80a4065014000000     | and                 byte ptr [esi + eax + 0x1450], 0
            //   8b45f4               | mov                 eax, dword ptr [ebp - 0xc]
            //   ff8ea0160000         | dec                 dword ptr [esi + 0x16a0]

        $sequence_7 = { 3bc6 7416 56 50 ff15???????? }
            // n = 5, score = 200
            //   3bc6                 | cmp                 eax, esi
            //   7416                 | je                  0x18
            //   56                   | push                esi
            //   50                   | push                eax
            //   ff15????????         |                     

        $sequence_8 = { 83c107 8988b4160000 33d2 8975f8 395510 7507 b98a000000 }
            // n = 7, score = 200
            //   83c107               | add                 ecx, 7
            //   8988b4160000         | mov                 dword ptr [eax + 0x16b4], ecx
            //   33d2                 | xor                 edx, edx
            //   8975f8               | mov                 dword ptr [ebp - 8], esi
            //   395510               | cmp                 dword ptr [ebp + 0x10], edx
            //   7507                 | jne                 9
            //   b98a000000           | mov                 ecx, 0x8a

        $sequence_9 = { 50 ff15???????? ff35???????? ffd6 893d???????? }
            // n = 5, score = 200
            //   50                   | push                eax
            //   ff15????????         |                     
            //   ff35????????         |                     
            //   ffd6                 | call                esi
            //   893d????????         |                     

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