- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AnglerEK的Flash样本解密方法初探-360安全卫士
原原文文地地址址:/tips/16895
作作者者::360QEX团团队队
0x00 前前言言
在病毒查杀过程中,一直存在着攻与防的技术对 ,恶意程序会采用各种方法躲避杀毒引擎的检测,增加分析难度。
360QEX团队之前分别对JS敲诈者和宏病毒的隐藏与反混淆分享过相关内容,这次则分享一些AnglerEK的Flash样本解密
方法。
Angler EK攻击包是当前最为著名的一个攻击包,从出现至今,已经被大量用于网页挂马。由于Angler EK能够整合必威体育精装版
被修复的漏洞利用代码,甚至偶尔会出现0day的利用代码,因而被视为最先进的漏洞攻击包。
近两年来,Angler EK大量使用Flash作为漏洞利用载体,往往Adobe刚刚曝光一个漏洞,就 即出现在了Angler EK攻击
包中。为了躲避杀毒软件的检测,Angler EK采用了多种方法加密Flash攻击代码,增加了检测难度和安全人员的分析难
度。
0x01 字字符符串串与与函函数数名名的的混混淆淆
在ActionScript3中代码调用的相关函数名称和类名,均以字符串形式存储在doabc字段中,所以为了规避针对调用函数
名和类名的检测,AnglerEK采用了getDefinitionBy ame函数,根据传入的字符串参数转换为调用对应的函数或者类,然
后在将这些字符串进行切分,躲避过了简单的特征字符串检测,这也是很多其他EK攻击包所常用的方法。
这种方法进一步进行混淆的话,就可以将这些字符串采用拼接、正则替换的手法,例如样本
c288ccd842e28d3845813703b9db96a4中,使用了如下的方法,基本可以完美的躲避字符串特征检测。
图1 字符串拆分
此外,ActionScript和JavaScript同样基于ECMAScript,因此很多JavaScript的混淆方法同样适用于ActionScript,例如下标运
算符同样能够用于访问对象的成员,这时可以参照JavaScript常见混淆方法来进行代码还原。
在样本eeb243bb918464dedc29a6a36a25a638中,摘录了部分采用下标运算来访问对象成员的代码,如下所示:
代码1 下标运算符执行类成员
#!javascript
vree = getDefinitionByName (flash.utils.ByteArray) as lass;
weruji = length;
var _loc2_:* = new vree ();
wxwrtu = writeByte;
while (_loc7_ _loc4_ [weruji])
{
_loc2[wxwrtu](_loc4_ [_loc7_]);
_loc7_++;
}
以上这段代码等价于如下代码段:
代码2 还原后的代码
#!javascript
var _loc2_:* = new flash.utils.ByteArray();
while (_loc7_ _loc4_.length)
{
_loc2_.writeByte (_loc4_ [_loc7_]);
_loc7_++;
}
0x02 外外壳壳fl sh加加密密
除了字符串及调用函数名以外,还有一大块比较重要的特征是ShellCode。ActionScript中ShellCode经常是存放在数组、
Vector中,或者使用连续的pushInt、pushByte等代码构造,这些大段连续的代码,也是非常明显的特征,并且大多数情
况下都不会有大幅度的改变。为了加密掉这些特征,通常会采取类似PE的加密壳的方法,使用一个外层的Flash解密并
加载实际的带有漏洞利用功能的Flash文件。这样外壳Flash的功能非常简单,没有明显的特征,每次只需要对外壳Flash
进行简单的特征修改,就能够躲避特征查杀。
随之带来的问题是,如何存储这些加密的数据。最初的方法是直接存储与大段的字符串中。例如样本
eeb243bb918464dedc29a6a36a25a638中,可以发现其存在一个非常长的字符串,如图2中的this.ybe所示。外壳Flash正是
通过对该字符串进行解码和解密,得到实际的Flash,并进行加载。其具体的过程如下:
图2 样本中的长字符串
1.Base64解码
主要是将字符串转换成二进制数据,代码中的wigr方法就是Base64解码函数的具体实现。这也是非常常用的方法,如果
看到类似图2中的this.eruuf字符串,则基本可以认为使用了Base64编码方法。
2.进行简单的解密运算,获得其实际的Flash。
其具体的解密是
您可能关注的文档
- 2008PMWS患病猪和健康猪感染的PCV2序列比较分析.PDF
- 2008—2010年内蒙古自治区国家级高新技术企业-鄂尔多斯科技局.DOC
- 2008年一季度师工业经济运行情况通报-八师150团-石河子.DOC
- 2007注册环保工程师考试基础下午真题-水工业论坛.PDF
- 2008年江苏人事考试工作计划.DOC
- 2008年物理学科考试说明-绥化教育学院.DOC
- 2008年区赛竞赛规则-广西青少年科技创新网.DOC
- 2009届广告设计与制作系毕业生毕业设计题目及-辽宁广告职业学院.DOC
- 2008年物理高考考前基础性过关计算36题.DOC
- 2008年卫生部督导审核.PPT
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)