U盘拷贝者MBR勒索木马分析

Wesley13
• 阅读 784

去年7月左右,一个著名安全媒体发布了一篇关于U盘拷贝者MBR勒索木马的分析报告,传播和影响较大。出于技术的探索欲以及内心的责任感,我们也分析了该木马样本。在原分析的基础上,我们纠正了一些关于勒索解密机制的错误。更有趣的是,我们发现该样本暴露了不少情报线索。进而通过层层深挖,可以对犯罪嫌疑人进行有效溯源。

目前犯罪嫌疑人已经被江西九江警方缉拿归案。感谢原始报告的分析团队,这也是安全圈打击黑产的一次隔空合作。下面就来给大家展示这段旅程。

U盘拷贝者MBR勒索木马分析

传播状态

在2017-7-15当天,该木马样本迅速在各个下载站点传播,甚至出现在专业的安全论坛中,如xdowns绿盟(非绿盟科技公司)、联盟下载站、吾爱破解论坛等等(目前各下载站和论坛已经下架或删除该木马样本),浏览量和下载量甚大。卡饭论坛已经有人中招,在寻求帮助。为了让更少的用户受到该木马的侵害,我们下面对该样本进行详细的分析。

工作流程

该木马启动后,可以进行正常的U盘拷贝功能配置,但在软件退出时会进行恶意操作,加密修改MBR(这个触发时机比较隐蔽,增加了绕过安全软件防护的几率)。这导致系统重启后会提示被锁定,需要输入密码才能进入系统。

我们重点分析一下木马是如何对MBR加密和解密的。

MBR加密

木马首先计算加密密钥,硬编码wwe100进行一次变换:k = “wwe100”, v = 0, v ^= k[i],得到密钥字符T。然后读取MBR内容,并使用密钥T对MBR进行异或加密。接着将加密后的MBR内容写入到磁盘第三个扇区,并将硬编码到木马文件中的假MBR内容写入到磁盘第一个扇区(MBR位置),如此MBR被修改为假MBR,下次重启电脑时就会执行假MBR的功能。

MBR解密

假MBR代码主要完成屏幕勒索提示信息,接受解密密码输入,判断输入是否正确,解密MBR内容等功能。

木马通过int 16中断拿到输入的值,判断输入前三个字符是不是WWe,如果不是则错误退出,要求重新输入,只要受害者输入的面不正确,电脑就会一直锁定在勒索提示界面,无法进入电脑。如果前三个字符是WWe,则将后面的输入进行异或计算(公式和加密中异或计算wwe100的方式完全一样)得到解密密钥。

我们已经知道前面加密计算异或使用的T(16个),那么此处的解密密钥也必须是T才能成功解密MBR。因计算加密密钥和解密密钥的异或公式相同,可以很容易想到WWe后面的输入内容只要是wwe100即可。深入分析一下异或公式可知,只需要其中两个字符异或得到T,而其他字符只要能够两两相同(异或结果为0),则最后结果都会是T。比如密码可以试:WWewwe10011。

拿到解密密钥之后,通过int 13h中断读取第三个扇区的原始MBR的内容,然后对1BE偏移(分区表项)进行异或计算。然后将解密后内容写入MBR扇区中,系统重启正常进入系统。

注意:该处对于输入是否正确只对输入前缀WWe进行了判断,所以只要输入了WWe之后,不管后面输入什么都会进行MBR解密操作,然后将内容写入MBR原始位置,这样就导致如果输入了错误的密码,MBR解密错误,电脑再也无法进入,除非重装系统。

分析小结

该木马读写MBR是需要管理员权限,Windows的UAC机制对此是有限制的。但是普通用户往往会允许工具通过UAC提示,如此也就没什么限制了。

另外该木马提供功能是后台拷贝U盘内容,对于某些想窃取或者偷看别人U盘内容的人非常有诱惑力,这使得该木马极易被下载传播。

而且因为各下载站对上传工具审查的不严格,使得该木马成功上架,被广泛的下载和传播。

前面提到木马功能触发隐蔽,能够更好的绕过安全工具的防护,这是有根据的。该木马被上传到吾爱论坛中时提供了一份哈勃的检测报告,哈勃分析结果并未报毒。因为该类分析系统大部分都是在样本运行阶段捕获行为,分析行为危害性,一般都没有触发软件退出时的行为,所以也就没有检测到该木马的恶意行为了。我们理解单纯的静态和动态安全分析要全面的捕获恶意代码是非常困难的。不过这个木马还是有一些显著特征是易于检测的,相信业界同仁们会不断的完善检测能力,共同打击黑产保护用户。

U盘拷贝者MBR勒索木马分析

信息溯源

该木马勒索提示中,明目张胆的提供了QQ号。既然如此,我们就来对作恶的木马作者做一番溯源。

探寻QQ信息

电脑重启后,勒索提示信息如下图1。作者留下的QQ:21****8020,但是通过QQ搜索查找无此用户。

U盘拷贝者MBR勒索木马分析

图 1  勒索信息

在软件关于信息中找到作者留下的邮箱h****8020@qq.com。邮箱名后缀为8020,猜测为QQ对应的邮箱。

QQ号可能是木马作者手误输入错误,我们可以猜测可能的QQ号,经过一番猜测搜索,我们找到了几个潜在的可能QQ号,但无法进一步确认。此时,同学们灵机一动想到是否可以通过QQ邮箱确认QQ号呢?试了一下,果然是可以的。通过QQ邮箱发送邮件找到了留下的QQ号21****8020是有效的!也就是说木马作者QQ号就是:21****8020,但做了限制,无法直接搜索。

