Web安全
首页 > 安全文摘 > Web安全> 正文

“净广大师”病毒HTTPS劫持技术深度分析

作者:kong
2016-12-24 16:18:50
次阅读

一、背景

近期,火绒团队截获一个由商业软件携带的病毒,并以其载体命名为“净广大师”病毒。在目前广为流行的“流量劫持”类病毒中,该病毒策略高明、技术暴力,并攻破HTTPS的“金钟罩”,让百度等互联网厂商普遍使用的反劫持技术面临严峻挑战。且该病毒驱动在”净广大师“卸载后仍然会持续加载并劫持百度搜索流量,行为及其恶劣。

我们曾在此前报告(“净广大师”病毒攻破 HTTPS防线 劫持百度搜索流量牟利)中进行过病毒简述,本文中我们将对“净广大师”病毒进行详细分析。

二、 样本分析

在“净广大师”安装过程中,我们注意到“AdAnti.exe”进程在系统驱动目录下释放了一个隐藏的文件名为“rtdxftex.sys”的驱动。如下图所示:

图2-1、“净广大师”安装过程    

该驱动是“AdAnti.exe”从“净广大师”安装目录下复制到系统驱动目录的,该驱动有32位和64位两个版本,文中主要依据32位版本的病毒驱动(TdxFlt_i386.sys)进行分析。如下图所示:

图2-2、病毒驱动文件    

在病毒驱动加载后,通过提取内存字符串,我们获得到了更多与病毒相关的特征信息,而且这些特征在静态状态下是无法在病毒驱动文件中提取到的。如下图所示:

图2-3、病毒驱动加载后的内存数据    

通过我们对该病毒驱动的分析,我们发现该驱动运行会先执行两次解密操作,第一个解密后获得驱动运行时所需的数据,第二个解密操作可以得到一个病毒动态库。解密代码如下图所示:

   

图2-4、病毒解密代码    

根据其代码中的解密算法还原,我们可以解密出该驱动使用的一个病毒动态库和在其内部使用的一些关键的数据,如下图所示:    

图2-5、病毒动态库解密    

图2-6、病毒数据解密    

通过对病毒驱动的分析,我们发现病毒会将其解密后的动态库通过APC注入的方式注入到“explorer.exe”进程中。如下图所示:

图2-7、病毒注入“explorer.exe”代码    

图2-8、APC注入代码(1)    

图2-9、APC注入代码(2)    

在病毒注入“explorer.exe”之后,百度的搜索链接便会被劫持带上病毒制造者的计费ID。在我们重现的环境中,该病毒劫持到的计费ID为“93718154_hao_pg”。如下图所示:

图2-10、百度被病毒劫持    

通过分析得知,该病毒是通过代理的方式,以中间人攻击的形式来劫持HTTPS流量。如下图所示,病毒驱动注入到explorer.exe进程的代码会监听10100端口。

图2-11、注入后explorer的病毒代码劫持IE的联网请求    

当浏览器访问百度时,病毒驱动会将连向百度(61.135.169.125)443端口(HTTPS)的链接重定向到本地的10100监听端口,explorer中的病毒代码再代替浏览器发起与远端Web服务器的链接进行通讯。该病毒同时通过自己携带的证书分别与浏览器和远端Web服务器完成SSL握手,进而以中间人攻击的形式完全控制HTTPS链路通信。    

 

通过对该病毒注入explorer的动态库进行分析,发现在该动态库资源中,我们可以看到病毒”劫持”所用到的SSL证书。如下图所示:    

图2-13、病毒发起劫持所用到的SSL证书    

在病毒将该动态库注入explorer后,我们在explorer.exe进程的内存块中也同样可以提取到与上图相同的证书数据。    

图2-14、explorer.exe进程内存字符串     

在将上述内存中的证书数据保存为证书文件后,将其与病毒劫持证书进行对比,两者的根证书与子证书完全一致。如下图所示:    

图2-15、静态解码的劫持证书(左为根证书、右为子证书)    

 

图2-16、被劫持现场中显示的劫持证书(中为根证书、右为子证书)    

三、 同源性分析

通过在火绒样本管理平台中搜索“净广大师”病毒使用的百度计费ID“93718154_hao_pg”,我们得到了少量关联样本。如图所示:

图3-1、部分样本sha1

图3-2、带有推广号“93718154_hao_pg”的病毒样本

通过分析,我们发现这些样本与之前截获的“净广大师“病毒样本具有极高的同源性,且火绒已全部检出。同时,我们也从VirusTotal上查到友商对该病毒的检出结果。如图所示:

图3-3、友商对“净广大师”病毒同源样本检出结果

