用户
搜索
  • TA的每日心情
    慵懒
    昨天 07:58
  • 签到天数: 202 天

    连续签到: 8 天

    [LV.7]常住居民III

    版主

    Rank: 7Rank: 7Rank: 7

    27

    主题

    109

    帖子

    4063

    魔法币
    收听
    2
    粉丝
    3
    注册时间
    2015-11-20

    i春秋签约作者春秋文阁

    发表于 2018-7-4 21:16:17 25275
    最近发现了几个有趣的宏病毒,分享给大家一起玩玩。
    所有样本均存在恶意行为,请在虚拟机中运行。

    1. 样本1-powershell_downloader
    首先使用oledump.py提取宏(oledump.py的使用请参考笔者的《宏病毒研究2——实战研究篇》):
    图片1.png
    图片2.png
    该文件中的宏可以分为两部分。前部分代码是拼接字符串n,能看到“powershell”的字符串,可以猜测这段宏会执行一段powershellpowershell的命令被Base64加密。后部分代码则是使用”winmgmts:\\.\root\cimv2:Win32_Process”对象创建HIDDEN_WINDOW的隐藏进程,执行前面的powershell
    首先将powershell命令进行base64解密,解密后的数据,简单整理后如下(详细代码看附件):
    图片3.png
    分析这段powershell,其功能是从'http://textspeier.de:8080/admin/get.php’下载数据并执行。
    至此,其宏功能分析完成。

    2. 样本2-严重混淆
    首先使用oledump.py提取宏:
    图片15.png
    可以看到这段宏经过了严重的混淆,方法名,变量名,以及字符串都经过了严重的混淆,如果按照程序的流程一步步分析,怕是要分析到吐血。
    这个时候我们可以用取巧的方式,纯粹的宏能做到事情实际上是有限的,一般是对文档或模板的操作。而宏病毒往往是作为payload的载体,通过创建其他例程,释放运行payload。无论宏病毒前面执行了多么复杂的操作,最后肯定会运行payload,而运行payload的方式可能是ShellWScript.ShellApplication.Run等(以及前面提到的winmgmts方式),我们可以直接搜索这些字符串迅速定位到运行payload的地方。
    在本例中,搜索Shell”,定位如下位置:
    图片16.png
    Shell的参数,是一段字符串,这段字符串就是最终会执行的命令,我们修改宏代码,将这段字符串保存下来,以便查看字符串内容:
    图片17.png
    提取到字符串内容如下(详细见附件):
    图片18.png
    实际上是使用的cmd执行powershell命令,有趣的是“powershell”字符串被分为”po”、”wers”、”hell”三部分,通过拼接形成powershell”字符串:
    图片8.png
    依然是要Base64解密powershell命令,又是一段混淆过的代码(详细见附件):
    图片9.png
    解混淆过程倒是很容易,将上述代码中'Y&{m:b!I~z'字符全都去掉,将数字按ASCII转为可见字符,笔者写了一个解混淆的脚本,这里就不贴代码了,详细见附件。
    解混淆后 powershell命令如下(详细见附件):
    图片10.png
    代码很清晰了,有一堆URL,依次从这些URL中下载文件并运行。
    至此,其宏功能分析完成。

    3. 样本3-行为监控
    照例使用oledump.py提取宏:
    图片11.png
    依然是混淆的宏,而且代码行数达到了1000行。OK,使用前文的方法,直接搜索字符串“Shell”吧:
    图片12.png
    定位到shell,将命令提取出来:
    图片13.png
    在分析中,你提取的命令可能是%temp%\\helpper.exe,这是运行环境不同导致的差异
    当我们去查找%temp%\uLeMa.exe文件时却发现找不到该文件,这个时候我们就要寻找uLeMa.exe文件的源头,我们可以使用一些行为监视软件进行分析(如:process monitor、火绒剑等 ),将WINWORD.exe加入监视,运行宏,成功抓到行为:
    图片14.png
    我们基本可以确定,宏通过studioconcept.co.uk/Products_Requirements_Sheet_xls.exe下载恶意程序,调用rundll32.exe shell32.dll,ShellExec_RunDLL %temp%\\uLeMa.exe     运行恶意程序。


    4. 最后
    宏病毒的分析比较简单,但令人恼火的是攻击者总是喜欢对宏代码进行混淆,增加分析难度,掌握一些分析技巧能在分析宏病毒时事半功倍。
    附件里还有一个笔者没有分析的样本,分析技巧笔者在上文中都提到了,留给大家练手了。
    最后的最后,欢迎点赞!欢迎评分!欢迎吐槽!

    课后作业+样本123

    游客,如果您要查看本帖隐藏内容请回复





    本帖被以下淘专辑推荐:

    你所浪费的今天,是昨天死去的人奢望的明天。
    使用道具 举报 回复
    挺有意思
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册