导语:QuantLoader是地下论坛比较火的一款木马下载器,在很多攻击活动中服务不同的恶意软件,包括勒索软件,银行木马,RAT等。本文分析的是QuantLoader服务后门的一个实例。

本文将介绍恶意软件的行动流程、运行和网络功能,其中包括分析恶意软件如何运行以及如何与C2连接和通信,还有恶意软件的一些有趣的调用,比如调用和执行netsh命令来改变本地防火墙的规则。

最新的QuantLoader版本是服务钓鱼活动,该活动开始的时候以钓鱼邮件来向用户传播JS下载器。该恶意软件使用的SMB协议而不是常用的HTTP协议,可能的原因是为绕过一些代理和防火墙的检测。

分析

首先,该活动的流图为:

Phish > JS downloader > QuantLoader (> C2) > Payload (Backdoor) > C2

其中JS下载器的代码都是被混淆过的:

JSdownloader-600x172.png

打印出main函数的输出,及获得了第二阶段的URL:

2.png

这是对JS下载器的快速分析来获取URL。

QuantLoader可执行文件

然后分析可执行文件的执行流:

汇编码:

然后,会在执行前将自己拷贝到上面的位置:

设定正确的权限:

用户权限被设定为可读read。

栈:

下面看一下进程执行和驻留机制。

 

该进程会在将自己拷贝到不同的位置之后衍生出一个新的进程。不要将该进程与Windows的桌面窗口管理器进程dwm.exe相混淆。驻留就这样开始了。

下面是生成的新进程,以及如何生成新进程。

首先,创建目录:

目录创建完成后,调用CreateFile来创建空文件。

现在这是一个空的文件,大小是0字节,之后会被拷贝。

拷贝文件:

该文件被拷贝后,大小变成了46080字节:

该进程会从这个位置启动。

可以随意修改:

进程成功启动后,下一个比较重要的步骤就是调用WININET dll来建立与admin的连接。

执行后,会尝试与admin服务器建立连接,连接如下:

TCP    localhost:49690    49.51.228.205:http    ESTABLISHED

这就是加载到栈内的主机。

下面是如何做栈内打开:

第一步是通过调用LoadLibrary加载WININET DLL:

下面是一些我们随后会进行分析的函数:

在栈内可以看到上面函数的执行:

下面看一下WINHTTP.dll:

下面是被调用的函数:

上图中所有的函数都是WinHttp。

下面是一些有趣的函数:

WinHttpCreateUrl

WinHttpCreateUrl可以将host和路径结合起来组成完整的URL。

调用jsproxy.dll组成的完成的URL,

最后,是内存复制,也就是URI如何被加载到内存中。

下图是栈的截屏,可以看到URL被加载到栈内,然后被调用。

可以看到内存中URL已经成功加载了,可以随时使用URLDownloadToFile调用。

上图中的ASCII码是恶意软件向防火墙中添加规则。该规则是确保恶意软件向外的请求能够通过。

下面是栈的视图:

下面是CPU视图:

使用的命令是 netsh。

下面是进程镜像:

下面是创建并成功应用的防火墙规则:

其他的调用有:

一旦与admin C2服务器建立连接,恶意活动的管理员将可以拿到payload,而且payload的形式是多种多样的。在本活动中,payload的形式是后门。可以很容易从内存中提取下载payload的URL。

结论

QuantLoader的代码与其他普通的恶意软件有所不同,比如操作本地防火墙规则的代码等。恶意活动的admin可以改变最后的payload并用同样的下载器去运营不同的活动。

QuantLoader最初是被告为勒索软件,可能是因为内存字符串中含有一个Locky相关的参考,看起来像是从其他活动的变种。

Z:\var\www\4test\files\cryptors\admin\Loc2.exe

另外一个比较有意思的就是使用的是SMB协议而不是常见的HTTP协议。

源链接

Hacking more

...