随后,我们有提取了这些病毒代码中的部分关键数据,在火绒样本管理平台中通过关联查询得到了更多的同源性样本。我们随即将这些病毒样本按捕获的时间进行了排序对比,如下图所示:

图3-4、该病毒家族以往样本数据

通过上图我们可以看出,无论是病毒的数据特征,还是病毒工程的编译路径都显示该家族的所有病毒样本与“净广大师“病毒一样,都出自同一个人。根据我们收集到样本时间来看,近段时间以来该病毒正在不断地进行迭代更新。从最早期样本运行时会产生日志,再到后来使用多个推广计费号劫持百度搜索,到最后现在版本将病毒数据和病毒动态库以加密方式存放在驱动镜像中。随着病毒的不断迭代,病毒的复杂程度正在不断提升。

四、 附录

文中涉及样本SHA1:

 文件名      SHA1 
 AdAnti.exe      e06f337bd7512d5f278c8d064356f480b943bd19 
 TdxFlt_i386.sys      25670f556ee4fd376164dcb43cf06ae1bad26dd5 
 TdxFlt_amd64.sys      ebe3aa18a2b62bfab7fb09b078f6f00c3f8525b1 

“净广大师”病毒同源样本SHA1:

 病毒名      SHA1 
 Rootkit/NetSec.a      03386c58c4d80522246a4e39e10f99fd31ec8a77 
 Rootkit/NetSec.a      03ac723bcf44a8315390a02cc2793b15e698d4aa 
 Rootkit/NetSec.a      03f0bedd48d7a6b4f0c13753148042f0b651e828 
 Rootkit/NetSec.a      047a841a77a21adc21d36050d6f6ef6113f3c824 
 Rootkit/NetSec.a      09fbef91d17b722a1fa5abcd26e5e8fe7d783cdc 
 Rootkit/NetSec.a      0a350ca15112db2aae421c38579485f478e6b13a 
 Rootkit/NetSec.a      0aa4a878867a572c9ef4944a55f6e1bada1dddf5 
 Rootkit/NetSec.a      0c8c66abc446ad15cdd2a9ac24f5d5fae74072cf 
 Rootkit/NetSec.a      11b0047f26a4f54e5e0268a6d8bd2fa386b3b482 
 Rootkit/NetSec.a      12a2b07c1a2588fc0faf42c70cdc0d8b1d21ce51 
 Rootkit/NetSec.a      143e5e6c00d511b1178ddbc08877c531c296e0f2 
 Rootkit/NetSec.a      1573ccdd3784691f0c17eda6027da5ce123841b2 
 Rootkit/NetSec.a      1868141e109d391fc34d8f586ae02b916cae4644 
 Rootkit/NetSec.a      1de1300423b05c206b5062a9003e56951479e198 
 Rootkit/NetSec.a      1def02236c71777d1fefcf6cdfcde1e322b763d0 
 Rootkit/NetSec.a      243494bbac4b50587cc7d227b9f6a03c0343893a 
 Rootkit/NetSec.a      248884105ea5291972ad6c6e8a75941b59c3334a 
 Rootkit/NetSec.a      26319f416b0416ba48c828115d369f1efa64b8f9 
 Rootkit/NetSec.a      27b459c686b0a40bd12ba8ed1316e3126eb9e9d2 
 Rootkit/NetSec.a      27d8512fd7da189f649eff2cd0274a406405620b 
 Rootkit/NetSec.a      289ad9787b6b06ab46007e46e4b7954e0d8a476c 
 Rootkit/NetSec.a      2e1c56b39b6db506a53a05c4ee8270ec48257e33 
 Rootkit/NetSec.a      2f5a9fc32567140253bf49153b22cf5c868ed06e 
 Rootkit/NetSec.a      3470f3b06f387bb7bb55459c0786f6ed512e926d 
 Rogue/NetSec.gen      0a1655d06ed5a6550b495df627cd76bd0ab046ff 
 Rogue/NetSec.gen      0c9226676127709d032cff8c695c14abba49c3cf 
 Rogue/NetSec.gen      177f5703f4ba8c146e955b5bdfe6860d4cb4f7f1 
 Rogue/NetSec.gen      1fb098637af04af4b7f7cd4bf3521d8d0d1f716c 
 Rogue/NetSec.gen      25670f556ee4fd376164dcb43cf06ae1bad26dd5 
 Rogue/NetSec.gen      25822c34eabe5c1a0d1051a1836f5b50196c7f08 
 Rogue/NetSec.gen 

上一篇:HACKING NODE SERIALIZE - 进一步利用 Node.JS 代码执行漏洞
下一篇:新手指南:DVWA-1.9全级别教程(完结篇,附实例)之XSS

已有 条评论

推荐阅读

小组Security交流群: 199852440
关注网络攻防小组微信公众号
每日精选文章推送

新浪微博