e-mail  >

twitter > @rootredrain



 _     _  _        _              _____ 
| |__ | || |   ___| | ___ __ ___ |___ / 
| '_ \| || |_ / __| |/ / '_ ` _ \  |_ \ 
| | | |__   _| (__|   <| | | | | |___) |
|_| |_|  |_|  \___|_|\_\_| |_| |_|____/ 
                                       
                                                                                                 


 <-- BACK TO hackdog.me 



Kingslayer - A supply chain attack -- Part 1


前言

两周前,我在西班牙参加了一个闭门会议,其中一个来自RSA的议题谈及了供应链攻击<Sysadmin Backdoor Courtesy C0d0s0: Inside the Kingslayer Software Supply Chain Attack>正好在8月的时候刚爆发了XshellGhost事件,所以我对这一类攻击尤为感兴趣. 之后star也在360威胁情报中心专门整理了关于供应链攻击的相关内容,罗列了之前已有的攻击事件,但是少了Kingslayer,不免有些遗憾,回国后我便抽时间回顾复习这一及其庞大且精巧的供应链攻击.

因为攻击比较繁杂庞大, 所以想要分成几个部分写, 本文暂为第一部分吧, 主要为track开个头, 也大概描述一下事件.

供应链环节

1. 开发环节

软件开发涉及到的软硬件开发环境、开发工具、第三方库、软件开发实施等等,并且软件开发实施的具体过程还包括需求分析、设计、实现和测试等,软件产品在这一环节中形成最终用户可用的形态。

2. 交付环节

用户通过在线商店、免费网络下载、购买软件安装光盘等存储介质、资源共享等方式获取到所需软件产品的过程。

3. 使用环节

用户使用软件产品的整个生命周期,包括软件升级、维护等过程。

灰色供应链

在国内,众多的未授权的第三方下载站点、云服务、共享资源、破解盗版软件等共同组成了灰色软件供应链,这些环节的安全性问题其实也属于软件供应链攻击的范畴,但由于这些问题属于长期困扰我国信息系统安全的灰色供应链问题,具有一定的中国特色,故单独进行说明。

--via <软件供应链来源攻击分析报告>

在一个软件落地到分发被用户使用使用,开发环节尤为重要,也是供应链攻击中及其看中的一点,因为软件开发流程复杂,涉及到开发环境,SDK,第三方库引用等等恶意攻击有可能存在于污染开发环境或源代码开发工具(如wormhole,Ken Thompson对编译器的后门污染,XCodeGhost事件等等), 攻击源代码本身漏洞, 开发厂商自带后门. 我在随手翻阅装逼之书<PoC||GTFO>的时候看到有一篇为<Deniable Backdoors from Compiler Bugs>的文章, 描述了一个通过污染编译器添加后门的威胁模型, 这便是对开发工具污染的一种手段.

https://i.imgur.com/L20e7lg.jpg

在分发交付环节中, 所有的下载渠道, 网络共享等获取软件的行为都可能受到攻击, 尤其是在Android移动端, 国内七七八八的应用市场, 各种软件盗版下载站, 均有可能是带有恶意代码的程序分发渠道.

在使用过程中, 很多应用程序都有对自身更新的功能, 攻击者可以通过劫持升级达到恶意代码落地的目的, 例如今年6月的NotPetya事件, 攻击者就是通过劫持了me-doc的更新, 让病毒落地.

Kingslayer的攻击环节?

通过听取议题和我的回顾跟进, Kingslayer在这三个环节均采取了不同程度的攻击, 污染开发环境(盗取合法证书), 攻击分发渠道, 劫持软件更新等, 在接下来的内容中将逐一分析.

Kingslayer compromise infection chain

早在2015年, RSA披露了一次叫做Schoolbell的大规模攻击, 其中一个C2域名叫做google-dash.com

域名行为分析

对该域名解析记录进行查询关联

*.google-dash.com All Type In rrset
-------
Record times: 2016-09-10 16:13:51 -- 2016-09-10 16:13:51  
Count: 1
www.google-dash.com A   209.249.175.13
Record times: 2015-11-21 14:55:44 -- 2015-11-21 14:55:44  
Count: 1
www.google-dash.com A   216.58.220.196

对存活209.249.175.13进行A记录查询

209.249.175.13 A In rdata
--------
vmtools.net                 209.249.175.13  2016-05-26 11:20:39 
haha.school                 209.249.175.13  2016-04-23 11:07:38 
adobesys.com                209.249.175.13  2017-06-05 22:37:16 
office365e.com              209.249.175.13  2016-10-05 01:33:51 
www.office365e.com          209.249.175.13  2016-06-14 23:16:08 
pic.nicklockluckydog.org    209.249.175.13  2016-09-07 15:48:17 
ukoffering.com              209.249.175.13  2016-10-05 03:53:33 
adobesys.com                209.249.175.13  2017-09-10 22:25:11 
supermanbox.org             209.249.175.13  2017-09-25 22:17:37 
microsoft-cache.com         209.249.175.13  2016-10-05 03:19:31 
adobesys.com                209.249.175.13  2016-12-15 10:09:15 
pwc.vmtools.net             209.249.175.13  2016-05-12 07:59:17 
jbossas.org                 209.249.175.13  2016-10-05 20:14:46 
vmtools.net                 209.249.175.13  2016-05-25 18:10:50 
www.xjjboss.com             209.249.175.13  2016-10-04 16:46:26 
office365e.com              209.249.175.13  2016-10-05 09:03:17 
www.adobesys.com            209.249.175.13  2016-10-30 20:47:31 
haha.school                 209.249.175.13  2016-04-26 01:03:23 
microsoft-cache.com         209.249.175.13  2016-10-08 15:20:00 
www.xjjboss.com             209.249.175.13  2016-09-07 18:39:47 
supermanbox.org             209.249.175.13  2017-09-26 05:10:30 
jbossas.org                 209.249.175.13  2016-08-12 00:32:26 
supermanbox.org             209.249.175.13  2016-11-28 21:56:44 
www.ukoffering.com          209.249.175.13  2016-10-09 18:14:15 
pwc.vmtools.net             209.249.175.13  2016-06-29 13:48:10 
haha.school                 209.249.175.13  2016-04-25 21:26:01 
kixkixatjapan.com           209.249.175.13  2017-05-11 18:13:15 
pwc.vmtools.net             209.249.175.13  2016-06-24 17:32:10 
xjjboss.com                 209.249.175.13  2016-10-04 19:56:25 
www.office365e.com          209.249.175.13  2016-08-18 10:43:14 
mail.vmtools.net            209.249.175.13  2016-06-24 06:24:47 
kixkixatjapan.com           209.249.175.13  2016-09-15 10:31:51 
kixkixatjapan.com           209.249.175.13  2017-05-29 04:38:16 
vmtools.net                 209.249.175.13  2016-06-26 21:04:22 
www.google-dash.com         209.249.175.13  2016-09-10 16:13:51 
www.ukoffering.com          209.249.175.13  2016-10-04 16:46:16 
wap.supermanbox.org         209.249.175.13  2016-06-07 01:18:43 
www.jbossas.org             209.249.175.13  2016-10-09 19:08:54 
ukoffering.com              209.249.175.13  2016-07-05 13:58:06 
www.nicklockluckydog.org    209.249.175.13  2016-07-30 13:04:05 
www.ukoffering.com          209.249.175.13  2016-05-15 08:17:41 
jbossas.org                 209.249.175.13  2016-10-07 08:15:19 
xjjboss.com                 209.249.175.13  2016-10-09 09:26:18 

www.google-dash.com的历史解析记录查询如下:

2016-10-27  209.249.180.243 美国  美国  zayo.com
2016-10-22  67.205.153.100  美国  纽约州 digitalocean.com
2016-10-12  209.249.180.243 美国  美国  zayo.com
2016-07-13  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-07-11  127.0.0.1   本机地址    本机地址    
2016-07-10  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-07-09  127.0.0.1   本机地址    本机地址    
2016-04-29  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-04-28  192.241.211.14  美国  加利福尼亚州  digitalocean.com
2016-04-27  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-04-26  192.241.211.14  美国  加利福尼亚州  digitalocean.com
2016-04-21  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-04-20  192.241.211.14  美国  加利福尼亚州  digitalocean.com
2016-04-19  192.241.211.14  美国  加利福尼亚州  digitalocean.com
2016-04-18  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-04-17  192.241.211.14  美国  加利福尼亚州  digitalocean.com
2016-04-13  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-04-11  192.241.211.14  美国  加利福尼亚州  digitalocean.com
2016-04-10  209.249.175.13  美国  伊利诺伊州   zayo.com
2016-04-09  192.241.211.14  美国  加利福尼亚州  digitalocean.com
2016-03-30  159.203.245.231 美国  加利福尼亚州  digitalocean.com
2015-12-30  121.54.168.216  中国  香港  
2015-12-25  216.58.220.196  日本  东京都 google.com
2015-07-10  23.92.25.46 美国  加利福尼亚州  linode.com

继续对存活地址209.249.180.243track, 其解析记录如下

209.249.180.243 All Type In rdata
--------
www.mytriponline.net            209.249.180.243 2017-09-27 06:35:30 
www.oraclesoft.net              209.249.180.243 2017-09-09 10:11:36 
www.office365e.com              209.249.180.243 2017-06-16 17:33:57 
portal.mechanicnote.com         209.249.180.243 2017-09-20 21:24:05 
microsoft-cache.com             209.249.180.243 2017-09-10 02:37:49 
www.xjjboss.com                 209.249.180.243 2016-12-24 20:57:12 
mail.ukoffering.com             209.249.180.243 2017-08-15 10:23:50 
jbossas.org                     209.249.180.243 2017-09-20 15:21:14 
www.ukoffering.com              209.249.180.243 2017-09-27 07:33:00 
microsoft-cache.com             209.249.180.243 2016-11-25 15:53:01 
adobesys.com                    209.249.180.243 2017-09-25 18:21:12 
smtp.oraclesoft.net             209.249.180.243 2017-04-01 04:23:21 
ukoffering.com                  209.249.180.243 2016-11-11 06:07:46 
www.jweblogic.com               209.249.180.243 2016-12-12 17:14:20 
mindystyle.com                  209.249.180.243 2017-09-24 18:59:06 
xjjboss.com                     209.249.180.243 2016-11-25 07:11:23 
www.office365e.com              209.249.180.243 2017-09-20 20:16:57 
www.xjjboss.com                 209.249.180.243 2017-09-26 22:13:44 
www.adobesys.com                209.249.180.243 2017-09-20 10:41:54 
www.jweblogic.com               209.249.180.243 2016-12-07 09:45:04 
g890ios20.com                   209.249.180.243 2017-09-20 20:15:44 
mechanicnote.com                209.249.180.243 2017-09-26 06:06:38 
www.chaussurejordanfemme.com    209.249.180.243 2017-09-25 07:23:21 
mytriponline.net                209.249.180.243 2017-09-25 16:35:18 
jessiman901.com                 209.249.180.243 2017-09-20 20:15:44 
investcliffs.com                209.249.180.243 2017-09-22 23:12:43 
www.jbossas.org                 209.249.180.243 2017-09-20 20:23:52 
www.microsoft-cache.com         209.249.180.243 2017-09-20 20:24:02 
xjjboss.com                     209.249.180.243 2017-09-10 06:37:23 
office365e.com                  209.249.180.243 2016-11-10 11:26:31 
ceshi.novostimir.com            209.249.180.243 2016-10-09 05:19:36 
www.ukoffering.com              209.249.180.243 2016-12-25 00:24:22 
www.ukoffering.com              209.249.180.243 2017-04-16 21:48:01 
ukoffering.com                  209.249.180.243 2017-09-10 00:14:59 
dns1.mechanicnote.com           209.249.180.243 2017-09-20 21:24:05 
oraclesoft.net                  209.249.180.243 2017-09-09 11:01:38 
www.telephph.com                209.249.180.243 2017-09-27 02:35:29 
www.animationmyth.net           209.249.180.243 2017-09-21 20:20:11 
jbossas.org                     209.249.180.243 2017-03-14 14:06:03 
jbossas.org                     209.249.180.243 2016-11-19 15:54:25 
office365e.com                  209.249.180.243 2017-02-23 16:11:07 

除了一系列在之前Schoolbell中已知的恶意域名外, 还有一个oraclesoft.net也解析到了这个IP.从以上的几个schoolbell的关联域名看, 所有的相关域名仿冒的知名域名.

源代码污染

如RSA所说, 他们在Altairtech(http://www.altairtech.ca/)落地了第一个攻击样本, 公司提供安全咨询, 漏洞评测等安全服务, 此外还有多款日志分析软件, EventID(http://www.eventid.net/)尤为出名.

但在某个EventID版本中, 发现了一个疑似含有恶意代码的分发版本.

样本在vt上现在的情况如下:

https://i.imgur.com/DTFOGrJ.jpg

而在最初RSA捕获上传样本时, 查杀率为0

https://i.imgur.com/5eAelBL.jpg

样本分析

通过简单的静态分析,除main入口,还有StartServiceMain两个入口,通过Start安装服务,通过ServiceMain执行恶意行为

https://i.imgur.com/YEXLKoI.png

执行代码会在运行过程中解密,执行后擦出加密:

Imgur

Imgur

字符串除了一套解密流程里面在代码里面还有xor 0x90的解密方式。并且在字符串中插入垃圾字符做一定程度的anti reverse

Imgur

对其进行修复后,获取到C2 Server地址

Imgur

http://www.google-dash.com:80

样本还有一些其他行为, 但是都是通过动态调用api的方式获取, 这里先按下不表.

但是产生了一些疑问, 为什么这个Kingslayer的样本C2和之前的Schoolbell匹配上了, 之前提到的www.oraclesoft.net用意何为? 整个攻击中就只有这一个落地样本么?

源代码污染推测

根据RSA在会议和公开报告中的描述, 攻击者对Eventid进行了长期有效的攻击, Eventid作为知名的日志分析软件, 在Altairtech也有着广泛内部使用, 所以攻击者对Eventid的攻击行为, 意在整个Altairtech.
当时Eventid的工程师在Dropbox同步了Eventid的源代码和证书, 虽然时间仅仅只有短短十多天, 但正是这短短十多天的泄露导致了Kingslayer的开始.
攻击者入侵了Eventid维护用于更新软件的服务器, 实施了定向的水坑攻击, Altairtech的管理员正常点击Eventid的更新链接, 因为更新服务器被攻击者控制, 攻击者在更新服务器上落写了.htaccess进行重定向跳转, 讲更新地址跳转到了攻击者自己的服务器94.242.*.*下载之前在Dropbox泄露被加入了恶意代码的Eventid程序, 由于之前还一并泄露了证书, 所以攻击者的恶意版本签发是正常无害的, 以此完成了第一次感染.

从上面的描述, 攻击者能够第一时间获知工程师的Dropbox leak了重要代码和文件, 说明攻击者对目标进行了长期实时的监视, 在短短十多天的过程中, 攻击者完成了对更新服务器的入侵, 实施了定向水坑, 并第一时间落地了被植入恶意代码的更新版本. 攻击者任何一步都没出错, 且在短时间内完成了精妙的攻击链, 这群选手, 非常专业.

(因为会议属于闭门会议, 所以我这里也没有拍照或者任何图片留存的资料, 当时我存在着一个疑问, 为什么攻击者能第一时间获知到泄露的消息? 要么是盯目标盯了很久且做好了非常成熟的攻击预案, 要么就是目标公司有spy, 甚至于Dropbox的泄露都不一定能说清楚, 这后面恐怕藏着一个景甜大幂幂?)

第一部分小结

至此大概描述了在Kingslayer中, 开发环节的源代码污染部分, 解释了Kingslayer攻击中Eventid的恶意版本来源, 并通过一部分简单的逆向分析提出了一个疑问, 在Kingslayer对Eventid的攻击和此前Schoolbell有何关系? 为什么二者的域名行为关联如此相似, 各个IOC向量间仅有两层关联维度

Imgur

下集预告

Kingslayer在攻击更新服务器后成功对Eventid植入恶意代码后, 还对其他更新做了劫持, 并且做了进一步的第二阶段攻击, 匹配上了之前的几个IOC域名, 也落地了Kingslayer攻击中的另外两个样本.

本集涉及到的IOC

Filename Hash Description
64.dll 9c4053485b37ebc972c95abd98ea4ee386feb745cc012b9e57dc689469ea064f Eventid恶意更新
www.google-dash.com N/A Eventid C2
www.oraclesoft.net N/A Backdoor C2

<-- BACK TO hackdog.me