freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Operation(호랑이머리깃발)ShadowTiger:盘踞在佛岩山上的过林之虎
2022-07-22 12:09:49
所属地 北京

概述

2019年奇安信威胁情报中心发布《阻击“幻影”行动:奇安信斩断东北亚APT组织“虎木槿”伸向国内重要机构的魔爪》全网首次披露东亚APT团伙“虎木槿”,奇安信内部跟踪代号APT-Q-11,在此后的数年间我们一直对其保持高强度的跟踪,该团伙在2019-2021三年间使用了多个浏览器0day漏洞,使用多种攻击手法对目标进行渗透攻击,基于奇安信大数据平台捕获到的攻击手法如下:

  • 普通鱼叉邮件钓鱼
  • 浏览器0day+鱼叉邮件
  • 内网水坑攻击
  • 内网0day横向移动

由于该团伙非常善于挖掘本土化软件的0day漏洞,技术较为高超,我们没有十足的把握洞悉“虎木槿”过去三年中所有的攻击活动,本文披露的活动也只是冰山一角,希望友商对本报告进行补充扩展。本篇以年份为单位,披露漏洞细节(漏洞软件目前均已修复)、成因以及利用,文末会公布历史活动的IOC,相关IOC均已无法访问,截止到报告完成前尚未捕获到新活动。

2019年

鱼叉邮件钓鱼

“虎木槿”在2019年初时通过使用可信邮箱向目标人员投递带有invoice主题的鱼叉邮件。

1658461098_62da1baa7e1737ae11489.png!small?1658461099023

我们收集到的PC端钓鱼页面如下:

1658461103_62da1bafb12a2fff8fd61.png!small?1658461104127

以新冠疫情作为诱饵的钓鱼页面

1658461109_62da1bb586f4005aaa18b.png!small?1658461110167

手机端钓鱼页面如下:

1658461115_62da1bbb9b64154dece83.png!small?1658461116201

会将输入的数据和用户名进行拼接后经过RSA加密发送到后台页面

1658461193_62da1c0943ad81b7fb172.png!small?1658461194001

加密代码如下:

1658461198_62da1c0e719962fca83ab.png!small?1658461198958

最后跳转到带有PDF的页面,有些则会跳转到合法的网盘文件下载链接,引导受害者下载安全的PDF

1658461207_62da1c17eb90f256b1035.png!small?1658461208396

部分邮件中的钓鱼链接采用google白域名转发的形式来绕过邮件检测。

https://www.google.com/url?q=http://{domain}/index.php?addr=XXX&rc=XXX&source=gmail&ust=XXX&usg=XXX

通过奇安信大数据平台关联我们观察到虎木槿对海外目标的攻击活动,冒充联合国网站对外国驻朝鲜大使馆以及朝鲜驻外国大使馆进行攻击。

cloud.unite.un.org.docs-verify.com

1658461257_62da1c493492b2fa360f3.png!small?1658461257852

返回的PDF内容为波兰驻平壤大使馆邀请函

1658461270_62da1c561d3fc899a0b0c.png!small?1658461271235

还会仿冒office相关的(www.ms0ffice.guest-mailclouds.com)钓鱼页面,遗憾的是我们并没有获取到完整的html。

鱼叉邮件+浏览器0day

攻击者除了在邮件中投递钓鱼链接外,还会投递带有针对部分浏览器0day漏洞的恶意链接,漏洞利用流程如下:

URL

功能

/ccps/20191031.pdf

伪装pdf后缀的脚本语言

/ccps/start00.html

判断浏览器版本是不是对应浏览器,如果不是的话,显示正常的pdf不攻击

/ccps/exp.html

触发漏洞

/ccps/exp2.html

执行恶意代码

/ccps/d.jpg

图片隐写加密,一个浏览器控件的dll,劫持执行木马

/ccps/e.jpg

图片隐写加密,解密后为木马文件,下载带360a.exe

邮件截图如下:

1658461288_62da1c682cb36afbeaeb4.png!small?1658461288628

