TCP069 发表于 2022-1-4 10:18

3601劫持病毒分析———对一个勒索病毒的底层行为分析

本帖最后由 TCP069 于 2022-1-4 10:38 编辑

文件信息
文件: C:\Users\15PB\Desktop\3601\3601.exe
大小: 24576 bytes
文件版本:7.02.2600.5512 (xpsp.080413-0852)
修改时间: 2015年9月29日, 13:10:48
MD5: B5752252B34A8AF470DB1830CC48504D
SHA1: AEC38ADD0AAC1BC59BFAAF1E43DBDAB10E13DB18
CRC32: 4EDB317F
使用virscan查询

使用PEID查看编译环境和有无壳:

看到是VC6.0的程序,且加了UPX压缩壳
使用UDX解壳:


脱壳后发现EXE体积变大了:
使用Resource分析资源:


发现资源里有个PE文件,看来是在资源中还携带了其他数据,
行为分析:
是用火绒剑分析行为:
      1.使用ARK工具查看可疑进程
      2.使用ARK工具查看启动项(注册表、计划任务等)
      3.使用ARK工具查看驱动、服务等可疑项
      4.使用ARK工具查看其他杂项
      5.使用抓包工具查看可疑流量在这个环节中,主要就是提取样本,尽可能手工清除掉危险。
      1.1 主要行为
为了使阅读更清晰,做了一个行为流程图

1.使用ARK工具查看可疑进程

   看到很熟悉的病毒图标,但是名字和位置却不一样了,说明有文件改变行为存在,分析下文件行为。
2.使用ARK工具查看文件修改
发现文件的自我复制一个自己(nmxhia.exe)到Windows路径下,将程序运行起来后删除原来的自己(隐藏自己)

不断的在文件中释放lpk,释放完毕后隐藏起来,记住这个lpk后边要考

3.使用ARK工具查看启动项(注册表、计划任务等)
通过更改注册表键值让自己可以自启:




4.使用ARK工具查看驱动、服务等可疑项
服务,驱动模块,内核层,内核钩子,网络,中也是病毒可以利用的位置,在里边查看有无可疑信息,分别查看后未发现病毒信息,
5.使用ARK工具查看其他杂项
查看网络:
会向外发送一些数据包:
比如系统版本,内存大小等等


6.使用抓包工具查看可疑流量在这个环节中,主要就是提取样本,尽可能手工清除掉危险。
得知:
具体代码分析:
拖到IDA里边分析:
进来之后先出来的就是WINMain函数,
里边第一个函数就是一个网络初始化函数:下边是一个if判断,根据函数的返回值来判断,调用以下哪个内容:

进入判断函数,这个函数的功能就是在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services里边创建一个名为“Ghijkl Nopqrstu Wxy”的服务,并返回是否创建成功

这个判断分为系统是否创建完成,如果判断服务没有创建成功那么执行以下内容:
这个函数会先将自己拷贝在系统,并且给自己随机重命名

让后在系统路径下的程序创建一个服务,并启动服务

继续向下看,看到最后还有一个函数,点进去看一下:

这个函数就是设置优先级,然后删除之前的文件
也就是说如果进来时判断服务没有打开的话就:拷贝自己到系统目录,创建服务,启动服务,删除自身

如果已经服务已经创建的话就执行下面:
    将服务进程的主线程连接到服务控制管理器,参数是一个结构体的指针,其中有服务的名字和服务的回调函数:

这个函数则以服务的形式运行,进入回调函数进行分析:

这个以服务形式运行的函数中有三个函数,四个进程,分别进入分析:
第一个函数:遍历资源,将一个隐藏在资源中的PE文件转换成DLL,并写入特定的目录中

第二个函数:将自身病毒EXE,当成资源,添加进hra33.dll PE文件中(参数:上个函数得到的DLL名字(hra33.dll))

第三个函数:把从资源中获取的DLL加载进来

以上三个函数就是将原来资源中存在的DLL拷贝出来并加载;
继续分析下边四个线程:
第一个线程函数:
会初始化一堆字符串,根据下面获取主机名以及网络连接的函数,猜测是利用弱口令进行局域网感染。

