一. 综述
1概述
近期,绿盟威胁情报中心(NTI)在一次应急响应中,发现一起使用模块化恶意工具集“NuggetPhantom(掘金幽灵)”的安全事件。据我们观测,本次安全事件背后的组织最早出现于2016年底,其曾在2016年底的“天翼校园客户端蓝屏事件”以及2017年底的“天翼校园客户端挖矿程序事件”中有所行动。
从我们捕获的该组织惯用恶意软件载体中可以看出,该组织所使用的恶意工具集已经高度模块化,拥有极强的灵活性。该工具集不仅注重于免杀技术,并且已开始利用多种隐藏手段,表现出针对基于行为检测和流量分析的安全设备的对抗性。
在目标筛选策略上,该组织深谙“人是安全的尺度”这一主题,首先通过设备的安全性筛选专业程度较低的用户,对其使用Nday漏洞EternalBlue进行攻击,并且以牺牲收益为代价尽可能降低恶意程序对用户的影响以避免被察觉,获得了良好的隐蔽性。
2攻击链
攻击者获知用户计算机存在EternalBlue漏洞后,利用该漏洞向用户计算机发送Eternal_Blue_Payload载荷,该载荷及其所释放的各模块皆通过访问下载服务器来获取加密后的各用途模块文件,并在内存中动态解密这些模块代码,执行模块对应的恶意功能。攻击链的流程图如下:
可以看出,攻击者的思想完全吻合经典的攻击链模式:
侦查:攻击者通过扫描、开源数据等信息,了解到互联网上依然存在大量未修复EternalBlue漏洞的计算机。
武器化:攻击者针对这些计算机,制作漏洞利用载荷。
传送:攻击者将恶意软件及各模块发布至自己的服务器。
利用:攻击者利用EternalBlue漏洞逐一攻击目标,执行下载器漏洞利用载荷。
安装:下载器漏洞利用载荷下载恶意软件,并令其依次部署自身模块。
建立连接:恶意软件和攻击者的C&C服务器进行通信获取指令及挖矿程序配置。
行动:恶意软件执行挖矿和DDoS行为。
3影响范围
攻击者在本次任务中使用的核心C&C服务器IP地址60.132.11.86(转义后为98.126.200.58)所关联的域名*.woeswm.com,仅在某dns解析观测节点,从2018-06-20起,已发现18933次域名解析请求。据此估算,此威胁在全球的感染数量不少于10W。
4组织活动
通过样本行为集合及其复用的模块,可以将2016年底发生的“天翼校园客户端蓝屏事件”,2017年底发生的“天翼校园客户端被植入挖矿程序事件”,以及本次事件关联至同一攻击组织,我们可以从这三起已被关联的事件中看出该组织的部分发展历程:
时间节点 | 2016年底 | 2017年底 | 当前 |
兼容性 | 差 | 好 | 好 |
模块化程度 | - | 产生模块概念 | 完全模块化 |
加密方式 | - | 自定义加密算法 | 标准加密算法 |
恶意功能 | - | 挖矿、刷流量 | 挖矿、DDoS |
隐蔽性 | 弱 | 中 | 强 |
攻击手段 | 植入天翼客户端 | 植入天翼客户端 | 利用永恒之蓝漏洞 |
目标群体 | 高校学生PC | 高校学生PC | 疏于管理的设备 |
该组织为保证顺利进行黑产活动,在2016年首先发起了各模块的测试工作,然而在公测阶段由于关键模块rootkit驱动的兼容性问题,引起大量win10用户计算机陷入蓝屏,使得黑产活动尚未开始便已暴露,导致失败。
为避免被发现,该组织经过了一段长时间的蛰伏,并于2017年中旬重新设计驱动程序,紧跟行业热点开始进行小规模的挖矿活动,同年年底选择依然存在未解决问题的天翼校园客户端进行再次植入,本次由于rootkit驱动的兼容性得到了提升,故隐藏较为顺利。然而由于其恶意功能模块的设计缺陷,导致挖矿程序肆意占用用户计算资源,使得其行为被用户发觉,因此终告失败。
再次经过一段长时间的蛰伏,该组织于2018年7月从其他小黑产行为中回归挖矿,这次该组织以降低自身单位肉鸡三分之二的收益为代价换取了更难以被察觉的隐蔽性,并且其已深刻了解到国人对下载软件的不信任,故选择使用已有高效且成熟的利用工具,而全球依然有大量未打补丁机器的EternalBlue漏洞进行植入。其所瞄准的群体也由可能具备一部分相关专业知识的高校学生群体转向疏于管理的计算设备,显然已经过了成熟的考量。可确认其经过长期的发展,已成为一个分工合理、目标明确、紧跟行业热点、懂得从过往经验中学习的中/高端黑产组织。
二. 样本分析
1高度模块化
这组恶意工具已被高度模块化,因此配置十分灵活。按照在该工具集中的主要功能,可将这组工具中出现的文件分别归类于部署、下载、功能这三种模块。
其中由部署模块负责初始化恶意软件相关配置和加载rootkit驱动实现隐藏,由下载模块实时获取C&C服务器上的功能模块并加载调用,以完成攻击者所指定的任务。
由于模块化的特性,攻击任务的部署变得相当灵活,攻击者可视当前目的不同而下发不同的功能模块,因此在单一攻击事件中难以窥见攻击者全貌。
以下将对每个模块进行简单分析,从侧面观察攻击者的技术特点。
2谨慎部署,多重隐藏
最初被植入到用户计算机的文件即部署模块,攻击者在这一模块中主要使用以下技术和手段,用于隐藏其恶意行为和静态特征,以对抗分析检测:
重启后执行:通过msi程序的相关设置,使样本在用户手动重新启动计算机以后方可执行恶意行为,可以绕过基于行为检测的沙箱环境。
代码保护:通过vmprotect保护留在用户计算机中的服务程序,以抵抗静态分析和杀软查杀,同时增加人工分析样本的难度:
名称校验:对自身文件名进行校验,若结果与其硬编码的预期结果不符,则不表现任何恶意行为。以此抵抗部分沙箱的分析:
运行时释放:通过在运行中动态解压、释放,并利用傀儡进程技术注入代码的手段抵御静态分析:
驱动级隐藏:通过加载驱动程序, HOOK IRP_MJ_CREATE、注入service.exe和regedit.exe,实现隐藏服务程序文件及其注册表项的功能,提高查杀难度和样本提取难度:
通过该rootkit驱动组件,我们关联到了另外一个rootkit驱动程序,该驱动程序曾在2016年底的“天翼客户端植入木马导致蓝屏”事件中服役,其同证书、同pdb路径的更新版本在2017年底“天翼客户端被植入挖矿病毒”事件中亦有体现。因此可判定是同一组织所为。
漏洞修复:样本利用netsh.exe的ipsec功能,执行以下命令行对135、139、445端口进行屏蔽,防止其他扫描源使用同样的漏洞攻占设备,形成抢占资源的状况:
"C:\WINDOWS\system32\netsh.exe" ipsec static add policy name=qianye"C:\WINDOWS\system32\netsh.exe" ipsec static add filterlist name=Filter1"C:\WINDOWS\system32\netsh.exe" ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=445 protocol=TCP'"C:\WINDOWS\system32\netsh.exe" ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=135 protocol=TCP"C:\WINDOWS\system32\netsh.exe" ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=139 protocol=TCP"C:\WINDOWS\system32\netsh.exe" ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=445 protocol=UDP"C:\WINDOWS\system32\netsh.exe" ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=139 protocol=UDP"C:\WINDOWS\system32\netsh.exe" ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=135 protocol=UDP"C:\WINDOWS\system32\netsh.exe" ipsec static add filteraction name=FilteraAtion1 action=block"C:\WINDOWS\system32\netsh.exe" ipsec static add rule name=Rule1 policy=qianye filterlist=Filter1 filteraction=FilteraAtion1"C:\WINDOWS\system32\netsh.exe" ipsec static set policy name=qianye assign=y
部署模块在以上数种机制的保护下,将inject_downloader.dll注入一个伪装为由service.exe启动的子进程,在该进程中释放并加载下载模块程序。
3隐匿通讯,灵活配置
下载模块用于获取各恶意模块文件及其配置信息,其通信逻辑如下所示:
在此模块中不仅采用传统的C&C地址池来防止服务器失效,样本还采用了一种特殊的隐藏方式,用于阻止用户对C&C通信的屏蔽并抵抗威胁情报平台通过域名解析的IP地址来关联样本的能力。我们称之为“地址转义”,其技术细节非常简单:
攻击者首先指定公共服务器来查询其C&C域名,以获得其网络地址X,而后,该机制将X(本例中为60.132.11.86)的十六进制表示与magic值(本例中为0x305DA)做减法操作,得到C&C的真正IP地址Y(本例中为98.126.200.58),下载模块通过和Y进行通信来获取其在本次任务中所需用到的模块:
如此的过程中,由于C&C域名直接解析到的地址不会被实际用于通信,因此被感染者无法通过屏蔽该域名对应的IP地址的访问来阻挡通信流程,同时亦不能屏蔽对公共DNS服务器的访问以影响业务,因此具备一定的穿透性。
样本的通信流程经过压缩和加密,我们还原了其明文形式如下:
888$30$20180618$6$CpuGad$http://Up.Vohjtk.Com/RetGad/CpuGad/20180618.6/MsGad.PNG|$http://Up.Vohjtk.Com/RetGad/CpuGad/20180618.6/MsRun.PNG|$|http://98.126.36.26:443/BuyGad/CoreRA07.PNG?RAT2018RA07?1?1?6?6#0#1#|http://Ae.Eqwauemt.Com/BuyGad/CoreRD09.PNG?RAT2018RD09?1?1?6?6#1#0#|http://Up.Vohjtk.Com/BuyGad/CoreE011.PNG?CPU2018E011?1?1?6?6#1#0#|$5633c2d7ee994d04$$3$0$1$1$1$223.39.186.123#7.255.184.172#157.129.241.108#157.129.236.128#157.129.219.175#157.129.212.103#147.88.219.209#119.125.74.121#69.187.163.188#$2018-01-01 00:00:06$
可以看到,样本在此函数中访问了大量的url列表以下载各种恶意行为的模块,这些模块最后将在本地解压/释放出主要用于执行恶意功能的模块程序,下发的模块完全取决于攻击者的意图,模块程序可以是各种形式的可执行文件或脚本。同时,样本还获取了一些IP地址列表,将它们通过和上文相同的地址转义过程,转换出的真实IP将加密后保存在注册表中,并作为挖矿模块的C&C服务器使用,以实时更新挖矿程序的配置信息。
以下是经过地址转义后,得到的真实IP地址列表:
5.34.183.123 |
45.249.181.172 |
195.123.238.108 |
195.123.233.128 |
195.123.216.175 |
195.123.209.103 |
185.82.216.209 |
157.119.71.121 |
107.181.160.188 |
154.48.241.199 |
137.175.66.15 |
4舍弃收益,细水长流
挖矿模块是由inject_loader.dll解压并执行的。区别于普通的挖矿程序,该模块使用了一些特殊的方式以提高灵活性和隐蔽性:
动态配置:样本通过访问配置注册表项中的C&C服务器,实时获取挖矿程序配置信息,包括算法类型、矿池地址、在线钱包用户名等,用户难以通过屏蔽已知公开的矿池地址来阻止挖矿行为。
资源利用节制:样本通过挖矿程序参数,严格限制用于挖矿的CPU资源维持在一个较低的水平(25%),防止用户因为计算机运行速率受影响而发觉自身存在。
目前观察到挖矿模块的C&C服务器曾下发过几组挖矿配置信息,其中在线钱包用户名由固定字符串"Wk+"连接攻击者指定的偏移数字作为在线钱包用户名,若无特殊配置格式,则程序中默认该偏移值为1000:
矿池地址 | 在线钱包用户名 | 密码 |
98.126.80.90:15912 | Wk+1000 | X |
98.126.80.91:15912 | Wk+1000 | X |
98.126.1.26:15912 | Wk+1000 | X |
98.126.1.27:15917 | Wk+1000 | X |
154.48.241.199:15912 | Wk+1000 | X |
以上矿池地址经验证,都是攻击者租用vps自行搭建的矿池节点,在这些节点中未配置公共矿池通常会提供的收益查询接口,攻击者需要使用远程桌面连接(开放于55588端口)等方式自行登录服务器查询当前收益:
这确保攻击者之外的用户无法通过网络流量中暴露的矿池地址、用户名和密码来追溯到攻击者的更多信息(总收益、门罗币钱包地址、矿工数量等)。
然而挖矿模块的主要功能部分依然是由开源挖矿项目XMRIG修改而来,因此其中产生的流量依然是明文形式,用户可检测产生此形式数据包的会话,实时告警并屏蔽每个新的矿池地址:
结合其前期的部署过程,以及该模块与前模块的耦合关系可以看出,该模块是这一攻击任务中的主要功能模块,攻击者当前阶段的主要目的在于长期占用被感染者的计算资源进行挖矿,以获取收益。
5榨取价值,百密一疏
除了在本次任务中担当主要角色的挖矿模块,我们还发现攻击者下发了一个额外的DDoS模块。该模块也是由inject_loader.dll在本地直接解压执行,它将访问攻击者指定的的C&C服务器下载一个独立运行的EXE文件以执行主要功能。
与挖矿模块经由挖矿C&C配置与下载模块的强耦合不同,DDoS模块的配置信息被直接硬编码于其二进制文件中,无需注入亦可独立于其他模块自主运行,因此判断该模块在本次攻击任务担任次要功能模块的角色。这是由于攻击者为了最大化肉鸡价值,不仅占用其计算资源进行挖矿,而且打算占用其带宽资源进行DDoS攻击以获取额外盈利。
然而该模块未再使用任何保护技术加以保护,甚至也未使用IP转义技术以隐藏真实C&C IP地址,而是将C&C服务器IP地址硬编码至二进制文件中。这一模块的部署实际上是露了攻击者的马脚,也为分析工作带来了突破点。
观其通讯流程,可见其依然沿用其他模块中使用的压缩和加密算法,密钥使用与其他模块相同,可见仍是同一作者所为。该模块与前阶段工具在安全性上的差异,结合其自身硬编码信息,认为其是已实现恶意功能,而未使用保护机制的早期测试版本:
该模块可发起的DDoS攻击类型:
三. 攻击定位
经NTI定位,该组威胁中主要被使用的C&C IP地址: 98.126.200.58,位于美国。
根据NTI查询结果,该IP地址曾托管的web页面(2018-07-16扫描结果,与发布恶意样本时间相符)中的内容明显符合中文语言环境下用户命名习惯,可确定该组织正长期针对中国境内的目标。
(经遮挡处理过的部分展示了攻击者曾参与过的其他黑产行为,有兴趣的读者可自行前往nti.nsfocus.com进行查看)
四. 结论
依据以上分析,可得出如下结论:
1、漏洞:作为2017年初被披露的高危漏洞,EternalBlue迄今为止已有十分高效的成套利用工具和大量的扫描源。时至今日其热度仍然不减,全球目前仍存在大量未打补丁的windows设备。
2、工具:用于黑产行业的恶意样本工具,其结构已由传统的作坊式全功能定制,逐步向模块化、工程化的方向进行拓展,攻击者在一次攻击中仅植入本身恶意行为较少,只是实时请求模块的可控Loader程序,后续功能模块可随信息收集工作的开展或仅仅是任务目的、黑产行业热点等的变动而灵活下发或卸载。作为被动进行分析的安全防护设备,无论从哪个角度进行分析,都难免沦于管中窥豹,难以得其全貌。
3、行业:僵尸矿工通常被认为是准入门槛和技术含量较低的黑产行业,其中存在的对抗技术是相对匮乏的。然而从本案例中可以发现,黑产组织在有利可图的产业中会不吝投入各种技术手段来对抗安全产品,这亦是当前僵尸矿工事件检出率有所下降的部分原因-并非从未发生,只是更难以检测和察觉。
4、组织:活跃在国内的成熟黑产组织目前更注重于恶意行为的隐藏和持久化,其企图已从试图控制用户的一切资源转向尝试在用户毫无察觉的情况下营寄生活动,为此其已不吝以牺牲收益为代价来达到持久化的目的。
五. IOC输出
{ "report_name":"NuggetPhantom", "alias":"", "brief":"An modularized RAT for XMRminer and DDoS", "created_time":"2018-07-16", "update_time":"2018-07-16, "keywords":["RAT","MINER","DDoS"], "tag":"NuggetPhantom", "ref":[""], "info_extract": { "date":"", "hash": [ {"value":" 4209ae0cb569efab29ca9d2d7f4a211b","filename":" MsHIDPARSEApp.dll","date":"2018-06-12","relation":{"domain":[" Vohjtk.Com","Eqwauemt.Com"],"ip":["98.126.200.58","98.126.36.26","5.34.183.123","45.249.181.172","195.123.238.108","195.123.216.175","195.123.209.103","185.82.216.209","157.119.71.121","107.181.160.188","154.48.241.199","137.175.66.15"],"vul":["CVE-2017-0143","CVE-2017-0144","CVE-2017-0145","CVE-2017-0146","CVE-2017-0147","CVE-2017-0148"],"email":[""],"date":""}}, ], "domain": [ {"value":"Eqwauemt.com","type":["Malware"],"date":"2018-06-12","relation":{"ip":["104.18.36.142"],"email":[""],"date":"2018-06-12"}}, {"value":"Vohjtk.com","type":["Malware"],"date":"2018-06-12","relation":{"ip":["104.27.165.31"],"email":[""],"date":"2018-06-12"}} ], "ip": [ {"value":"98.126.200.58","type":["C&C","Malware"],"date":"2018-06-12"}, {"value":"98.126.36.26","type":["C&C","Malware","DDoS","Botnets"],"date":"2018-06-12"}, {"value":"5.34.183.123","type":["C&C"],"date":"2018-06-12"}, {"value":"45.249.181.172","type":["C&C"],"date":"2018-06-12"}, {"value":"195.123.238.108","type":["C&C"],"date":"2018-06-12"}, {"value":"195.123.216.175","type":["C&C"],"date":"2018-06-12"}, {"value":"195.123.209.103","type":["C&C"],"date":"2018-06-12"}, {"value":"185.82.216.209","type":["C&C"],"date":"2018-06-12"}, {"value":"157.119.71.121","type":["C&C"],"date":"2018-06-12"}, {"value":"107.181.160.188","type":["C&C"],"date":"2018-06-12"}, {"value":"154.48.241.199","type":["C&C"],"date":"2018-06-12"}, {"value":"137.175.66.15","type":["C&C"],"date":"2018-06-12"}, {"value":"98.126.80.90","type":["C&C"],"date":"2018-06-12"}, {"value":"98.126.80.91","type":["C&C"],"date":"2018-06-12"}, {"value":"154.48.241.199","type":["C&C"],"date":"2018-06-12"} ] }}
参考资料:
https://nti.nsfocus.com/ip?query=98.126.200.58&type=all
内容编辑:威胁情报与网络安全实验室 责任编辑:肖晴
声明:本文来自绿盟科技研究通讯,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。