Eml文件中包含了两个链接,第一个链接为探针,第二个链接使用了某域名的白名单跳转。

http://dict.XXXXX.com/appapi/redirect?module=compose.ComposeModule&redirectUrl=http://oversea-cnki[.]net/ccps/20191031.pdf

之后会再跳转到http://datasectioninfo[.]com/ccps/20191031.pdf

1658461316_62da1c847200b61254d18.png!small?1658461317062

访问同目录下的start00.html,进入漏洞利用流程,start00.html主要用来判断当前浏览器是否可利用,无论是否可利用最后都会加载正常的PDF

1658461327_62da1c8f663022a7612c1.png!small?1658461328062

值得一提的是,PDF文件同样有检测机制,如果Agent包含某些设备特征则会跳转到404页面

1658461332_62da1c94d555bf434d7dc.png!small?1658461333388

如果存在可利用的浏览器则会执行exp.html。

1658461337_62da1c999f68cd88c046d.png!small?1658461338203

判断浏览器版本和系统版本后执行exp2.html,下载两个隐写的PNG文件

1658461349_62da1ca526611cae9de50.png!small?1658461349643

并在解密后把文件下载到Mediaplay 播放器的插件目录下,实现DLL劫持,文件名:np-mswmp.dll,在播放1.wmv 后,会默认加载该dll,然后dll执行起来后会执行360a.exe的木马的操作。

1658461365_62da1cb5c26afb8d2adf0.png!small?1658461366276


漏洞分析

由于部分浏览器chrome内核版本过低,攻击者使用了两个Chrome内核漏洞,分别位于exp1.html和exp2.html,其中exp1.html由project zero 的lokihardt@google.com发现,通过该漏洞实现代码执行功能。

1658461385_62da1cc9003f5e16a39b9.png!small?1658461385729

获取全局内存读写的能力。

1658461390_62da1cce86245d0e3122e.png!small?1658461391252

获取任意对应的函数地址。1658461425_62da1cf1ab24541d9af75.png!small?1658461426250

之后通过代码执行启动shellcode修改对应内存中的部分参数1658461431_62da1cf756432cf85649e.png!small?1658461431994

其中修改如下的字符串为catalog1658461435_62da1cfbd7c40cc8be189.png!small?1658461436548

之后通过CVE-2018-6055绕过chrome沙箱,该漏洞由laginimaineb@google.com 发现,mojo接口filesystem::mojom::Directory存在漏洞,可导致任意文件读写,这个接口存在于mojo server catalog中,也就是上文中通过shellcode修改的的字符。1658461440_62da1d0049c3ddccc373e.png!small?1658461441054

因此,执行exp1后启动mojo对应的catalog服务,执行exp2调用对应的漏洞接口实现沙盒逃逸,从而在系统中写入对应的恶意插件,以实现劫持mediaplayer,此时运行一个wmv文件以实现最终的恶意代码启动。


恶意代码分析

本次活动涉及到4个落地文件和5个内存加载的插件。

文件名

MD5

编译时间

功能

360a.exe

580da4e63c9e617573831127df6e02fe

2019-10-31,07:23:22

木马Dropper,释放svctask.exe 和SndVolSSO.dll

np-mswmp.dll

8962b07c12f1e8d1a0cff81b94e21538

2007-04-11,00:18:18

劫持浏览器的控件

SndVolSSO.dll

e356e764bc0f2d2807314dae322889de

2019-10-31,07:22:16

Dropper释放的,Bypass uac起svctask.exe

svctask.exe

2c5f443b2af64be2c35ebbbc56f61ff0

2019-10-31,07:20:59

远控主文件

漏洞利用执行完毕后,会先通过Dll side-loading加载np-mswmp.dll,修改了正常的np-mswmp.dll的一个函数,被patch的地方如下1658461487_62da1d2f430c0f69ff477.png!small?1658461487906

被patch的函数会获取CreateProcessA的地址,并运行起来360a.exe1658461493_62da1d350fa097da17256.png!small?1658461494370

