伪装QQ飞车外挂的“MBR锁”木马分析

简介:
伪装QQ飞车外挂的“MBR锁”木马分析

一、前言

在过完年开工之际,黑产从业者也回到了他们的工作岗位上,在短短的一周内,相继爆发了“纵情”敲诈者以及伪装QQ飞车外挂的“MBR”敲诈者两款国产敲诈者木马。国产敲诈者在敲诈金额,技术手段以及加密方式上都远远落后于国外的敲诈者木马,但国产敲诈者的最大优点就是能把握住卖点,比如以游戏外挂作为噱头。除此之外,国产敲诈者还喜欢诱导用户关闭杀软以达到所谓的“最佳体验”。可以说,国产敲诈者胜在了“套路”。

本文分析的国产敲诈者即为伪造QQ飞车外挂的“MBR”敲诈者。据受害者称,想使用该QQ飞车外挂软件就必须输入注册码,在向某群管理员索取注册码并输入注册后,计算机立即并被锁住,要求添加一QQ号(3489709452)获取解锁密码。受害计算机如下图所示。

受害计算机界面

图1 受害计算机界面

可见,计算机并未正常启动,受害者遭遇的就是常见的“MBR”锁。

二、样本分析

回到最初的QQ飞车外挂,外挂界面很常见,需要输入注册码才能正常使用。

http://p7.qhimg.com/t01c3012bcc04b1e474.png

图2 外挂界面

细观该外挂界面,发现其和某盾加密处理后的程序界面相似,遍历字符串也能发现一些与某盾加密相关的字符串。因此可以断定该外挂软件使用某盾加密保护,使用者只有输入正确的注册码才能获得相应的功能。由于某盾加密强度高,在不持有密码的情况下很难对受保护的软件进行破解,这也导致外挂使用者需要找管理员要开启密码的情况。急切渴望使用外挂的受害者们在得到开启密码一定是欣喜若狂的,他们一定不知道开启后才是噩梦的开始。

前面提到了某盾加密“在不持有密码的情况下很难对受保护的软件进行破解”,之所以提及“不持有密码的情况下”,是因为即使在拥有密码的情况下,某盾加密对程序的保护也比较特殊。在本例中,进程会在同目录下创建一个名为“飞车通杀辅助VIP2.exe”的程序,并调用ShellExecute函数运行该程序。

运行“飞车通杀辅助VIP2.exe”

图3 运行“飞车通杀辅助VIP2.exe”

但实际上,在磁盘中,也就是该路径下并不存在这个文件。这也是某盾加密为了防止加密视频播放时被提取而采取的策略。某盾加密会调用自身SDK中名为“CreateVirtualFileA”的函数在内存中创建文件,而不是直接让文件“落地”,这其实也稍微加大了分析的难度,分析者必须对程序进行patch以使创建的文件“落地”。

patch的位置即“CreateVirtualFileA”函数。根据某盾加密逻辑,程序会首先调用“CreateVirtualFileA”函数创建虚拟文件,然后使用WriteFile函数将解密后的数据写入文件。使用CreateFile函数patch掉“CreateVirtualFileA”可使文件落地。如图所示。

patch前

图4 patch前

patch后

图5 patch后

对程序进行patch后,执行MBR修改功能的敲诈者主体就“落地”了。

http://p9.qhimg.com/t01234b0b326b9d2064.png

图6 “落地”的恶意程序

该程序也是一款定制的程序,可以看出作者只是将一些定制的模块拼接起来构成一个敲诈者木马。从字符串中可以看出,定制者可以自定义MBR加密的密码以及显示在屏幕上的文字。

表示可以自定义定制的字符串

图7 表示可以自定义定制的字符串

之后就是常规的锁MBR流程,打开磁盘0并读取前512字节,也就是主引导记录。

http://p7.qhimg.com/t015646146a72910d37.png

图8 打开磁盘0

http://p6.qhimg.com/t0178a1e0285c6a2b24.png

图9 读取主引导记录

之后程序会将原本的主引导代码保存到磁盘0偏移0x400起始的位置,该位置是磁盘0的第三扇区。此举用于备份初始的MBR代码,当受害者输入正确的密码之后,就会将备份的MBR代码恢复到第一扇区中,以保证系统能够正常启动。

http://p7.qhimg.com/t01677c9d56fe54f5ae.png

图10 设置偏移

http://p0.qhimg.com/t018baa5b34b3d67686.png

图11 备份最初的MBR代码

之后程序就会修改主引导记录,修改后的主引导记录如下图所示。

