借鸡生蛋:DNF恶意外挂登陆器分析

2017-04-21 136437人围观 ,发现 12 个不明物体 终端安全

*本文作者:吃荤的驴子,本文属FreeBuf原创奖励计划,未经许可禁止转载

dnf.jpg

0×00 前言

有江湖的地方就有纷争,同样有游戏的地方也就有外挂。对于DNF(地下城与勇士)这款在国内运营了接近10年的老牌端游,大家一定不会感到陌生。由于运营时间长,受众广,DNF相关的外挂私服也比比皆是。为了能够在众多的外挂私服中,获得广大的用户群,从而获得利益,有些恶意软件作者,就将目标瞄准到外挂私服上,下面就来详细介绍这类“借鸡生蛋”的恶意软件。

0×01 恶意软件信息

该恶意软件通过二次打包其他第三方外挂登录器,并携带自身恶意模块,生成图标同原外挂登陆器一致的恶意程序。当该恶意软件运行的时候,会释放并启动一个名为“Reality.log”的程序,其实这个文件才是真正的外挂登陆器,同时也会释放运行恶意模块,运行效果如下图所示。通过这种借鸡生蛋的方式,恶意软件作者不需要自己去开发维护外挂登陆器,直接借用第三方程序的用户来发展自己的肉鸡获取利益。

14924902069311.png!small

该类恶意程序最早出现在2015年10月,至今共发现其相关的恶意打包程序约160个,期间该类恶意程序一直持续更新,均伪装成DNF外挂登陆器,包括但不限于将夜DNF辅助,火云辅助,创界辅助,风华辅助,天堂辅助,契约辅助,盘龙登陆器,咸鱼DOF登录器,魔剑DNF登录器,小狐狸登录器,小三DNF登陆器,娱乐DNF登录器,昊天登陆器等。其主要功能演变如下图所示。

14924902178900.png!small

0×02 背景信息

该类恶意软件主要是通过恶意引流推广和DDOS攻击来获得利益。

通过技术手段恶意锁定用户的浏览器主页为自己的导航推广,当“肉鸡”积累到一定程度的时候,每天都会产生比较可观的利益。同时通过篡改hosts文件,劫持竞争对手的私服网址,引流到自己的网站,将竞争对手的用户转化为自己的用户。

在外挂私服这种不受法律的黑色灰色产业中,DDOS是很常见的。从业者经常利用“肉鸡”对竞争对手进行DDOS攻击,使竞争对手的服务器不能正常工作。对于游戏提供商来说,这几乎是致命的,一旦服务器遭受攻击宕机,很容易就会导致用户的大量流失。甚至有专门的网络敲诈者进行“黑吃黑”,通过恶意攻击私服服务器,敲诈私服从业者提供高额的“保护费”。

0×03 基本流程

下面以这款名为“盘龙登陆器”为例,分析该恶意软件的基本流程,如下图所示。

该私服登陆器运行之后,在释放运行真正的登陆器Reality.log的同时,会释放Intel类模块和Winnet类模块,Intel类模块主要负责主页锁定,反调试检测以及下载DDOS模块,Winnet类模块主要负责LSP代理劫持,用于劫持Reality.log以及Reality.log的子进程的网络。

14924902318211.png!small

0×04 详细分析

该类恶意外挂登陆器主要分为三个恶意模块,分别是Intel类主页锁定模块,Packxx类DDOS模块以及Winnet类的LSP代理模块。下面分别介绍各个模块的具体功能行为。

4.1Intel类主页锁定模块

Intel类模块主要分为应用层Intel.exe以及驱动层Intel.sys两部分,其中驱动部分功能的正常运行需要应用层初始化数据来进行配合,如果单独运行驱动,将直接导致蓝屏,这也在一定程度上增加了分析的难度,值得一说的是,该恶意程序驱动层与应用层的通行采用的并非是常见的DeviceIoControl模型,而是采用的MiniFilter的通信方式。下面详细介绍它的主要功能。

4.1.1浏览器主页锁定