360a.exe基于开源putty项目,将main函数里正常代码替换为恶意代码,主要功能为解密释放loader程序SndVolSSO.dll和远控主程序svctask.exe,使用Bypass UAC技术通过iFileOperation的方式将SndVolSSO.dll拷贝到Windows目录下,实现explorer.exe劫持持久化。1658461498_62da1d3a052bc61f08743.png!small?1658461498639

SndVolSSO.dll被加载起来后使用另一种Bypass UAC的方法运行svctask.exe1658461502_62da1d3e7b117a41b87df.png!small?1658461503029

该样本的具体执行流程如下:

1. 创建名字为“lb@\x06g”的互斥体,这个互斥体在第一个数据包/qn/doil.php里当参数传递了出去,等待数据包返回,如果数据包返回的数据通过验证,木马会请求下一个数据包。1658461544_62da1d68412238ded8720.png!small?1658461545465

2. 木马发送的第二个数据包为/qn/doil.php?adm,该数据包是GET请求,会返回下一个数据包返回的数据的大小(插件包pkg的大小)。1658461556_62da1d74de91cac0b5cc3.png!small?1658461558039

3. 木马会以POST请求发送第三个数据包,该数据包会返回加密后的插件包(webroot/dn/pkg目录),以0x8111212为插件的分割字符,包含5个插件;加密算法为xor 0x211658461567_62da1d7f5b10ac34a320a.png!small?16584615681631658461578_62da1d8a714e251f756fc.png!small?1658461579702

4. 把5个插件通过远程线程注入到进程名为exe(自身)的进程里,加载起来。1658461596_62da1d9ca56aa9deef742.png!small?1658461597863

返回的插件包是一个伪装jpg的图片,头部16字节是jpg头,如图为浏览器打开的截图:1658461601_62da1da1ec9d18b41582e.png!small?1658461602381

获取到的插件列表如下:

文件名

功能

编译时间

Pear.dll

网络通信模块,主要通过管道给其他插件下发命令

2019-11-01,04:55:02

Mango.dll

控制者下发文件到受害者(ACFVXZseD)

2019-11-01,04:55:01

Melon.dll

获取计算机基本信息保存到文件

2019-11-01,04:55:02

Peach.dll

从受害者上传数据到控制者(ACFVXZseU)

2019-11-01,04:55:01

Durain.dll

获取受害者电脑上的特定目录的文件结构和敏感文件

2019-11-01,04:55:02

Lemon.dll

注入恶意代码到指定进程中

-

具体的管道功能如下:

文件名

功能

ACFVXZseR

删除指定文件

ACFVXZseE

运行指定文件

ACFVXZseU

从受害者上传文件到控制者

ACFVXZseX

退出

ACFVXZseD

控制者下发文件到受害者

ACFVXZseL

把恶意代码注入到指定进程

RES

命令执行后返回的结果

BUN

获取本次会话的密钥

RQT

获取待执行的命令队列

返回状态的数据包分为四个状态

状态码

含义

[GET_CMD]

等待控制者下发指令

[CONNECT]

连接中

[SUCCEED]

执行成功

[FAILED]

执行失败

URL接口功能如下:

URI

用途

/qn/doil.php

验证包和接收插件包

/qn/map.php

用于接收交互命令

/qn/daily.php

未知

/qn/flight.php

用于传送文件

通过奇安信大数据平台我们找到了一些同源样本

MD5

Mutex

功能

0e59d990a6cd93c999481c802ff83c3d

ACFVXZseL

从管道ACFVXZseL接收过来的恶意代码,解密后注入到指定进程

2205e0119c825b8b[]5086e648957edf79

ACFVXZseL

和C2进行通信lion.waitnetwork.net下载Apple.exe到本地执行起来,命令行参数“-Snmuery”

5b63114850a148dc74cce50a36778880


循环读取temp下的q文件,解密后执行起来


2020年

内网横向移动0day漏洞

漏洞分析

部分浏览器默认安装一个独立服务会监听高端口实现部分功能的调用,我们推测虎木槿团伙对该服务进程进行了代码审计,最终找到任意命令执行漏洞,凡是安装了部分浏览器的终端无论在内网或者在外网映射了IP均能被稳定RCE。

