病毒分析
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
一个“良心未泯”的国产敲诈者病毒分析 360安全卫士认证厂商2016-09-09共561372人围观 ,发现 30 个不明物体 系统安全
Clipboard Image.png
一、 前言
近两年,以敲诈勒索为目的的文件加密恶意软件逐渐成为恶意软件中的主力军。以Locky家族,ceber家族为典型代表的敲诈勒索软件席卷国外,对政府机构,公司乃至个人用户造成了极大的危害。早期的敲诈勒索软件一般以网页挂马形式出现,“落户”到本地运行后会经过一系列的代码重组及解密操作得到用于执行主要功能的shellcode,然后运行shellcode对指定文件进行加密。由于程序代码段在解密和解混淆之后与之前已经完全不同,主要功能又移至shellcode中执行,因此此类加密勒索软件较容易躲过杀软的静态检测。但为了对抗杀软不断更新的特征库,软件作者也必须不断更改加密方法,这也造成了研发成本的增加。
在最近这段时间,加密勒索类软件有简化的趋势,软件开发者将目光转向了拥有较为完善的加密函数类库的.NET平台,同时也去除一些混淆操作,直接使用.NET平台下一些公开的混淆方法。当然,软件开发的简化也“造福”了国内一大帮急于发财但技术又不是那么过关的“伪黑客”。从最近的样本捕获可以发现,已有一些国内黑客试水.NET平台下的加密勒索软件。
Clipboard Image.png
二、 样本具体分析
捕获到的样本由c#语言编写,使用了.NET Reactor4.2混淆,在去混淆之后程序只有20几k的大小。可以看出,.NET平台下的加密勒索软件相比较之前国外的其他加密勒索软件体积上缩小特别多,但加密的速度还是不尽如人意,一般需要半分钟至一分钟的时间才能完成一整套加密操作。
Clipboard Image.png
图1 去混淆后的程序非常小
样本集加密与解密于一身,当文件被加密后,受害者只需要到相应比特币网站上付款然后再双击运行一次原程序即可进行解密。第二次运行该程序,程序便通过判断赎金是否到账来决定是否进行解密。相比较国外一些非常繁琐的交付赎金解密的步骤,这款国产敲诈勒索相对比较“良心”,但也侧面说明一点,作者的目标可能不是一些企业用户或者机构用户,而是普通的用户,包括不了解电脑知识的用户,该软件一旦传播开来破坏性不小。
和其他加密勒索软件的套路相同,该软件也是使用AES加密算法去加密系统中的文件,然后使用RSA加密算法去加密AES密钥。虽然AES是对称加密算法,但RSA为非对称加密算法,只有拥有RSA私钥才能解密得到AES的密钥进而对被加密的文件进行解密。除外,软件加密时使用的AES密钥是随机生成的,因此在加密过后无法复现密钥。
Clipboard Image.png
图2 密钥间加密过程
Clipboard Image.png
图3 用AES密钥对文件进行加密
程序通过判断文件名来选择执行加密的文件,除了一些系统文件夹诸如“Program Files”之外,还专门针对国内用户加密文件名中含有“优酷”,“风行”,“QQpet”字样的文件。
Clipboard Image.png
图4 一些被加密的文件名
在进行加密之后,程序会将交付赎金的步骤等需要受害者知晓的信息写入到文件中,并将文件放在系统的关键文件夹以及桌面上。除外,为了更加显眼作者干脆来了个超大的对话框告诉受害者交付赎金的方法。
Clipboard Image.png
图5 初始化文件中的内容
Clipboard Image.png
图6 将恢复步骤写入文件并复制到桌面上
Clipboard Image.png
图7 循环弹对话框
下图所示就是弹出的写有恢复步骤的对话框。从中可以看出,恢复步骤其实不复杂,交付赎金之后双击再次运行程序即可。
Clipboard Image.png
图8 写有恢复步骤的对话框
那么程序是如何判断用户已经交付赎金了呢?从下面的代码可以看出,程序访问相关比特币帐户,并根据返回值来进行判断。可以看出,作者使用的比特币网站和国内一些打码平台的运作方式相似,即用户通过相关网址提交数据,而程序可以访问相关接口来获取实时的结果,这种借助第三方来进行交易的方式不仅不容易暴露作者身份,也方便作者实时获得账户信息,可以说是一种自动化的“提款机”。
Clipboard Image.png
图9 访问比特币帐户相关网址
Clipboard Image.png
图10 判断付款金额是否足够
从上图可以看出,受害者应付的数值为num3,受害者所付的数值为num4/1E08,通过判断两值的大小来确定付款金额是否足够。从返回信息和代码信息可以看出,num3是应付赎金对应的比特币数目,通过访问hxxp://blockmeta.com/api/v1/chain/ticker可以获得当前比特币对人民币的汇率,并通过num(应付金额)/num2(比特币汇率)来计算作者应得的比特币,然后作者访问自己账户获得已收到的比特币数并进行比较。
Clipboard Image.png
图11 返回信息显示比特币汇率
在获得赎金后,程序就该执行解密操作了,按照常见的加密勒索软件的套路应该是访问一个暗网地址获取密钥解密。不过。。。作者好像用了另一种套路,他把密钥全部存放在了本地。。。放在了本地。。。本地。。。
Clipboard Image.png
如下图所示,作者把加密文件用的AES密钥和加密AES密钥的RSA公钥私钥全存放在了桌面的ckt文件中。
Clipboard Image.png
图12 生成ckt后缀的文件存放密钥
当交付赎金成功后,即通过本地的ckt文件进行解密。
Clipboard Image.png
图13 调取存放在本地的密钥进行
既然密钥都存放在本地,就可以通过密钥来进行相应的解密操作。可以说,这个加密勒索做得相当相当相当失败。不过换句话说,一般用户可能不知道桌面上的ckt文件就是解密的密钥,所以说,中了加密勒索软件之后先别慌张,先检查程序是否遗留下样本或者一些相关的信息,如果有的话可以提交到杀毒软件相关反馈窗口,由病毒分析人员分析并确定解密的可行性。
除了利用本地的密钥进行解密,我们还发现了另一个可以利用的点。程序通过判断作者比特币账户上的比特币数量是否大于应付赎金可兑换的比特币数量来决定是否进行解密。判断的代码如下所示。
Clipboard Image.png
图14 判断条件
该条件如果成立,则说明支付的赎金不够。因此满足支付的条件为num4/1E08>num3。num4和num3都是从作者账户或者相应比特币汇率信息中得到的数据,修改较不方便,但1E08是硬编码在代码里的,当然可以通过修改这个数值来使条件满足。既然作者用num4/1E08和num3比较,说明num4应该比num3大好几个数量级,我们不妨把1E08改为1,只要num4最初不等于0,num4/1E08>num3就有极大可能会成立。
Clipboard Image.png
图15 修改前相应位置的IL指令
Clipboard Image.png
图16 修改后相应位置的IL指令
果不其然,即使没有交付赎金,程序也能跳转到解密部分执行解密功能。加密勒索软件转眼间就成了解密程序。当然,如果num4等于0,就不能通过修改1E08这个值来改变跳转条件,这时候可以通过修改相应的IL指令将跳转条件中的<=改为>即可实现相同效果。如下图所示。
Clipboard Image.png
图17 修改前相应位置的IL指令
Clipboard Image.png
图18 修改后相应位置的IL指令
Clipboard Image.png
图19 解密前的文件
Clipboard Image.png
图20 解密后的文件
只能说,这种把密钥存放在本地的方式实在太失败了,但侧面也反映出了作者的一些顾虑。如果通过服务器上传密钥或下载密钥进行解密就会很容易被分析人员通过服务器地址溯源出病毒作者的个人信息。由此看来作者的“反侦察意识”还是蛮强的,只是使用的方法,实在不忍直视。。。
Clipboard Image.png
可能作者也发现了该软件存在严重的漏洞,不久过后,360互联网安全中心又捕获到一枚加密勒索软件。通过对该加密勒索软件的分析不难看出,两个加密勒索软件出自同一人之手。
Clipboard Image.png
图21 升级后的加密勒索软件
Clipboard Image.png
图22 新样本中对ckt的命名方式和上一个样本相同
新样本中的加密手法和老样本相同,只是对于密钥的处理方式发生了改变,不再是以前的直接将密钥存放在本地,而是将用户计算机名称以及加密所需的密钥上传到hxxp://www.diaochapai.com/survey/b6ceb9cf-3902-4496-a630-89055efde01c。这是一个用户发布调查表的网站,从用户计算机获取的数据可能作为调查表的内容上传到该地址,而软件作者作为调查表的发布者可以很容易的看到这些数据,也就可以得到每一台计算机感染该加密勒索软件时所使用的密钥。由于上传密钥时顺道上传了计算机名,也就达到了“一机一码”的效果,作者在接收赎金进行解密时也更加方便。
Clipboard Image.png
图23 上传密钥和计算机名
同样,加密成功后程序会弹出相应的文本内容以及警告框要求用户联系邮箱imugf@outlook.com来申请解密。
Clipboard Image.png
图24 弹出写有恢复方法的文本内容
Clipboard Image.png
图25 弹出警告框
被加密后的文件如下图所示。
Clipboard Image.png
图26 被加密的文件
那么,是不是作者上传了密钥就没办法进行解密,只能乖乖交付赎金了?理论上是这样的,但不知是作者良心发现还是良心发现,竟然留下了一段可能可以用来解密的代码。
如下图所示,作者在进行上传操作时使用的是try catch语句,一旦上传出现异常则转向异常处理代码,而异常处理代码竟然是。。。把密钥保存在本地。
Clipboard Image.png
图27 一旦上传失败就将密钥存在本地
可能作者考虑到有些用户的文件遭到加密时上传地址已经失效,如果这时不存留一份密钥的话,用户的文件将永远无法解密。看来作者还是有点良心的。。。而作者又是一个善于“隐藏身份”的人,肯定会经常修改上传地址,这会导致该版本的上传地址很快就失效,因此许多用户的文件遭到加密时,是可以在本地找到解密密钥的。不过如果用户不知道本地存放的这些以ckt为后缀的文件就是解密密钥,可能同样会去联系作者,也同样会被坑一笔钱。
Clipboard Image.png
图28 分析过程中该上传地址已经失效
所以用户在发现自己计算机中的文件遭到加密后千万不要马上联系对方,可能加密密钥就在本地,而你却因此被坑了一大笔钱。这时候将情况反馈给杀毒软件厂商才是最正确的选择。
三、总结
由于加密勒索软件开发技术的简化以及该产业所带来的暴利对国内黑产从业者的诱惑,国内的加密勒索软件数量将呈现不断上升的趋势。用户在发现计算机中的文件被加密后,不要急于支付赎金,而应该检查计算机中是否有相应病毒样本或者相关信息的残留,如果有的话可以反馈到杀毒软件,由专业分析人员进行分析并确定解决方案。值得一提的是,360安全卫士已经开通了“反勒索服务”,并向用户公开承诺:使用360安全卫士11.0版本并开启该服务后,一旦感染敲诈者病毒,360将提供最高3个比特币(约13000元人民币)的赎金并帮助用户回复数据,让用户远离财物及文档的损失。
*本文作者:360安全卫士,原文出自360.cn,转载须注明来自FreeBuf.COM
360安全卫士
360安全卫士
208 篇文章
等级: 8级
||
上一篇:国产山寨版比特币敲诈木马分析下一篇:如何构造Office漏洞POC(以CVE-2012-0158为例)
这些评论亮了
yichin 回复
人写个病毒容易么,被你们跟腾讯分析来分析去的
)116(亮了
恶意代码码农 回复
好有良心的国人,现在国人的勒索软件都是收到了钱,然后就不管你了。
文件加密其实就是把文件内容给覆盖了,没加密算法。
)30(亮了
hqdv555 回复
以后黑客不敲诈用户了,直接敲诈360
)26(亮了
周红衣 回复
“360将提供最高3个比特币(约13000元人民币)的赎金并帮助用户回复数据。。。。。。。”,好大胆,敢自作主张,那么多钱本总裁可不会赔,让你们项目经理自己掏腰包去。
)22(亮了
raistlin00 (5级)回复
这年头做一个有良心脱离低级趣味的勒索黑客不容易啊,为客户考虑还被你们各种黑 。
)10(亮了
发表评论已有 30 条评论
yichin 2016-09-09回复 1楼
人写个病毒容易么,被你们跟腾讯分析来分析去的
亮了(116)
长亭科技 2016-09-09回复 2楼
fb的妹纸们跳槽来我们公司吧。。
亮了(1)
Herlab (1级) 2016-09-09回复
@ 长亭科技 不懂技术可以不
亮了(1)
t00lsboy (1级) 陕西愣娃 2016-09-09回复
@ Herlab
要什么技术。
fb客服妹子,胸大颜正火好
亮了(0)
Herlab (1级) 2016-09-09回复
@ t00l亲爱的oy 别闹
亮了(0)
恶意代码码农 2016-09-09回复 3楼
好有良心的国人,现在国人的勒索软件都是收到了钱,然后就不管你了。
文件加密其实就是把文件内容给覆盖了,没加密算法。
亮了(30)
一颗赛艇 2016-09-09回复 4楼
亮了(0)
lucky0001 (5级) 已经买了电脑,网费已经续到了2020年。 2016-09-09回复 5楼
宇宙第一黑客 mickey 才是真黑客啊。。
亮了(2)
康小泡 (2级) 2016-09-09回复 6楼
表情包亮了
亮了(1)
康微泡 2016-10-14回复
@ 康小泡 顶
亮了(0)
死宅10086 (7级) 2016-09-09回复 7楼
亮了(0)
Drizzle.Risk (3级) 18年校招开始了~ 北京甲方互联网~安全工程师~一起来搞好玩... 2016-09-09回复 8楼
应该用勒索程序将RSA加密后的密文,发送到私有的服务端A,A再通过后台直接查询比特币交易平台B,根据B返回的结果,如果A判断为收到钱了,在A上用私钥进行解密,然后将明文AES密钥和IV返回给勒索程序。
亮了(5)
raistlin00 (5级) 2016-09-09回复 9楼
这年头做一个有良心脱离低级趣味的勒索黑客不容易啊,为客户考虑还被你们各种黑 。
亮了(10)
周红衣 2016-09-09回复 10楼
“360将提供最高3个比特币(约13000元人民币)的赎金并帮助用户回复数据。。。。。。。”,好大胆,敢自作主张,那么多钱本总裁可不会赔,让你们项目经理自己掏腰包去。
亮了(22)
长者 2016-09-09回复
@ 周红衣 言而不信,naive
亮了(0)
麻花腾 2016-09-09回复 11楼
QQ安全卫士将提供最高100000个QQ币的赎金并帮助用户恢复数据!
亮了(5)
hqdv555 2016-09-09回复 12楼
以后黑客不敲诈用户了,直接敲诈360
亮了(26)
cwg2552298 (6级) Follow my own course 2016-09-09回复 13楼
这是明摆着嘲讽作者么 :sad:
亮了(1)
云锁 2016-09-09回复 14楼
围观
亮了(0)
赵总爱穿白衬衫 2016-09-09回复 15楼
我就问你们能解 后缀为xtbl的勒索软件加密吗?
亮了(2)
kkllo 2016-09-09回复
@ 赵总爱穿白衬衫
服务器中的吧?
亮了(0)
ao 2016-09-09回复 16楼
路过
亮了(0)
夜尽天明 (6级) 千秋邈矣独留我,百战归来再读书 2016-09-09回复 17楼
http://www.freebuf.com/articles/system/112256.html
这就尴尬了,,同一个软件 ,腾讯分析完360又来分析..
亮了(1)
1 2016-09-09回复 18楼
好人技术不行那就是器微活渣扣绩效,
坏人技术不行那就是良心未泯好有爱。
亮了(3)
CNZ (2级) “img src=1 onerror=alert(docum... 2016-09-09回复 19楼
吓我一跳,还以为360坦白从良了
亮了(3)
cf浩哥 2016-09-10回复 20楼
只是留后手而已 不过这个作者也清楚大部分人不会tor蛤蛤
亮了(0)
wanjumuma@163.com 2016-09-10回复 21楼
大敲诈者分析起小敲诈者了?
亮了(4)
D14tr0y (4级) 2016-09-11回复 22楼
腾讯将提供最多五个比特币的支持
亮了(1)
TOMMYTP先生 2016-09-26回复 23楼
这里唯一错误的地方是黑客并没有通过交易网站返回支付回执,而是区块链自动查询技术。blockmate只是个累赘,反而360可以通过这个区块链查询网站进行合作反对支付赎金,黑客自己做个下个比特币钱包做个区块链就好了。完全自动化。
亮了(0)
ChildZed (1级) 2016-09-27回复
@ TOMMYTP先生 感谢指正
亮了(0)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
360安全卫士
360安全卫士认证厂商
360安全卫士官方账号
208
文章数
10
评论数
最近文章
恶性木马下载器“幽虫”分析
2018.11.19
十张图看懂Windows平台挖矿木马攻击趋势
2018.11.09
远控木马盗用网易官方签名
2018.10.24
浏览更多
相关阅读
Tomcat源代码调试:看不见的Shell第二式之隐藏任意Jsp文件迈克菲实验室2018威胁报告:预测五大网络安全趋势关于分析Cobalt Strike的beacon.dll的一些TIPS玩转Win 10的哈希及明文密码Linux堆内存管理深入分析(上)
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论