用户
搜索
  • TA的每日心情
    慵懒
    昨天 21:24
  • 签到天数: 281 天

    连续签到: 1 天

    [LV.8]以坛为家I

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    31

    主题

    131

    帖子

    5457

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

    i春秋签约作者春秋文阁

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

    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

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





    本帖被以下淘专辑推荐:


    本文附件中有3个样本
    使用道具 举报 回复
    111111111111111111111111111111111111111111111111111111111111111
    使用道具 举报 回复
    请问楼主是通过什么样的思路从而分析出来的解密方法 还请不吝赐教
    使用道具 举报 回复
    代码混淆这块感觉以后会越来越复杂
    使用道具 举报 回复
    111111111111111111111
    使用道具 举报 回复
    来瞧一瞧,看一看。试一试
    使用道具 举报 回复
    666666666666666good
    使用道具 举报 回复
    6666666666666666666
    使用道具 举报 回复
    你所浪费的今天,是昨天死去的人奢望的明天。
    使用道具 举报 回复
    挺有意思
    使用道具 举报 回复
    不了解 看看样本
    使用道具 举报 回复
    need demo virus , thanks
    使用道具 举报 回复
    6666666666666666666
    使用道具 举报 回复
    发表于 2018-11-26 19:50:05
    个有趣的样
    使用道具 举报 回复
    来学习宏病毒
    使用道具 举报 回复
    12下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册