奇安信威胁情报中心观察到相关攻击后,第一时间对漏洞进行了复盘,现将相关细节公开,供安全研究人员参考。

绑定端口代码如下1658461647_62da1dcfe82c7e49558c6.png!small?1658461648719

通过该端口接受的数据格式需要以/?开头,以/r/n结尾,因此此时可以得出以下形式的exp构造/?*****/r/n1658461655_62da1dd79d8d7976b4291.png!small?1658461656436

接着依次解析appid、path、channel、callback等参数,每个参数以&分割,Exp格式如下

/?appid&path&channel&callback/r/n1658461668_62da1de4ab156f1a539ac.png!small?1658461669402

之后进入一个if,该大流程为--programid=分支,漏洞触发函数在here位置,因此可以判定我们的exp中一进入--programid=流程,其值会来自于appid,其中--msg_program_suburl=来自前面的path,--msg_program_channel=来自前面channel,因此这里可以得出以下exp的格式,这里通过写入断点观察可以发现if中判断的0x12的值实际是appid的长度,必须为181658461680_62da1df0152fdda1113bb.png!small?1658461680766

Exp构造格式如下:

/?appid=111111111111111111&&path&channel *****/r/n1658461687_62da1df79b8de291fb1a0.png!small?1658461688644

最终appid转为--programid=,channel转为msg_program_channel,故结合我们检测到的数据最终的EXP构造如下:

/?appid=qheejtaunxfk8pj2p9&channel=1 --no-sandbox --headless --renderer-cmd-prefix="cmd.exe /c start calc.exe&\r\n"1658461707_62da1e0b45ff8190aee42.png!small?1658461708540

值得一提的是recv后会通过空格对buffer进行分割,所有空格被格式化,导致无法顺利执行EXP,通过分析发现在channel转为msg_program_channel时,会在fun_setStr中处理对应的数据1658461713_62da1e1134126ca2bc454.png!small?1658461714268

会依次判断该数据是否为%,+,实际上%是用于处理unicode,而会将+转化为空格,也就是说exp中只需将空格替换为+号,后续代码中会自动将空格恢复1658461723_62da1e1b7935607a36cfc.png!small?1658461724548

因此完整exp如下所示

/?appid=qheejtaunxfk8pj2p9&channel=1+--no-sandbox+--headless+--renderer-cmd-prefix="cmd.exe /c start calc.exe&\r\n"

最终会调用ShellExecuteW执行对应的命令。1658461735_62da1e270ecacb2e4cf97.png!small?1658461735646


VBS分析

虎木槿利用该漏洞调用wscript执行v.vbs,从远程服务器下载Payload1658461750_62da1e36c24bca0d8c44e.png!small?1658461751757

遗憾的是我们捕获到的样本均已损坏


2021年

OA内网水坑

在2021年攻击者除了使用浏览器漏洞外还使用了一种全新的攻击模式,即入侵内网OA系统,替换OA系统网盘上的常用工具,进行水坑攻击。1658461764_62da1e446a839fa8d03d1.png!small?1658461765362

尚不清楚攻击者是通过何种方式入侵内网OA的,替换的文件如下:

Md5

文件名

被替换的工具

0782a0d6313fbb19a61d1fdc59234812

Filelocator pro 8.5 build 2912

文件内容搜索工具

29f84b0c138f0a8c3b1f6c9a43911984

filelocatorproportable.exe

文件内容搜索工具

d2ea8a53e5db1b1d78bdc08d66bc1cf6

Launcher_Setup (1).exe

V2Conference视频会议

字符串解密逻辑如下:

1658461773_62da1e4d6e5f6eb3bb96d.png!small?1658461774137

从自身释放出正常的软件安装包并启动1658461781_62da1e551dd1dd2dd2feb.png!small?1658461782257

释放恶意的SfAntiBot.exe,样本伪装成友商僵尸网络查杀工具1658461793_62da1e61bcff9b6f27162.png!small?1658461794882

