首页
社区
课程
招聘
[原创]GandCrab v5.2 分析
发表于: 2019-11-26 23:44 4799

[原创]GandCrab v5.2 分析

BQC 活跃值
1
2019-11-26 23:44
4799

GandCrab勒索病毒于2018年1月首次出现,并出现了很多变种,GandCrab病毒家族主要通过RDP暴力破解、钓鱼邮件、捆绑恶意软件、僵尸网络以及漏洞利用传播。病毒本身不具有蠕虫传播能力,但会通过枚举方式对网络共享资源进行加密,同时攻击者往往还会通过内网人工渗透方式,利用口令提取、端口扫描、口令爆破等手段对其他主机进行攻击并植入该病毒。在一年半内赚进超过20亿美金后,他们决定金盆洗手,关闭这个恶意程序。2019年6月,GandCrab勒索病毒团队相关论坛发表俄语官方声明,将在一个月内关闭其RaaS(勒索软件即服务)业务。

文件: C:\Users\win7\Desktop\VW5\VW5.exe
大小: 95232 bytes
修改时间: 2019年2月24日, 22:15:11
MD5: B48F9C12805784546168757322A1B77D
SHA1: 527C655FE98810AB22B6F36C9677D862BC66770E
CRC32: 8F03CEAF

使用PEiD查壳,链接器版本是14.0 是vs2015写的程序,区段也很正常。
图片描述

加载了C:\Windows\System32\vmhgfs.dll 模块
图片描述

文件操作有点多,大致是遍历目录生成txt文件。和后缀为.lock的文件。
图片描述

txt的内容大概是告诉我们文件被加密了,不要删除,和购买私钥的具体方法。
图片描述

-入口处发现不能反汇编,猜测可能动态解密或者有混淆,使用动态调试看看吧。
图片描述

使用OD分析发现有多处混淆,由于我没什么太好的方法于是就单步分析。

然后又获取了这些国家的输入法标识,通过GetUserDefaultUILanguage获得本机 输入法标识。具体对应的国家可以去https://docs.microsoft.com/zh-cn/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c 查询。循环比较是不是在这些国家内。是的话就结束了。
图片描述
图片描述

创建一个名字为 "BitHuender"的互斥体,并且遍历进程如果有以下进程就结束掉。steam做错了啥??
图片描述

图片描述
图片描述

获取主流杀毒软件名字,并遍历进程,如果有的话就保存一下,并没有给结束。
图片描述

解密生成密钥
图片描述

这个病毒有混淆,IDA有的地方不能分析,接着动态分析看看
图片描述

接着生成私钥
图片描述

会被加密文件的后缀

图片描述
图片描述

接下来创建了一个线程(403cda),地址为 403dce,去ida中发现这个地址也不能反汇编
图片描述
图片描述

动态调试下看看这个线程在做什么
启动网络资源的枚举,并且加密局域网共享目录
图片描述

接下来获取磁盘类型,又启动了一个线程
图片描述
获取了一些目录
\ProgramData.
\IETldCache.
\All Users.\Windows.
\Boot\
\Program Files\
\Tor Browser\
\All Users\
\Local Settings\
\Windows\

如果是以上几种就不感染,除了函数直接jmp 到ret

图片描述

如果是文件的话,以下几种不感染。
图片描述

接下来就是遍历加密文件
图片描述
生成随即名称 lock文件,保存的感染时间
图片描述
创建勒索文档

图片描述
图片描述
生成以后缀为 ukczkvdo的文件,这个后缀是随机生成的
图片描述


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-11-26 23:49 被BQC编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (8)
雪    币: 6054
活跃值: (12594)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
2
不错,可以看一看 https://blog.51cto.com/13352079/2355303
2019-11-27 09:04
0
雪    币: 26588
活跃值: (63257)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
3
感谢分享~
2019-11-27 09:19
0
雪    币: 239
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
花指令很有规律的 ,可以试着写ida脚本去掉花指令的
2019-12-16 16:54
0
雪    币: 6475
活跃值: (1321)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
人在鹅厂 花指令很有规律的 ,可以试着写ida脚本去掉花指令的
好的,谢谢!一直对去花没啥思路
2019-12-16 17:03
0
雪    币: 239
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
把这些位置nop掉 然后重新分析就能正常f5
2019-12-16 17:03
0
雪    币: 6475
活跃值: (1321)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
一半人生 不错,可以看一看 https://blog.51cto.com/13352079/2355303
谢谢
2019-12-16 17:03
0
雪    币: 239
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
def patch(addr):
    data = list(get_bytes(addr,28))
    if((ord(data[0]) == 0xB9) and (ord(data[1]) == 0xD2) and (ord(data[2]) == 0xC3) and ord(data[3]) == 0x01 and (ord(data[5]) == 0xE8) and (ord(data[6]) == 0x0B)):
                       for i in range(0,28):
                               patch_byte(addr+i,0x90)
base = 0x401000
len = 0x411000-base
for i in range(len):
       patch(base+i)
AnalyzeArea(base, 0x411000) 
print 'Finished'

#ida python的脚本
2019-12-16 17:07
0
雪    币: 6475
活跃值: (1321)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
人在鹅厂 def patch(addr): data = list(get_bytes(addr,28)) if((ord(data[0]) == 0xB9) and (ord(data[1 ...
好的,谢谢你,学到了
2019-12-16 17:16
0
游客
登录 | 注册 方可回帖
返回
//