{"id":2326,"date":"2023-07-07T13:31:40","date_gmt":"2023-07-07T11:31:40","guid":{"rendered":"https:\/\/lab52.io\/blog\/?p=2326"},"modified":"2023-07-07T13:31:42","modified_gmt":"2023-07-07T11:31:42","slug":"beyond-appearances-unknown-actor-using-apt29s-ttp-against-chinese-users","status":"publish","type":"post","link":"https:\/\/lab52.io\/blog\/beyond-appearances-unknown-actor-using-apt29s-ttp-against-chinese-users\/","title":{"rendered":"Beyond appearances: unknown actor using APT29&#8217;s TTP against Chinese users"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Introduction<\/h1>\n\n\n\n<p>Lab52 has detected a different maldoc samples of a potential malicious campaign. The initial access is through a Chinese phishing. \u00a0The maldoc seems to be a campaign against Chinese speaking users as the content of the maldoc is written in Chinese. The social engineering technique applied into the maldoc\u2019s content is to pretend to be a Curriculum Vitae of a 28 years old professional who is specialized in finance, concretely into the software development for banking systems and NCR.<\/p>\n\n\n\n<p>The infection chain is similar to the threat actor APT29, however it has been identified significant differences related to the typical APT29\u2019s infection chain that makes consider that it does not seem to be this threat actor. &nbsp;<\/p>\n\n\n\n<p>This is a compressed file with Chinese characters referring to &#8220;Sun Jichao &#8211; Peking University \u2013 Master&#8221;. The file has a file with extension &#8220;.pdf&#8221; and a hidden directory &#8220;_MACOSX\/.DOCX&#8221;, which contains a .bat file, two .tmp files (also hidden) and another .pdf file.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1003\" height=\"241\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-1.png\" alt=\"\" class=\"wp-image-2328\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-1.png 1003w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-1-300x72.png 300w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-1-768x185.png 768w\" sizes=\"(max-width: 1003px) 100vw, 1003px\" \/><\/figure><\/div>\n\n\n\n<p>In the following image capture is shown the content of the .pdf maldoc: \u00a0\u00a0<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"568\" height=\"808\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/CV-maldoc.png\" alt=\"\" class=\"wp-image-2329\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/CV-maldoc.png 568w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/CV-maldoc-211x300.png 211w\" sizes=\"(max-width: 568px) 100vw, 568px\" \/><\/figure><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Analysis<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Stage 0<\/h2>\n\n\n\n<p>The infection starts with the file &#8220;\u5b59\u7ee7\u8d85-\u5317\u4eac\u5927\u5b66-\u7855\u58eb.pdf&#8221; which is actually a &#8220;.lnk&#8221; file that executes the binary &#8220;aaa.bat&#8221; using the following command: %windir%\\system32\\cmd.exe \/c &#8220;__MACOSX\\.DOCX\\aaa.bat&#8221;. It is also interesting to note the comment &#8220;chang the world google&#8221;.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"560\" height=\"451\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-2.png\" alt=\"\" class=\"wp-image-2330\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-2.png 560w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-2-300x242.png 300w\" sizes=\"(max-width: 560px) 100vw, 560px\" \/><\/figure><\/div>\n\n\n\n<p>When analyzing the &#8220;.bat&#8221; binary, we observe that it is obfuscated with special characters.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1004\" height=\"161\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-3.png\" alt=\"\" class=\"wp-image-2331\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-3.png 1004w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-3-300x48.png 300w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-3-768x123.png 768w\" sizes=\"(max-width: 1004px) 100vw, 1004px\" \/><\/figure><\/div>\n\n\n\n<p>Searching for part of this string in Google, we found that it is obfuscated using a specific &#8220;.bat&#8221; file encryption technique. Fortunately, there is a tool called <a href=\"https:\/\/github.com\/cnHopeStudio\/Batch-Encryption-DeCoder\">Batch Encryption DeCoder<\/a> that allows to decrypt the content automatically.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-4.png\" alt=\"\" class=\"wp-image-2332\" width=\"820\" height=\"288\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-4.png 1004w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-4-300x105.png 300w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-4-768x270.png 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/figure><\/div>\n\n\n\n<p>Analyzing the &#8220;.bat&#8221; file, it can be seen that it performs the following actions:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>First copy the files &#8220;wda.tmp&#8221; and &#8220;mbp.tmp&#8221; to the folder &#8220;C:\\ProgramData&#8221;.<\/li><li>Then change the attributes of the file, to unhide them.<\/li><li>Rename &#8220;wda.tmp&#8221; to &#8220;OfficeUpdate.exe&#8221; and &#8220;mbp.tmp&#8221; to &#8220;appvisvsubsystems64.dll&#8221;.<\/li><li>Execute the &#8220;.pdf&#8221; file showing the Decoy (a resume).<\/li><li>Execute &#8220;OfficeUpdate.exe&#8221; to continue with stage1.<\/li><li>Finally delete the stage0 files &#8220;wda.tmp&#8221;, &#8220;mbp.tmp&#8221;, &#8220;aaa.bat&#8221; and the &#8220;lnk&#8221;; so that only what is in C:\\ProgramData\\ persists.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Stage 1<\/h2>\n\n\n\n<p>We continue the execution with the two files located in &#8220;C:\\ProgramData&#8221;, &#8220;OfficeUpdate&#8221; and &#8220;appvisvsubsystems64.dll&#8221;. The first one is the legitimate &#8220;WinWord&#8221; binary and &#8220;appvisvsubsystems64.dll&#8221; is a malicious library that will load \u201cWinWord\u201d via DLL Side-Load.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1004\" height=\"287\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-5.png\" alt=\"\" class=\"wp-image-2333\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-5.png 1004w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-5-300x86.png 300w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-5-768x220.png 768w\" sizes=\"(max-width: 1004px) 100vw, 1004px\" \/><\/figure><\/div>\n\n\n\n<p>These names and techniques are reminiscent of those used by APT29 in its campaigns in recent months and we discussed in this <a href=\"https:\/\/lab52.io\/blog\/2162-2\/\">Lab52 post.<\/a><\/p>\n\n\n\n<p>Looking at the dll &#8220;appvisvsubsystems64.dll&#8221; statically we find that its compilation date is quite recent (July 4th) and that it is packaged by the open source packer &#8220;UPX&#8221;. It is also noted that the binary is written in Go.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"802\" height=\"195\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-6.png\" alt=\"\" class=\"wp-image-2334\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-6.png 802w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-6-300x73.png 300w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-6-768x187.png 768w\" sizes=\"(max-width: 802px) 100vw, 802px\" \/><\/figure><\/div>\n\n\n\n<p>The DLL has several exports, but the malicious code is in the section called &#8220;test&#8221;. With IDA you can see how it creates a thread to execute this function.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"395\" height=\"352\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-7.png\" alt=\"\" class=\"wp-image-2335\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-7.png 395w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-7-300x267.png 300w\" sizes=\"(max-width: 395px) 100vw, 395px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"795\" height=\"153\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-9.png\" alt=\"\" class=\"wp-image-2337\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-9.png 795w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-9-300x58.png 300w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-9-768x148.png 768w\" sizes=\"(max-width: 795px) 100vw, 795px\" \/><\/figure><\/div>\n\n\n\n<p>Analyzing the operation of the library, it can be seen that it is a <strong><u>CobaltStrike beacon<\/u><\/strong> that the actor will use as a post-exploitation framework.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"430\" height=\"759\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-10.png\" alt=\"\" class=\"wp-image-2338\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-10.png 430w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-10-170x300.png 170w\" sizes=\"(max-width: 430px) 100vw, 430px\" \/><\/figure><\/div>\n\n\n\n<p>Infection Chain<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"1024\" src=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-11-749x1024.png\" alt=\"\" class=\"wp-image-2339\" srcset=\"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-11-749x1024.png 749w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-11-220x300.png 220w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-11-768x1049.png 768w, https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/image-11.png 1004w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Comparison with APT29<\/h1>\n\n\n\n<p>As discussed above, the group uses a number of TTPs and artifacts that have been linked in previous campaigns to APT29. Examples of these could be:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The use of Side-Load DLL with the &#8220;appvisvsubsystems64.dll&#8221; library and the legitimate &#8220;WinWord.exe&#8221; binary.<\/li><li>The fact of developing the DLL in the go language (something that has also been seen in APT29).<\/li><li>Deploying a CobaltStrike at the end of the infection.<\/li><\/ul>\n\n\n\n<p>However, there are several features that suggest that the attack was not perpetrated by the Russian group:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The infection chain is different, employing an encrypted &#8220;.bat&#8221;.<\/li><li>Chinese characters are found in all the files and the &#8220;decoy&#8221; is addressed to Beijing.<\/li><li>It saves the files in the %ProgramData% folder, unlike APT29 which did so in %AppData%.<strong><u><\/u><\/strong><\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">IOCs<\/h1>\n\n\n\n<p><strong>Campaign: Sun Jichao &#8211; Peking University \u2013 Master<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>File<\/strong><\/td><td><strong>Hash<\/strong><\/td><\/tr><tr><td>\u5b59\u7ee7\u8d85-\u5317\u4eac\u5927\u5b66-\u7855\u58eb.pdf.lnk<\/td><td>D5A8B6635240CC190BC869A2A41BC437A48BFBFCCE0D218B879D9768D85D1D6F<\/td><\/tr><tr><td>aaa.bat<\/td><td>F1F6BB1BDF41217D26EC33E00E1E52FBC479E636B5D43671736905210FC4D734<\/td><\/tr><tr><td>aaa.bat (DESCIPHER)<\/td><td>A5A0BEE3304C77BDB5B6DCC4EDAFBFC941CDC0B5153E3D82E2689150E83B1329<\/td><\/tr><tr><td>mbp.tmp (appvisvsubsystems64.dll)<\/td><td>6B13519A3AEA8747400932191048D5DAB7DACCB3FD45A3F5E0FFD34C32AED35D<\/td><\/tr><tr><td>appvisvsubsystems64.dll (UNPACKED)<\/td><td>D465F6DA893F2F76CDFB7089C3B9292D09A201E7D0FAEFB0F88A8B8BA5FD3FBA<\/td><\/tr><tr><td>wda.tmp (OffceUpdate.exe) [Legit]<\/td><td>DD657A7A3688D039F0A208F39B1128EC447689EE664C6695D5C7E384DCDC1014<\/td><\/tr><tr><td>\u5b59\u7ee7\u8d85-\u5317\u4eac\u5927\u5b66-\u7855\u58eb.pdf (Decoy)<\/td><td>E15EE2E8ED2C3F37C1B47BF67E81AA2E89B0CE7B3159918A32DA2E30420E6819<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>C2<\/strong><\/td><\/tr><tr><td>info.gtjas.site<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Campaign: 2023 Medical Examination Program<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>File<\/strong><\/td><td><strong>Hash<\/strong><\/td><\/tr><tr><td>2023\u5e74\u4f53\u68c0\u9879\u76ee.exe [Legit]<\/td><td>DD657A7A3688D039F0A208F39B1128EC447689EE664C6695D5C7E384DCDC1014<\/td><\/tr><tr><td>appvisvsubsystems64.dll<\/td><td>FC6847A8B62AF02C2D1EFF1D77F7D8B90CBD34654AFF38C671D86194D351CD6E<\/td><\/tr><tr><td>appvisvsubsystems64.dll (UNPACKED)<\/td><td>4C750B8471BFEC0ED2DCF1A856163601FC140EB892710B8415D505A9088BD7F3<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>C2<\/strong><\/td><\/tr><tr><td>hxxp:\/\/123.60.168.]69:443\/jquery-3.3.2.slim.min.js<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Campaign: Beijing Municipal Communications Commission Year-end Summary Report &#8211; Template 1<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>File<\/strong><\/td><td><strong>Hash<\/strong><\/td><\/tr><tr><td>\u5317\u4eac\u5e02\u4ea4\u901a\u59d4\u5e74\u7ec8\u603b\u7ed3\u62a5\u544a-\u6a21\u72481.pdf<\/td><td>D5A8B6635240CC190BC869A2A41BC437A48BFBFCCE0D218B879D9768D85D1D6F<\/td><\/tr><tr><td>aaa.bat<\/td><td>F7CC627464981B8918347487BDC73C2026B645FD31A1FBAB4D5FCC03CBE88901<\/td><\/tr><tr><td>aaa.bat (DESCIPHER)<\/td><td>256357877AE60DB9AD247AEF686AA3AAECB7DE0FDB84ED35EA91B28BE9725E36<\/td><\/tr><tr><td>\u5317\u4eac\u5e02\u4ea4\u901a\u59d4\u5e74\u7ec8\u603b\u7ed3\u62a5\u544a-\u6a21\u72481.pdf(Decoy)<\/td><td>7EE465B6132819063B741D7F60246A539A1624E0667098BB162E22DE0D06CF2E<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Lab52 has detected a different maldoc samples of a potential malicious campaign. The initial access is through a Chinese phishing. \u00a0The maldoc seems to be a campaign against Chinese speaking users as the content of the maldoc is written in Chinese. The social engineering technique applied into the maldoc\u2019s content is to pretend to [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":2329,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-2326","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-uncategorised","8":"entry"},"featured_image_src":"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/CV-maldoc-568x400.png","featured_image_src_square":"https:\/\/lab52.io\/blog\/wp-content\/uploads\/2023\/07\/CV-maldoc-568x600.png","author_info":{"display_name":"Dex","author_link":"https:\/\/lab52.io\/blog\/author\/dex\/"},"_links":{"self":[{"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/posts\/2326"}],"collection":[{"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/comments?post=2326"}],"version-history":[{"count":3,"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/posts\/2326\/revisions"}],"predecessor-version":[{"id":2342,"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/posts\/2326\/revisions\/2342"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/media\/2329"}],"wp:attachment":[{"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/media?parent=2326"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/categories?post=2326"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lab52.io\/blog\/wp-json\/wp\/v2\/tags?post=2326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}