Md5

文件名

编译时间

c296fc1c0d181c2e39f4fd5a8bceb70b

SfAntiBot.exe

02/10/2021 05:30:20am

样本起始会动态加载API,并尝试提升到管理员权限1658461810_62da1e72512b8d22d55e9.png!small?1658461811718

如果权限提升失败,则会用内置的UACME进行bypass UAC提权1658461816_62da1e78853f4e168873f.png!small?1658461817701

核心逻辑在窗口回调函数中1658461824_62da1e8050d0944ba3a62.png!small?1658461825122

生成配置文件,存放经过加密的C21658461849_62da1e99a346a9caca0df.png!small?1658461850443

读取配置文件解密C21658461854_62da1e9e957aa720892f3.png!small?1658461855450

http://190.2.147[.]128/sangfor/cloud/edrTL.php

收集本机信息,将数据上传到远程服务器上1658461869_62da1ead17b0e7e8fe359.png!small?1658461870493

从远程服务器读取payload数据并写入文件1658461886_62da1ebecdb5c50027154.png!small?1658461888342

启动payload,获取屏幕截图发送到远程服务器1658461903_62da1ecf4b70cf65acf27.png!small?1658461904724

下载的payload如下:

Md5

文件名

功能

87b65abafbd51bbd30a5eae624401912

vmcret.exe

反弹shell到远程服务器

63b80446ff4cefa9db70f6cdffaa6a05

mscowlib.dll

下载者

aef737cc72ac492ae54cf916cd60b7c1

360chkcloud.exe

下载者

vmcret.exe为攻击者自己编译的Cryptcat,主要功能反弹shell1658461917_62da1edd386ef69f806f7.png!small?1658461919028

194.88.107.34:443
193.9.113.180:80

攻击者利用反弹shell执行一些cmd命令创建计划任务和横向移动,接着攻击者先是下发了一个名为360ChkCloud的下载者测试文件,功能非常简单1658461947_62da1efb7810df47a1072.png!small?1658461948275

接着下发了带有混淆的下载者,但被天擎查杀,

1658461958_62da1f0680ddb61a07960.png!small?1658461959699

1658462706_62da21f2404bfba0de7b4.png!small?1658462707375CC=88.150.227.110:13

1658461972_62da1f142501263a26c44.png!small?1658461974311

IOC

2019年

MD5:

580da4e63c9e617573831127df6e02fe

8962b07c12f1e8d1a0cff81b94e21538

e356e764bc0f2d2807314dae322889de

2c5f443b2af64be2c35ebbbc56f61ff0

0e59d990a6cd93c999481c802ff83c3d

2205e0119c825b8b[]5086e648957edf79

5b63114850a148dc74cce50a36778880

CC:

Microsoft.ccivde.com

mail-hostfile.com

141.255.160.250

oversea-cnki.net

datasectioninfo.com

blue.chinfoset.com

lion.waitnetwork.net

cloud.unite.un.org.docs-verify.com

www.ms0ffice.guest-mailclouds.com

service-hq.com

netease.smartsystem36.com

www.morning-place.com

helpdesk-mailservice.com

netease.mail-drivecenter.com

2020年

CC:

http://62.112.8.79/Images/Png/p


2021年

MD5:

0782a0d6313fbb19a61d1fdc59234812

29f84b0c138f0a8c3b1f6c9a43911984

d2ea8a53e5db1b1d78bdc08d66bc1cf6

c296fc1c0d181c2e39f4fd5a8bceb70b

87b65abafbd51bbd30a5eae624401912

63b80446ff4cefa9db70f6cdffaa6a05

aef737cc72ac492ae54cf916cd60b7c1

2353c6bc28050fc95ceca63ef608bca8
fe39b7713f040e839f54edc42af7b63a


CC:

http://190.2.147[.]128/sangfor/cloud/edrTL.php

http://190.2.147[.]128/360-Cloud/Chk

194.88.107.34:443

193.9.113.180:80

88.150.227.110:13


# APT组织 # 虎木槿
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录