×

揭开病毒的面纱--恶意代码自解密技术
  

SANGFOR_智安全 2291

{{ttag.title}}
本帖最后由 某公司_智安全 于 2019-5-21 19:29 编辑

分析病毒的时候,常常遇到一种很奇怪的现象,使用查壳工具查看一个样本明明没有加壳,但是反编译或调试时,却不能显示地看到样本的恶意操作,这是为什么呢?很简单,这是因为攻击者采用了自定义的加密方法,在样本运行时实现自解密并执行真正的恶意操作,所以看到的只是样本还没解密的样子,自然分析不出恶意代码的逻辑。

下面就通过实例来窥探下恶意代码自解密的技术吧,如下是一个Ammyy病毒的下载器(MD5:28EAE907EA38B050CBDCC82BB623C00A),使用DIE查壳发现,该样本并没有加任何的壳。


然而当查找字符串时,却未能发现一些可疑的字符串(如下载器常有的恶意url),看到的只是一堆乱码,看来,该样本很有可能就是使用了自解密的技术。


反编译该样本,也难以看出它的代码逻辑,很多动态地址的call。


对于这种样本,反编译器很难看到一些重要的操作,因为大部分都是解密操作,所以只能通过调试器单步调了。单步调试没啥好技巧,遇到跑飞的call下断点然后重新调试。调试的时候,要注意VirtualAlloc、GlobalAlloc、HeapCreate这些函数,因为恶意代码通常使用这些函数来申请一段内存空间,来存放解密出来的恶意代码。如下图,该样本调用的是HeapCreate创建了0x230000这段内存。


接着恶意代码用了je + retn的方式循环解密0x230000处的数据。


解密完毕后,恶意代码调用call esi将执行流从0x40XXXX转到0x230000。


然而,0x230000处的代码并不执行核心的恶意操作,目的在于修改0x40XXXX处的原始代码。如下,它会调用VirtualProtect将0x400000的内存属性改为RW(读写),进而修改原来的代码。


修改后的0x400000内存段的属性如下。


修改完代码,调用jmp esi跳回到0x40XXXX进行执行,此时,这段内存的代码已经被修改过了,终于开始执行核心的恶意操作了。


将内存dump下来发现,现在的代码已经是解密后的恶意代码了,程序逻辑清晰可见,通过字符串查找可以找到待下载的病毒的url。


至此,该下载器的功能已经分析完毕,主要功能为从下载Ammyy病毒并运行。


由此,可以总结得出,恶意代码自解密的步骤一般为以下5步:申请内存 -> 复制数据-> 解密数据 -> 跳转到堆中执行恶意代码 -> 修改原始代码并跳回执行。不过,我们可能会有个疑惑,病毒为什么不直接在堆中执行核心的恶意操作呢,还要通过修改原始代码来在0x400000空间解密执行核心的恶意代码。这是因为,一些比较高级的沙箱、杀软会监控病毒创建大片内存空间的操作,这时一旦释放出解密代码,便会立刻被沙箱、杀软检测到,所以在堆中的代码一般不会只会直接进行核心的恶意操作。


了解了恶意代码自解密技术后,来看看最近流行的GandCrab勒索病毒(MD5:48A673157DA3940244CE0DFB3ECB58E9),使用的也是这种自解密技术,来实现免杀。使用DIE对样本进行检测,显示并未加壳。


自解密的手法跟上述提到的相似,在0x1280000处申请了一段内存空间。


堆中的代码负责修改原始代码并跳转回去执行。


跳转回来后,0x403016处的代码就是解密后的核心恶意代码,接下来就可以调试GandCrab的恶意代码了。


将内存Dump下来,也可以分析出加密文件的代码逻辑。


在VT上查询该病毒的报毒情况,只有大概半数的引擎报毒,而且报出的病毒类型大多不能定位到Ransom,看来,GandCrab使用这种自解密的方式还是起到了一定的免杀效果。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

发表新帖
热门标签
全部标签>
每日一问
技术盲盒
安全效果
干货满满
西北区每日一问
技术笔记
新版本体验
功能体验
【 社区to talk】
技术咨询
标准化排查
2023技术争霸赛专题
产品连连看
GIF动图学习
信服课堂视频
每周精选
自助服务平台操作指引
秒懂零信任
技术晨报
技术圆桌
通用技术
答题自测
安装部署配置
每日一记
原创分享
玩转零信任
场景专题
升级&主动服务
社区新周刊
畅聊IT
专家问答
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
故障笔记
排障那些事
高手请过招
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人