我们尝试跟木马作者邮件联系,他回复了我们,如图2,说明邮箱正常,可以用于后续更多追踪。

U盘拷贝者MBR勒索木马分析

图 2  作者勒索价格

发布信息追踪

在木马下载信息搜索中,我们注意到木马发布的时间信息如下表1。根据时间可以看到,同一天,先哈勃分析之后,未报毒,就发布到了xdowns绿盟,然后下午发布到了吾爱破解。不排除吾爱发布的作者就是工具的原作者。后面对吾爱破解的发布者称呼为作者****A

表 1 各平台上传时间

平台

时间

哈勃分析系统

2017-07-15 4:51:21

xdowns****绿盟

2017-07-15 6:08:07

吾爱破解论坛

2017-07-15 15:15

精益论坛

2017-07-15  04:54:34

联盟下载站

2017-07-17 14:46:25

可以发现基本都是同一天发布(除了联盟下载站),如果不是原作者,一般不会这么快正好拿到软件。据此,基本推测吾爱论坛发布者(作者A)就是木马的作者。通过作者A的手机号搜索,发现此人居然访问过一个赚钱网站,帖子主题是:利用刷流量软件全自动挂机刷短网址日赚几十(赚不到钱),如图3。这种行为和发布勒索木马的行为基本能想到一块了,增加了作者A是木马的原作者的可能性。

U盘拷贝者MBR勒索木马分析

图 3  赚钱网站

我们重新回去浏览吾爱破解的发帖纪录,发现作者A最新发布一款鼠标键盘小工具,并在回复中说是自己编写,如图4。进一步分析,发现作者有个习惯就是发布作品都会用哈勃进行扫描(让专业用户也相信没有木马)。

U盘拷贝者MBR勒索木马分析

图 4 吾爱信息

作者在吾爱破解发布了另一款工具叫POST封包调试工具,根据搜索也是在同一天发布在各个平台上,也是会通过哈勃扫描之后进行发布。那么根据这些操作习惯基本推断作者A在吾爱发布的U盘工具应该是他的原创工具了,也就是说作者A是木马的制造者。但这些都只是推测,我们还是希望能够找到更多的信息来佐证这一点,所以继续挖掘。

在作者A其他帖子中找到有效的百度网盘的链接,跳转过去后找到他的主页如图5所示。和吾爱头像一致,应该是作者A自己的网盘。

U盘拷贝者MBR勒索木马分析

图 5  网盘头像

虽然作者A在吾爱破解发布的U盘工具的链接已经失效,但是通过谷歌搜索网盘下载链接还是找到了一些信息,网站www.661x.com缓存了这个链接的用户名信息,如图6。虽然名字和作者A有效的网盘链接用户名不同,但不排除作者是有两个网盘号。

U盘拷贝者MBR勒索木马分析

图 6  缓存的网盘信息

并且该失效链接没有在其他站点找到信息,也就是吾爱破解是第一手的,不可能是转的别人的,所以可能两个网盘账户就是一个人的。至此还是只能猜测吾爱作者A是木马作者,可能性很大,但还不能确认。

木马来源分析

我们还有一个重要发现,在非凡软件站下载到一个类似工具,界面基本一致,时间是2016-6-23。对比文件信息发现,16年版本小很多,应该是最近更新增加了勒索功能,如图7所示。通过简单分析,确认老版本是没有MBR勒索相关功能的,应该是今年勒索爆发,让作者也泛起了一点点心思,最近做出了更新。

U盘拷贝者MBR勒索木马分析

图 7  软件对比

我们想到,在使用IDA打开木马时是有pdb路径提示的,回头去看看,发现了有意思的事情:木马作者电脑账户名是wwe,路径中出现www.newxing.com,如图8所示。

U盘拷贝者MBR勒索木马分析

图 8  pdb信息

根据www.newxing.com我们找到了16年的U盘工具原始软件的源代码。看来该木马作者是从该网站下载的源代码进行修改,放在了自己电脑桌面,解压后直接开发。

U盘拷贝者MBR勒索木马分析

追溯总结

经过这一番追溯,总结一下对该木马作者身份有用的信息。

  • 木马来源于www.newxing.com源码的修改,源码是没有勒索功能的

  • 木马作者电脑账户名是wwe,跟样本中解密关键字相同,WWe,wwe100

  • 吾爱破解发布工具作者有很大可能是木马作者,可以通过百度网盘账户进行确认。两个网盘账户名:讨厌**丶丶和175*****856

  • 吾爱破解发布工具作者信息,可能是虚假的,有待进一步确认。电话:182XXXX4296,名字:董X

  • 木马作者QQ号: 21****8020,邮箱:h****8020@qq.com

最新进展

百度安全实验室将案件线索同步给了公安机关。据江西九江网警反馈的案件最新进展,目前嫌疑人已被刑拘,案件正在进一步侦查中。

在这里要感谢安全圈同行对该样本的分析和曝光,在你们报告的基础之上,我们经过进一步分析和溯源将能真正的罪犯挖掘出来,希望这样的隔空合作可以更多些。

U盘拷贝者MBR勒索木马分析

本文分享自微信公众号 - 百度安全实验室(BaiduX_lab)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这