首先获取主机的名字,获取主机的内存,用户名密码密码,使用IPC,局域网传播病毒

线程一函数是通过弱口令感染局域网其他主机, 当用户名和密码通过后,通过共享目录将病毒传播出去, 利用 at 计划任务, 直接 admin$共享。

继续分析第二个线程:连续再往下套了两个线程之后,找到关键函数,
链接远程服务器,获取系统信息,让后将数据发送到连接主机:

将本机系统数据发送到链接主机后,接受服务器命令:

1,当服务器远程命令为0x10时,就从相应的URL中下载程序并运行

2,当服务器远程命令为0x12时,关闭互斥体,关闭本程序,结束本进程,关闭套接字

结束服务

关闭套接字

3,当服务器远程命令为0x14时,打开IE浏览器,通过IE浏览器打开数据,

4,当服务器远程命令为0x2时,初始化Socket

5,当服务器远程命令为0x3时,发送GET请求数据包,

模仿浏览器的GET数据请求头,以Mozilla进行访问

6,当服务器远程命令为0x4时,依然是初始化Socket

至此线程二分析结束,它获取系统版本号,内存信息,cpu信息以及从电脑的上线时间发送给控制端,和通过消息类型执行不同的操作,大概猜测这是发送被感染电脑的信息给病毒作者,告诉病毒作者被感染的电脑已在线,可以发送消息来操控这台电脑了

查看第三个线程:发现三个线程和第二个里边基本一致,只是链接的服务器不同,变成了www.520123.xyz

至此前三个线程分析完毕

继续分析下边的死循环内的线程:

进去后发现还是和第二个线程相同,只是链接的url被加密了

看长度和后边的等号猜测是base64加密,解密后域名为:www.520123.xyz
hra33.dll的分析:
对其隐藏在资源中的hra33.dll进行分析,Dllmain函数中分析,获取模块名字后对hra33.dll进行加载,加载成功后同目录下将数据写入临时文件夹,并且加载lpk.dll到zip,rar文件,并且同目录创建exe。如果没有加载就释放dll文件。之后对ipk.dll文件进行加载。

10019e6添加lpk的函数中创建了两个线程,在线程回调中发现是正在递归遍历文件,如果遇到.exe文件就在同目录拷贝lpk.dll,如果有.rar或.zip文件,就用100142B函数进行感染。

感染rar或zip的函数是由rar和shell命令进行操作的,,先检查有无ipk.dll,如果没有,就以最大的速度解压文件,将lpk.dll添加到文件中,让后再重新压缩文件:

3.解决方案
3.1 提取病毒的特征,利用杀毒软件查杀
编写yara规则,结合clamav进行特征扫描






3.2 手工查杀步骤或是工具查杀步骤或是查杀思路等。
1.删除HKEY_LOCAL_MACHINE\system\CurrentControlset\services\Ghijkl Nopqrstu Wxy下注册表键
2.停止Ghijkl Nopqrstu Wxy的服务,删除服务并删除服务路径下的程序
3. 删除C:\windows\system32\hra33.dll文件
4. 删除生成的lpk.dll文件


TCP069 发表于 2022-1-4 13:52

小朋友呢 发表于 2022-1-4 13:14
大佬这个流程图蛮清晰好看的,是用的什么软件画的

一个线上的网站 “processon"

chmod755 发表于 2022-1-4 17:42

楼主写的是对勒索病毒的分析,我看分析说的都是这个病毒扩散传播的,没看到分析里提到对文件的加密处理呀。

小朋友呢 发表于 2022-1-4 13:14

大佬这个流程图蛮清晰好看的,是用的什么软件画的

hiodis 发表于 2022-1-4 17:27

nice学习学习

咔c君 发表于 2022-1-4 22:05

学习了不错

蓝纹鲸 发表于 2022-1-5 00:56

牛呀,学习了

十三2020 发表于 2022-1-5 01:14

学习了,现在这类劫持病毒好恶心

Jien 发表于 2022-1-5 08:41

大佬牛b   虽然不是很懂

jyting 发表于 2022-1-5 09:20

学习学习
页: [1] 2
查看完整版本: 3601劫持病毒分析———对一个勒索病毒的底层行为分析