故事的开始
近日在xx群里频繁收到这样的邮件(如下图)
这就让笔者很不爽(你要是发真的也行呀,你发的都是一些盗号和远控这叫嘛意思?)
笔者就开始对其进行简单的剖析:
Step 1.逆向样本
将里面的链接提取出来就是
萌妹变音器: https://www.lanzous.com/b411207/UU网游加速器破解版: https://www.lanzous.com/b411201/ 迅游网游加速器破解版: https://www.lanzous.com/b411205/ 腾讯网游加速器破解版: https://www.lanzous.com/b411203/
分别在蓝奏云盘里的显示如下:
萌妹变音器:
UU网游加速器破解版:
迅游网游加速器破解版:
腾讯网游加速器破解版:
下载下来后
0x01 简单分析文件
作者让我们先点击一下这个过授权程序,那我们首先来对其进行分析
用detect it easy(简称die)这个查壳工具对其进行检查
发现是UPX 3.91的压缩壳 编写语言应该是用易语言进行编写的
废话不多说
用OD开始载入这个程序
发现OD对该样本是否有加密以及压缩代码是否要进行分析
由于笔者电脑配置不高,这里其实为了让其载入速度更快点击否
如图所示:
UPX壳也比较好脱,那就对其进行脱壳操作
0x02 脱壳
既然是UPX压缩壳
那这里这里我们用ESP定律来进行脱壳
此时ESP的值如图所示:
首先第一步:
F8 单步一次 ESP突变 (如下图所示)
选中ESP右键 Follow in Dump(在数据窗口跟随)
此时数据窗口已经变成这样(如下图所示)
在此刻的数据窗口上选中前几位字节然后右键 -> BreakPoint(断点) –> Hardware,on access(硬件访问)->Word
按下F9 运行 如图所示,硬件断点断到了这里
继续F8单步下去,会发现会在如图红框里的部分进行循环,那是由于我们之前打下的硬件断点
我们可以通过 Debug(调试)->Hardware breakpoints(硬件断点)
然后删除我们刚刚打下的硬件断点就行
我们选中图中所框中的代码按下F4(在选中的地方下断点
并且运行到此处)
效果如下,此时的EIP已经跟到了这个位置
继续F8单步一下
继续单步进入JMP,就到了熟悉的OEP
选中一行代码后,右键 用OllyDump脱壳调试进程
填写正确的OEP地址,把重建输入表的选项勾掉,我们用Import REC工具来修复被损坏的IAT表
点击脱壳后,保存为DUMP.exe文件
然后再通过ImportREC工具去附加进程,然后填入正确的OEP
(注意:不用填上基址,工具会自动给你加上基址)然后获取输入表,自动搜查IAT,然后显示看看有无无效函数以及无效指针,将其cut掉,再保存为我们之前保存的DUMP文件。这样我们就将UPX的壳子脱掉了。
当然实际分析的时候UPX并没有必要去脱,UPX本身的加壳工具就自带脱壳功能即可
我们从GITHUB上下载了用查壳工具查到的壳的版本
解压发现
而脱壳的命令行很简单
只需要upx.exe –d –o 输出文件 要脱壳的文件(这里作者把源文件重命名为1.exe 把输出文件重命名为0.exe)
执行脚本,文件生成
用查壳工具进行一下查壳
证明UPX已经被脱干净了,那我们就可以对其进行详细的分析
0x03 详细分析
将脱完壳的程序载入IDA
怀着试试看的心情,利用View->Open subviews->Strings
来查看一下字符串
如图所示
再往下翻翻
我们先跟入一下嫌疑极大的{Win}字符串中查看
真是了不得,里面模拟内置了键盘的绝大多数按键的情况,此时这个样本看起来已经有键盘记录的嫌疑了
我们再往上翻翻
此时木马的另一个面目就已经完全显露出来,熟悉计算机逆向的朋友应该知道最近很流行的clientkey盗号,只需要走HTTP抓到dump下的cookie再截取从中获取的clientkey就可以使用这个clientkey来进行登录被害者的QQ业务
再往下翻了几行,出现了Steam的字样,看来作者应该也对Steam的内存做了一些手脚来抓取从里面获取的密码
那么很显然,这个样本的一个基础的行为我们已经看到了,有键盘记录的行为,有盗取QQclientkey的行为,有盗取Steam账号密码的行为
那我们来详细分析一下这个程序
为了方便,作者采用动态调试的方式来抓取样本的行为
首先,木马在判断完系统版本的时候,获取了临时目录的路径,如图堆栈窗口处
利用之前声明的字符串进行字符串拼接,如下两图
调用CreateFile这个API函数将krnln.fnr这个文件释放到图中箭头指定位置
如此同理,样本又释放了一系列易语言支持库文件
在临时目录下
这里以mysql.fne
为例子 (一共有四个 eAPI.fne,spec.fne,mysql.fne,krnln.fnr)
先从Steam那个盗号下手
这个Steam字符串在地址0040935A的位置上
在数据窗口处右键 ->goto(转到)->expression(表达式)
或者按Ctrl+G
在这个对话框输入00409356
然后OK转到,如图所示
在Steam.exe字符串那里下右键->断点->硬件访问断点->Byte型
然后F9运行一下,断到了这里
看了一下堆栈
看来是先比对一下遍历到的进程和Steam.exe
然后通过Steam 登录窗口进行进一步操作
再通过对其内存进行操作的方式
然后解析出其密码
然后分析一下QQckey的操作
可见堆栈中说明利用方法
利用Get的方式向图示该网址进行一次访问
继续对其进行拼接
并且通过对其进行填充协议头走HTTP协议然后抓到cookie再从中截取clientkey,并且获取当时时间,并对QQ密码进行键盘记录。然后打包成数据包,发送给指定的网址mysql数据库中。其余三个文件都是一样的
Step2.稍微溯源一下
我们对这个样本使用了微步云沙箱进行分析
杀软检测几率
行为预览
作者的木马服务器
反查一下,发现有20个样本和该域名有通信,应该是一个IDC服务器
反查一下WHOIS
可视化分析
看来还用同样的身份注册了别的网站,这水就越来越深,而且whois和QQ邮箱皆为造假的。所以,觉得这次的幕后黑手可不浅
Step3.总结
该样本在制作水平上的确有一定的混淆技术,对字符串有一些特殊的处理方式,使得IDA或者OD无法直接解析出关键字符串,并且在后面的反社工上做出了极大地对抗。看样子应该是个攻击手法老练的大黑客了,有意者可以自己分析玩玩
本文始发于微信公众号(疯猫网络):由群邮件来的几款木马病毒引发的思考
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论