用户
搜索

由群邮件来的几款木马病毒引发的思考

2019-1-15 15:59| 发布者: 坏蛋| 查看: 55| 评论: 0|原作者: Crazyman_Army


Date:2019.1.17

知识点:动态调试,基础社工思路,ESP定律脱壳

未经允许,禁止转载



故事的开始


近日笔者在xx群里频繁收到这样的邮件(如下图)

1

这就让笔者很不爽(你要是发真的也行呀,你发的都是一些盗号和远控这叫嘛意思?)

笔者就开始对其进行简单的剖析:


Step 1.逆向样本


将里面的链接提取出来就是


萌妹变音器: https://www.lanzous.com/b411207/
UU网游加速器破解版: https://www.lanzous.com/b411201/
迅游网游加速器破解版: https://www.lanzous.com/b411205/
腾讯网游加速器破解版: https://www.lanzous.com/b411203/

分别在蓝奏云盘里的显示如下:

萌妹变音器:

2

UU网游加速器破解版:

3

迅游网游加速器破解版:

4

腾讯网游加速器破解版:

5

下载下来后

6


0x01 简单分析文件


7

作者让我们先点击一下这个过授权程序,那我们首先来对其进行分析

detect it easy(简称die)这个查壳工具对其进行检查

8

发现是UPX 3.91的压缩壳 编写语言应该是用易语言进行编写的

废话不多说

OD开始载入这个程序

发现OD对该样本是否有加密以及压缩代码是否要进行分析

由于笔者电脑配置不高,这里其实为了让其载入速度更快点击

9

如图所示:

10

UPX壳也比较好脱,那就对其进行脱壳操作


0x02 脱壳


既然是UPX压缩壳

那这里这里我们用ESP定律来进行脱壳

此时ESP的值如图所示:

11

首先第一步:

F8 单步一次 ESP突变 (如下图所示)

12

选中ESP右键  Follow in Dump(在数据窗口跟随)

13

此时数据窗口已经变成这样(如下图所示)

14

在此刻的数据窗口上选中前几位字节然后右键 -> BreakPoint(断点) –> Hardware,on access(硬件访问)->Word

15

按下F9 运行 如图所示,硬件断点断到了这里

16

继续F8单步下去,会发现会在如图红框里的部分进行循环,那是由于我们之前打下的硬件断点

17

我们可以通过 Debug(调试)->Hardware breakpoints(硬件断点)

18

然后删除我们刚刚打下的硬件断点就行

19

20

我们选中图中所框中的代码按下F4(在选中的地方下断点,并且运行到此处)

21

效果如下,此时的EIP已经跟到了这个位置

22

继续F8单步一下

23

继续单步进入JMP,就到了熟悉的OEP

24

选中一行代码后,右键 用OllyDump脱壳调试进程

25

填写正确的OEP地址,把重建输入表的选项勾掉,我们用Import REC工具来修复被损坏的IAT表

26

点击脱壳后,保存为DUMP.exe文件

27

然后再通过ImportREC工具附加进程,然后填入正确的OEP(注意:不用填上基址,工具会自动给你加上基址)然后获取输入表自动搜查IAT,然后显示看看有无无效函数以及无效指针,将其cut掉,再保存为我们之前保存的DUMP文件。这样我们就将UPX的壳子脱掉了。

当然实际分析的时候UPX并没有必要去脱,UPX本身的加壳工具就自带脱壳功能即可

我们从GITHUB上下载了用查壳工具查到的壳的版本

28

解压发现

29

而脱壳的命令行很简单

30

只需要upx.exe  –d  –o 输出文件 要脱壳的文件(这里作者把源文件重命名为1.exe 把输出文件重命名为0.exe)

31

执行脚本,文件生成

32

用查壳工具进行一下查壳

33

证明UPX已经被脱干净了,那我们就可以对其进行详细的分析


0x03 详细分析


将脱完壳的程序载入IDA

34

怀着试试看的心情,利用View->Open subviews->Strings来查看一下字符串

35

如图所示:

36

再往下翻翻

37

38

我们先跟入一下嫌疑做大的{Win}字符串中查看

39

40

真是了不得,里面模拟内置了键盘的绝大多数按键的情况,此时这个样本看起来已经有键盘记录的嫌疑了

我们再往上翻翻

41

42

43

此时木马的另一个面目就已经完全显露出来,熟悉计算机逆向的朋友应该知道最近很流行的clientkey盗号,只需要走HTTP抓到dump下的cookie再截取从中获取的clientkey就可以使用这个clientkey来进行登录被害者的QQ业务

再往下翻了几行,出现了Steam的字样,看来作者应该也对Steam的内存做了一些手脚来抓取从里面获取的密码

44

那么很显然,这个样本的一个基础的行为我们已经看到了,有键盘记录的行为,有盗取QQclientkey的行为,有盗取Steam账号密码的行为

那我们来详细分析一下这个程序

为了方便,作者采用动态调试的方式来抓取样本的行为

首先,木马在判断完系统版本的时候,获取了临时目录的路径,如图堆栈窗口

45

利用之前声明的字符串进行字符串拼接,如下两图

46

47

调用CreateFile这个API函数krnln.fnr这个文件释放到图中箭头指定位置

48

如此同理,样本又释放了一系列易语言支持库文件临时目录下这里以mysql.fne为例子 (一共有四个 eAPI.fne,spec.fne,mysql.fne,krnln.fnr)

49

先从Steam那个盗号下手

50

这个Steam字符串在地址0040935A的位置上

数据窗口处右键 ->goto(转到)->expression(表达式)

或者按Ctrl+G

51

在这个对话框输入00409356

52

然后OK转到,如图所示

53

Steam.exe字符串那里下右键->断点->硬件访问断点->Byte型

54

然后F9运行一下,断到了这里

55

看了一下堆栈

56

看来是先比对一下遍历到的进程Steam.exe

然后通过Steam 登录窗口进行进一步操作

57

再通过对其内存进行操作的方式

58

然后解析出其密码

然后分析一下QQckey的操作

可见堆栈中说明利用方法

利用Get的方式向图示该网址进行一次访问

59

继续对其进行拼接

60

并且通过对其进行填充协议头HTTP协议然后抓到cookie再从中截取clientkey,并且获取当时时间,并对QQ密码进行键盘记录。然后打包成数据包发送给指定的网址mysql数据库中。其余三个文件都是一样的


Step2.稍微溯源一下(评论帖子即可查看后续内容)



坏蛋,如果您要查看本帖隐藏内容请回复


鲜花
鲜花
握手
握手
雷人
雷人
路过
路过
鸡蛋
鸡蛋