驱动人生旗下应用分发恶意代码事件分析 - 一个供应链攻击的案例
概述
2018年12月14日下午,360互联网安全中心监测到 “驱动人生”系列软件“人生日历”等升级程序分发恶意代码的活动,其中包括信息收集及挖矿木马,甚至还下发了利用永恒之蓝漏洞进行内网传播的程序。360核心安全事业部已经对相关的恶意代码做了分析,可以参看参考链接。
360威胁情报中心对本次事件做了进一步的分析,基于收集到的事实确认这是一起通过控制应用相关的升级服务器执行的典型的供应链攻击案例,360威胁情报中心以前发布过一个介绍供应链攻击的报告,可以参看阅读原文的链接。以下是我们对木马下发之前的攻击链路进行的初步分析。
受影响应用及威胁
通过升级程序下载的恶意样本链接确认驱动人生旗下多款应用的升级模块均被污染,其中包括:
对应到攻击者控制的分发恶意程序的服务器上的链接如下:
hxxp://pull.update.ackng.com/160wifibroad/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/calendar/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl2012/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl2013/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl6_ext/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl7/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtloem/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/usbboxlite/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/ziptool/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
恶意代码分发过程
基于对升级过程及相关组件的分析,360威胁情报中心对整体恶意代码的分发过程还原为如下的图示:
Pnphost.dll
以USB宝盒4.0.6.12为例,安装完成后,系统中多了一个名为pnphost的服务,该服务指向了C:\Program Files\DTLSoft\USBBox\pnphost.dll
pnphost.dll的ServiceMain函数会启动一个新线程并调用C:\Program Files\DTLSoft\USBBox\PnpUpdater\Pnpupdate.dll中的DtlPlugStart函数:
Pnpupdate.dll
DtlPlugStart函数会解析并调用C:\Program Files\DTLSoft\USBBox\PnpUpdater\CheckUpdate.dll中的一系列导出函数来设置更新相关参数,包括更新配置文件名、更新程序名、更新服务器地址:
从上图可以看到,更新配置文件名为 update.xml,更新程序名为DTLUpg.exe,更新服务器的地址,设置的地址为dtlupdate.updrv.com(103.56.77.23)的4040端口
最后调用CheckUpdate.dll中的HUAutoCheckUpdate导出函数完成检测更新的功能。
CheckUpdate.dll
CheckUpdate.dll的HUAutoCheckUpdate导出函数中,首先启动一个新的线程检测更新,并传入上面被设置好的更新相关参数。
线程过程函数CheckUpdateFuction中,首先去更新服务器拉取配置文件,这里的更新服务器在前面Pnpupdate.dll中通过调用HUSetUpdateServer()被设置成了dtlupdate.updrv.com(103.56.77.23)的4040端口。
然后根据配置数据进入到SetCtrlXML这个流程:
SetCtrlXML中则读取配置信息中的数据,拼接成一个XML字符串:
sft>usbboxlitesft>act>ctrlact>arp>arp>afn>afn>urp>urp>ucfn>ucfn>hash>f79cb9d2893b254cc75dfb7f3e454a69hash>url>url>param>param>pcid>************************pcid>union>2403union>ip>103.56.77.23 ip>port>4040port>wnd>...wnd>wndcls>...wndcls>inservice>1inservice>loc>1loc>rafn>1rafn>erts>1erts>update>
概述
2018年12月14日下午,360互联网安全中心监测到 “驱动人生”系列软件“人生日历”等升级程序分发恶意代码的活动,其中包括信息收集及挖矿木马,甚至还下发了利用永恒之蓝漏洞进行内网传播的程序。360核心安全事业部已经对相关的恶意代码做了分析,可以参看参考链接。
360威胁情报中心对本次事件做了进一步的分析,基于收集到的事实确认这是一起通过控制应用相关的升级服务器执行的典型的供应链攻击案例,360威胁情报中心以前发布过一个介绍供应链攻击的报告,可以参看阅读原文的链接。以下是我们对木马下发之前的攻击链路进行的初步分析。
受影响应用及威胁
通过升级程序下载的恶意样本链接确认驱动人生旗下多款应用的升级模块均被污染,其中包括:
对应到攻击者控制的分发恶意程序的服务器上的链接如下:
hxxp://pull.update.ackng.com/160wifibroad/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/calendar/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl2012/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl2013/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl6_ext/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtl7/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/dtloem/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/usbboxlite/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
hxxp://pull.update.ackng.com/ziptool/pullexecute/f79cb9d2893b254cc75dfb7f3e454a69.exe
恶意代码分发过程
基于对升级过程及相关组件的分析,360威胁情报中心对整体恶意代码的分发过程还原为如下的图示:
无奈人生安全网
Pnphost.dll
以USB宝盒4.0.6.12为例,安装完成后,系统中多了一个名为pnphost的服务,该服务指向了C:\Program Files\DTLSoft\USBBox\pnphost.dll
pnphost.dll的ServiceMain函数会启动一个新线程并调用C:\Program Files\DTLSoft\USBBox\PnpUpdater\Pnpupdate.dll中的DtlPlugStart函数:
Pnpupdate.dll
DtlPlugStart函数会解析并调用C:\Program Files\DTLSoft\USBBox\PnpUpdater\CheckUpdate.dll中的一系列导出函数来设置更新相关参数,包括更新配置文件名、更新程序名、更新服务器地址:
copyright 无奈人生
从上图可以看到,更新配置文件名为 update.xml,更新程序名为DTLUpg.exe,更新服务器的地址,设置的地址为dtlupdate.updrv.com(103.56.77.23)的4040端口
最后调用CheckUpdate.dll中的HUAutoCheckUpdate导出函数完成检测更新的功能。
CheckUpdate.dll
CheckUpdate.dll的HUAutoCheckUpdate导出函数中,首先启动一个新的线程检测更新,并传入上面被设置好的更新相关参数。
线程过程函数CheckUpdateFuction中,首先去更新服务器拉取配置文件,这里的更新服务器在前面Pnpupdate.dll中通过调用HUSetUpdateServer()被设置成了dtlupdate.updrv.com(103.56.77.23)的4040端口。
www.wnhack.com
然后根据配置数据进入到SetCtrlXML这个流程:
SetCtrlXML中则读取配置信息中的数据,拼接成一个XML字符串:
sft>usbboxlitesft>act>ctrlact>arp>arp>afn>afn>urp>urp>ucfn>ucfn>hash>f79cb9d2893b254cc75dfb7f3e454a69hash>url>url>param>param>pcid>************************pcid>union>2403union>ip>103.56.77.23 ip>port>4040port>wnd>...wnd>wndcls>...wndcls>inservice>1inservice>loc>1loc>rafn>1rafn>erts>1erts>update>
本文来自无奈人生安全网
无奈人生安全网