白加黑远控木马分析

概述:

病毒伪装成一个DLL文件,QQ游戏启动的同时,病毒DLL也会被加载启动(也叫DLL劫持)。病毒加载之后,会在内存中释放出远控模块,通过建立本地端口映射的方式,意图绕过某些安软的网络拦截,从而控制目标计算机。

病毒目录文件如下:

病毒运行加载流程如下:

 

详细分析:

1、启动方式:

首先,病毒作者将关键文件全部隐藏打包了起来,只留了了一个快捷方式,通过调用CMD的方式,打开目录下的QQ游戏大厅程序:

而QQ游戏大厅程序在启动的过程中,会去加载一个名为:factory.dll的文件,由于Windows本身所设定的DLL加载顺序,目录下的这个factory.dll文件将会被QQ游戏大厅所加载:

2、factory.dll

将原版factory.dll和这个病毒的factory.dll进行比较,发现后者多了一些额外的导出函数,仔细观察甚至还会发现,后者有两个导出函数的地址竟然相同,通常一个正常的DLL文件不会这样:

在factory.dll的导出函数中,被调用的是CreateFactorys函数,这个函数的主要作用是执行病毒的初始化安装操作:

在病毒的初始化安装操作中,会先获取加载当前DLL的模块的路径,然后检查此路径下是否存在io.dat文件(被加密的DLL文件),若不存在则直接退出,猜测是用这种方法来反自动化检测程序,防止被发现。若文件存在,则读取到内存中,然后进行解密操作,解密出来发现是另一个恶意DLL文件(远控的核心部分):

此处所使用的解密算法,通过对比LZMA的压缩算法库(右边是LZMA压缩库的源代码),可以看出,作者采用的其实就是LZMA压缩库:

解密io.dat文件到内存,并且完成校验(检查是否有正常的PE结构)后,将会被加载执行:

程序运行后,会去获取这个新DLL的导出函数地址,并且通过判断当前加载模块的名称是否含有crossfire.exe字样,来执行不同的功能(因为病毒成功加载一次之后,会将文件名改成crossfire.exe,所以从文件名就能够判断是否是首次加载):

 

3、解密出来的新DLL

这个新DLL拥有2个导出函数QtxVGA和Update,从前面的分析我们可以得知:Update函数用于首次加载执行,而QtxVGA函数用于非首次加载执行。

(1).Update导出函数

在Update函数中,病毒会首先检测是否存在360的进程,若存在,则直接退出。接着,通过检查互斥体(c91fbfd3142a697886)的存在,来判断系统是否已经被感染,以确定是否是否继续执行,若未感染,则继续执行:

接着,将同目录下的文件全部复制到C:\Users\Administrator\AppData\Roaming\MenuStar,并将加载模块的重命名为crossfire.exe:

为了不让双击快捷方式的人产生怀疑,病毒还会释放打开一张准备好的图片,让人放松警惕,图片被加密保存在了temp,dat文件中,解密后调用命令行打开图片:

图片打开之后,病毒会以无窗口的形式运行crossfire.exe,并且在在C盘下创建kwoyou.ini文件,来保存记录病毒运行的日志:

(2).QtxVGA导出函数

函数一开始会去读取之前的日志文件,然后会创建一个线程去配置电脑上的网络代理信息,如果存在360的话,还会配置端口转发,将96端口的访问全部转发到116.28.191.115:96上去。

此处设置端口转发的目的,是和目标服务器之间建立SSH隧道连接,从而绕过防火墙的拦截。将本机的某个端口(96)转发到远端指定机器的指定端口(116.28.191.115:96);本地端口转发是在localhost上监听一个端口,所有访问这个端口的数据都会通过它传输到远端的对应端口。

接着,就进入到了远控的关键函数F_HackKernelModule_0了,在F_HackKernelModule_0中,主要包含了两方面的内容:

  1、获取计算机的IP、名称、系统版本号等信息,加密送给黑客

 

 

  2.根据黑客发来的指令,执行相应的操作,如:关闭注销系统、读取模拟键盘、鼠标的操作、屏幕监控、修改注册表、系统服务等

 

具体如下:

     1、对键盘、鼠标、剪切板的操作:

 

     2、对硬盘文件的操作:

 

     3、对系统服务的操作:

 

     4、记录按键记录,并保存到dump.log文件中

     5、对注册表的操作:

     6、获取屏幕监控截图:

 

病毒的远控地址为:116.28.191.115:947(已下线)。另外,病毒在与控制端建立连接是,并未直接连接,而是在系统本地利用netsh,创建了一个本地的端口代理:

 

猜测创建端口代理的做法,是为了隐藏其所创建的网络连接,当用户在查看网络连接时,不会被发现该连接是由病毒自身所创建:


备注:

病毒的第一个DLL文件(factory.dll),其实是一个PeLoader,主要用于加载其他PE文件到内存中执行,我尝试还原了一下,大致流程如下:
1、加载读取目标DLL文件到内存中,获得文件操作句柄
2、检查PE文件头、PE标志、程序运行环境是否符合预期
3、在堆上分配一个长度52的空间,用于存放一个自定义结构体,结构体定义如下:

4、在内存中申请一段文件头大小的空间,复制文件的文件头信息到这段空间中,并将该空间的地址保存到结构体的dwNtHeaderAddr中
5、复制节区表,调整重定位表、IAT表,设置节区的读写属性,设置TLS表
6、查找目标导出函数的地址,通过判断加载模块的文件名,执行不同的目标导出函数


IDA分析文件下载地址:

https://www.icloud.com/iclouddrive/0n9T3_B1T7X4tr3OkaU77P1GQ#%E5%88%86%E6%9E%90.rar

病毒样本下载地址:

https://www.icloud.com/iclouddrive/06MZY3wDA3y5ddNjkNBAW_AeA#%E7%97%85%E6%AF%92%E6%A0%B7%E6%9C%AC.rar

加载器部分代码还原:

https://www.icloud.com/iclouddrive/0gXpzsigRSTuLofB7ofqpbnYA#%E5%8A%A0%E8%BD%BD%E5%99%A8%E9%83%A8%E5%88%86%E4%BB%A3%E7%A0%81.rar

涉及到的加解密算法:

https://www.icloud.com/iclouddrive/0JeQ1e0lI9Td2GV1WzlvardjA#%E6%B6%89%E5%8F%8A%E5%88%B0%E7%9A%84%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95.rar

 

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值