主页的锁定是需要应用层和驱动层共同协作,这里采用了一种比较常见的“偷梁换柱”的方式。驱动层通过进程创建回调函数,得知如果启动的进程是浏览器进程,则会结束该进程,同时将浏览器启动的信息通过写文件的方式通知应用层,应用层获得浏览器的启动信息后,将需要锁定的主页以参数的方式跟在浏览器路径后面,然后打开该浏览器进程,正是通过这种方式来达到对浏览器主页的锁定。其相关实现如下图所示。

1492490245926.png!small

14924902605517.png!small

1492490278515.png!small

4.1.2Downloader功能

应用层运行之后会开启一个线程,从网络上下载并运行Packxx类的DDOS模块。

1492490302667.png!small

4.1.3反调试保护模块

该恶意软件的反调试保护功能主要是在驱动层实现,主要包括以下几个方面。             

 A)通过MiniFilter保护自身相关模块,禁止其他程序访问。

14924903168593.png!small

B) 通过MiniFilter检测调试工具,包括OllyDbg,Pchunter,360tcpview,netstat等调试工具,一旦驱动成功运行,这些工具都不能获得正常的运行。

14924903329176.png!small

C)通过注册表回调例程保护相关注册表项,禁止其他程序访问。

14924903443707.png!small

D)通过对象注册回调函数保护自身进程不被结束。

14924903593135.png!small

4.2 Packxx类DDOS模块

Intel.exe从域名www.dresou.net上下载的3个恶意模块,分别是Pack11.exe,Pack22.exe以及Pack33.exe,其中Pack11.exe和Pack22.exe均为DDOS模块,除了控制主机的域名不一样,其他功能一致,Pack33.exe为Hosts文件劫持模块,其具体功能如下。

4.2.1 伪造系统进程

伪造自身为svchost或则 dwm等服务进程,同时释放恶意模块伪装成spoolsv,wdm进程,确保DDOS模块能够获得执行。

14924903729308.png!small

4.2.2 通过云端控制DDOS操作

       连接远程控制主机(dd.dresou.net,CC.345DNF.COM),获取DDOS控制命令,执行相关的DDOS操作。

14924903893482.png!small

 

14924904903596.png!small

             

4.2.3劫持hosts文件

篡改hosts文件,劫持其他DNS私服的域名,使其访问自身的恶意网址。

14924904857578.png!small

4.3 Winnet类的LSP代理模块

Winnet类代理模块主要包括Winnet.exe,Winnet.dll以及LSP.dll三部分,其中Winnet.exe是代理服务器的主进程,主要负责中转网络数据,Winnet.dll主要是负责安装LSP服务以及初始化进程间通行的共享内存,常驻在Winnet.exe进程中,LSP.dll是网络劫持模块,被目标进程加载,劫持网络到Winnet.exe进程中。下面详细介绍

4.3.1 安装LSP服务

恶意程序将需要劫持的进程的Pid通过命令行的方式传递给Winnet.exe,Winnet.exe加载Winnet.dll,并调用其InitInstallLsp函数进行LSP服务的安装。

14924904771131.png!small

4.3.2 启动端口监听

随机监听本地的一个端口,并创建一块进程间共享内存,将监听端口存放在其中。

14924904632499.png!small

4.3.3 存放代理服务器信息

解析代理服务器信息,并将信息以及需要劫持的进程信息存放到共享内存中。

14924904492435.png!small

4.3.4 处理劫持的网络数据

从本地监听端口获得满足条件的网络连接,为每个连接开启一个线程处理劫持的网络数据。

14924904374108.png!small

4.3.5 劫持目标网络数据

LSP.dll根据共享内存中的信息,判断宿主进程是否为目标进程或则目标进程的子进程,如果是就进行网络劫持,将网络连接重定向到Winnet.exe。

14924904246905.png!small

1492490409362.png!small

0×05 结束语

有需求就有市场,游戏外挂和私服登陆器自有其存在的道理,我们在追求游戏快乐的同时,如需使用这类软件,请随时保持警惕。使用各大安全厂商的安全软件进行扫描检测,降低中招的可能性,如果在使用过程中,发现异常行为,请及时联系安全厂商,请求协助查杀,减少损失。

*本文作者:吃荤的驴子,本文属FreeBuf原创奖励计划,未经许可禁止转载

发表评论

已有 12 条评论

取消
Loading...

特别推荐

关注我们 分享每日精选文章

css.php