http://p3.qhimg.com/t01a0fb76cde3c1bc3c.png

图12 被篡改的MBR代码

反汇编MBR代码可以看到密码比较的流程以及之后的处理流程。首先通过int 16h中断获取用户输入,并将存储输入结果。

通过int 16h中断获取用户输入

图13 获取并存储输入

http://s1.51cto.com/wyfs02/M02/8E/0E/wKiom1i0IH6BXTCSAABaOBfq548364.png

图14 比较输入与密码

通过查看存放密码的地址可以发现密码为“ O0 ” (即空格,大写字母O,数字0,空格)。在比对成功之后,将通过int 13h中断读取存储在第3扇区的最初的MBR代码并将其写入到第1扇区,以恢复系统的正常使用。

恢复MBR

图15 恢复MBR

三、总结

通过该样本可以看出,国产敲诈者在技术上并不高深,而且习惯于拼接各种软件或模块,以达到其恶意目的。这些模块虽然互相独立且功能有限,但经过组合之后成为一个功能强大且自保能力强的恶意软件。而这些国产敲诈者也牢牢抓住一些特定用户的注意力,披着外挂的外衣干这坏事,让人措手不及。对于陌生的软件,用户应该慎点,在中毒后也不要轻易添加qq交付赎金,应向杀软方面进行及时反馈以恢复系统的使用。360安全卫士独家推出了“反勒索服务”,用户在安装360安全卫士并开启该服务的情况下,如果防不住各类敲诈者病毒,360负责替用户赔付赎金。

作者:360安全卫士
来源:51CTO

相关文章
|
JavaScript 内存技术
fnm 安装、卸载与使用(详细步骤)
fnm 安装、卸载与使用(详细步骤)
3091 0
|
网络协议 算法 网络安全
CCF推荐A类会议和期刊总结(计算机网络领域)
本文总结了中国计算机学会(CCF)推荐的计算机网络领域A类会议和期刊,这些会议和期刊代表了该领域的顶尖水平,汇聚了全球顶尖研究成果并引领前沿发展。A类期刊包括IEEE Journal on Selected Areas in Communications、IEEE Transactions on Mobile Computing等;A类会议包括SIGCOMM、MobiCom等。关注这些平台有助于研究人员紧跟技术前沿。
CCF推荐A类会议和期刊总结(计算机网络领域)
|
10月前
Lua
【11月更文挑战第20天】
246 3
|
开发框架 人工智能 前端开发
【GitHub】github学生认证,在vscode中使用copilot的教程
【GitHub】github学生认证,在vscode中使用copilot的教程
2770 4
|
存储 缓存 容灾
微服务与配置中心:别让您的微服务被配置管理“绊”了一跤
在“史前”单体巨兽型应用时代,配置管理不是什么大不了的事情,但今天在微服务架构中,配置管理已发生革命性的变化,但业内对这一块的前沿探索一直处于秘而不宣的状态,如果我们对这块没有过深入的思考和实践,我们很难真正理解为什么 Spring Cloud 会提出 Configuration Service 的概念。
9282 0
|
前端开发 JavaScript Java
基于springboot的房屋租赁系统
该系统基于springboot技术,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:房屋租赁、房屋、酒店、民宿等。
基于springboot的房屋租赁系统
uiu
|
存储 监控 安全
NCRE计算机等级考试三级 | 信息安全笔记(上)
NCRE计算机等级考试三级 | 信息安全笔记(上)
uiu
588 0
NCRE计算机等级考试三级 | 信息安全笔记(上)
|
存储 资源调度 Java
分布式调度组件整合设计解析
分布式调度组件从落地到如今已有一年多的时间,作为组件开发者在其中过程中也在不断思考该组件的实现提升点以及后续的功能拓展接入。 作为一个整合类型的组件设计,从使用者的角度来看,应该更多地掩盖整合前各种接入实现,专心关注在当前组件的使用过程。因此,整合过程中的第一要素,就是要拉平多个整合组件的差异,包括数据模型、功能实现、以及外部透出的呈现,保证不同底层实现的无缝切换。第二就是简化对接工作量,把常用配置项默认固化,减轻使用方的对接成本,专心关注到业务中去。
|
机器学习/深度学习 编解码 人工智能
不容错过!作者亲自解读 RealBasicVSR
那到底能用 RealBasicVSR 干些啥呢?下面这条经典电影片段,展示了输入和 RealBasicVSR 输出的对比,可以看到 RealBasicVSR 能够对真实视频进行复原,提高分辨率,改善画质。
977 0
不容错过!作者亲自解读 RealBasicVSR