欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

利用Office宏及Powershell的针对性攻击样本分析

来源:本站整理 作者:佚名 时间:2016-06-25 TAG: 我要投稿

背景
         人在做,天在看。
利用Powershell执行攻击由于其绕过现有病毒查杀体系的有效性,已经成为目前日益泛滥的攻击手段,不论普遍撒网的勒索软件还是定向的针对性攻击都有可能采用。360天眼实验室一直对此类样本做持续的监测, 5月份以来,我们注意到一类比较特别的样本,发现其有两个比较鲜明的特点。
1.利用Excel表格存放诱饵数据,伪造警告欺骗用户启用宏,宏代码会从表格中读取出数据,然后释放并执行;
2. 使用Powershell脚本通过DNS请求来传输数据,将数据写成批处理文件(.bat)再执行,执行完毕将结果通过同样的方式回传,然后删除痕迹。如此实现远程控制功能,并且控制方式上非常隐蔽。
FireEye公司在5月22日发布了一篇关于此类样本和相关攻击行动的分析报告,详细地分析了实现上的技术细节,指称这是一次针对中东地区银行的定向攻击。进入6月以后,我们还发现了一些新的同类型样本被提交。

注意到这些样本在VT上查杀率十分低,截止我们完成这篇文章时,仅为2/56:

有趣的是,我们发现这些新的样本代码虽然与之前的几乎一样,只是删除了一些注释并改变了C&C域名,而在代码中添加了一段特别的注释,见下图,其用意倒值得猜测。

样本分析
概述
         我们得到的木马样本基本信息如下,2016年6月15日被提交到VirusTotal上。
MD5:3e63d55f1e44a71041311c44e34baaa9
文件名:final345.xls
样本是一个嵌入宏的Excel文件,文件被打开后为打开了宏的状态,则宏中的恶意代码会释放一个vbs和一个ps1脚本文件。其中vbs主要功能是从服务器下载文件并执行,然后再将指定目录的文件上传到服务器;而ps1则是一个利用DNS请求获取数据执行远程命令的恶意脚本。
执行细节
         打开xls文件后,可以看到攻击者伪造了一个警告:

这时候第一行第25、26列的单元格内容是被设置为不可见的,但是可以从内容栏中看到数据,如果点击启用内容,那么宏里的恶意代码就会执行起来。
宏代码

上图中的宏代码功能主要描述如下:
1.从表格中第1行第25列(也就是[1,Y])的单元格中读取数据并调用powershell执行,写入到%public%/Library/fireeye.vbs中。
2.从表格中第1行第26列(也就是[1,Z])的单元格中读取数据并调用powershell执行,写入到%public%/Library/fireeye.ps1中。
3.创建目录%public%/Library/up、dn、tp。
4.将释放的fireeye.vbs加入计划任务.
值得注意的是,5月份出现的样本中最后会将表2显示出来,表2中有一些用于迷惑用户的数据,而这次的样本表2中是没有任何数据的。

fireeye.vbs
fireeye.vbs的功能是用powshell从服务器下载文件到%Public%\Libraries\dn目录下,接着下载bat文件到\dn目录下并执行,然后将%Public%\Libraries\up目录下的文件上传到服务器,最后删除这些文件,并启动fireeye.ps1。具体流程如下:
1.从 http://update-kernal.net/update-index.aspx?req=2062203590\dwn&m=d下载文件并保存在 %PUBLIC%\Libraries\dn\目录下,保存的文件名在服务器响应的Content-Disposition字段的filename中取得。
2.从 http://update-kernal.net/update-index.aspx?req=2062203590\bat&m=d 获取批处理文件的内容,Base64编码后执行并将结果保存为 %PUBLIC%\Libraries\up\[RandomNumber].txt,重命名这个TXT文件,重命名文件名在服务器响应的Content-Disposition字段的filename中取得。
3.将TXT文件经过Base64编码后,上传至http://update-kernal.net/update-index.aspx?req=2062203590\upl&m=u ,上传后将文件删除。
4.执行fireeye.ps1。
相关代码如下:

fireeye.ps1
fireeye.ps1是一个巧妙利用DNS请求来接收命令和传输数据的脚本。总体行为如下:
l获取用于标识身份的ID
l通过获取DNS解析的IP地址 ,每次接收4个字节,写入批处理文件中
l执行批处理文件,输出结果到TXT文件
l发送TXT到服务器
l清理痕迹

关键代码如下,因为服务器已经将子域名的A记录解析到不同的IP地址,一个IP地址恰好能表达4个字节的数据,样本可以通过不断地拼接不同的子域名去获取到对应的IP地址也就是数据。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载