首页
社区
课程
招聘
[原创]RSA-4096勒索病毒分析
2019-5-12 18:58 7692

[原创]RSA-4096勒索病毒分析

2019-5-12 18:58
7692

说明:

  萌新一枚,这是面试过程中面试官要求分析的另外一个病毒程序,整理成文,发表出来,供大家参考学习,一起进步!如有不当之处,也希望大佬批评指正,晚辈一定虚心受教。由于考虑到时间问题还有个人能力的原因,我只将病毒关键功能模块进行分析说明,勒索算法部分没有详细分析,也请大家见谅,不懂之处欢迎提出,我也尽量解答,加油!


一、样本信息:

二、分析环境及工具:

环境:Oracle VM VirtualBox、Windows 7 Service Pack 1(x64)
工具:PEID V0.95、OD、IDA、火绒剑

三、基础病毒分析:

基础静态分析:

为了方便测试,更改病毒名称为1,拖入PEID查壳发现乱码节区,判断程序采用了加壳方式来保护自己,壳的类型未知

接着观察1的字符串信息和导入表,没有发现什么值得注意的信息

基础动态分析:

为了节约时间,这里就不截图展示了,基本思路是拖入火绒剑监控程序运行,常见的操作和推测可参考之前的文章

四、详细病毒分析:

样本1分析:

程序一拖入OD会弹出一个控制台窗口,后面程序会得到控制台窗口句柄进行隐藏,其中sub407410()函数会再内存中解密一堆数据

接着来到sub406D00()函数,程序首先获得得到kernel32.GetProcessHeap和ntdll.RtlAllocateHeap函数地址,和其它病毒程序常采用GetProcAddress函数来获取其它函数地址有所不同的是,这个恶意程序通过未文档化函数LdrGetProcedureAddress来获取其它函数地址



然后程序遍历ntdll的导出表,加密函数名作对比得到所需要的函数RtlDecompressBuffer


调用RtlDecompressBuffer函数,解压数据得到新的PE文件,dump下来命名为PE1
待解压的数据

解压后的PE数据

下面获取一些所需的函数

之后调用VirtualAlloc函数分配新的内存空间将解压出来的PE文件复制过去并存储所需的API




最终储存的函数地址

修改此程序的内存保护属性,将数据清空


之后将解压出来的PE数据复制到原进程空间

跳到新的程序入口点开始执行程序


为了方便分析,我直接分析dump下来的PE1文件

样本PE1分析:

先进入入口点

程序首先初始化COM库,得到9个随机字符并创建了一个COM对象


然后拼接出PE1:Zone.Identifier文件名并删除,是为了运行时候,没有弹窗警告


接着得到kernel32.dll的基址,获取Wow64DisableWow64FsRedirection,Wow64RevertWow64FsRedirection地址,为了关闭和恢复64位程序和32位程序之间重定位问题

然后程序解密出一些后面所需使用的字符串数据

加密文件后缀

网络相关信息

操作命令相关信息

恶意域名相关信息

勒索文本信息

然后得到访问令牌信息

下面得到6个随机字符串,和特殊目录路径拼接出新的文件名,将自身复制过去,设为隐藏属性,创建一个进程运行新创建的文件,并删除自己

复制文件


创建进程运行程序

因为会创建新的进程运行程序,这里我nop掉,往下看
创建互斥体8_8_8_8

提升进程权限

下面有6个函数

第一个函数sub40FB80()得到特殊文件路径

第二个函数sub402960()创建注册表写入加密数据


第三个函数sub40FF30()设置开机自启动并提升当前进程访问资源管理器进程网络共享权限


第四个函数sub40FC00()在特殊目录下创建一个TXT文件并写入加密数据



第五个函数sub402430()找到xxxxxxxx位置,填入数据,完善勒索信息


第六个函数sub40FE80()初始化GDI信息

接着创建一个线程来加密文件,病毒会加密两个部分,一部分是主机文件,一部分是网络资源文件

加密部分,首先对目录判断,是目录就迭代,然后对比三个系统关键目录,是的话跳过,之后在目录下留下勒索信息截图和勒索信息文本并通过shell32.execute打开它们



不是目录的话和之前解密出来的后缀进行对比,符合的话开始加密,加密算法部分就不分析了,按照勒索信息文本来说病毒程序采用的是RSA-4096非对称加密算法,写入了三段加密数据

然后枚举网络资源文件进行加密


加密文件之后也会在桌面创建截图和勒索信息文本并打开

之后创建新的线程来删除备份数据生成的卷影副本,防止数据恢复


接着又创建一个线程来发送加密后的主机信息

最后删除自身

至此病毒程序的运行流程分析完毕,加密数据部分没有详细分析,自己关于算法方面的逆向能力不太足,怕分析起来浪费时间,得不偿失


五、病毒行为流程总结:

六、技术思考总结:

  1. 通过PEID查壳发现程序带壳的话不要慌,判断是已知壳还是未知壳,已知壳的话查阅网上相关资料手工或者寻找脱壳机帮助自己脱壳,未知的话单步分析,合理下断,注意观察内存变化
  2. 对于某些影响我们分析运行的函数,要大胆的NOP和跳过
  3. 多熟悉不同病毒种类,远控类,勒索类,挖矿类等等,下次遇到时,分析起来速度会变快,效率提高
  4. 算法加密部分不仅要熟悉常见的Windows系统函数,更要知道相关原理,自己能力有待提高

七、防护建议:

1、个人电脑、服务器应及时打补丁,修复漏洞
2、对重要的数据文件定期进行非本地备份
3、不要点击来源不明的邮件附件,不从不明网站下载软件
4、尽量关闭不必要的文件共享权限
5、更改账户密码,设置强密码,避免使用统一的密码
6、GandCrab勒索软件会利用RDP(远程桌面协议),如果业务上无需使用RDP的,建议关闭RDP

八、相关IOC:

http[:]//drlarrybenovitz.com/qhcka/templates/binarystings.php
http[:]//holishit.in/wp-content/plugins/wpclef/assets/src/sass/neat/grid/binarystings.php
http[:]//starsoftheworld.org/cgi-bin/binarystings.php
http[:]//hknsjsu.org/wp-content/plugins/profile-builder/assets/lib/wck-api/assets/js/tiny_mce/utils/binarystings.php
http[:]//vtc360.com/wp-content/themes/vtc360_maxf3d/ReduxFramework/ReduxCore/inc/extensions/wbc_importer/demo-data/Demo2/binarystings.php
http[:]//grosirkecantikan.com/wp-content/plugins/contact-form-7/includes/js/jquery-ui/themes/smoothness/images/binarystings.php
http[:]//88fga.ketteaero.com/FE4A8D7E1E829B86
http[:]//2bdfb.spinakrosa.at/FE4A8D7E1E829B86
http[:]//uj5nj.onanwhit.com/FE4A8D7E1E829B86
MD5:9d3dbe44445624abb04bdb3bdace4fc2
SHA-256:7829ae7240eb4c6f5fe33c5af43e6d388f0439011c27cf609cc4d1a8b6092ec1
SHA-1:0ffc994e247d2b108910e8bb6de3ef57439c51af


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-5-17 16:50 被kanxue编辑 ,原因:
上传的附件:
收藏
点赞5
打赏
分享
最新回复 (14)
雪    币: 310
活跃值: (1917)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
niuzuoquan 2019-5-12 19:34
2
0
mark
雪    币: 12107
活跃值: (15524)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
pureGavin 2 2019-5-12 20:24
3
0
mark,一般公司给出的恶意文件不应该算是公司的数字财产么??楼主直接放在论坛里,不会被领导批么??
雪    币: 5859
活跃值: (633)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
沭阳 3 2019-5-12 21:03
4
0
pureGavin mark,一般公司给出的恶意文件不应该算是公司的数字财产么??楼主直接放在论坛里,不会被领导批么??
多谢老哥提醒哈,这两个样本相当于面试题一样,都是一些前几年就曾出现过的低难度样本,楼主目前还没入职,也未曾签署相关保密协议,面试官和领导也都很nice,单纯抱着分享的心态整理发表出来供大家学习交流,以后遇到此类事件我一定会事先征求样本来源人员的意见,谢谢告诫!也希望更多的人尊重知识产权,版权意识,保密意识!
雪    币: 13524
活跃值: (4853)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tDasm 2019-5-13 09:59
5
0
pureGavin mark,一般公司给出的恶意文件不应该算是公司的数字财产么??楼主直接放在论坛里,不会被领导批么??
病毒样本也是公司财产?除非这个病毒是你公司写的,那么这个公司应该负刑事责任,而不是知识产权。
雪    币: 12107
活跃值: (15524)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
pureGavin 2 2019-5-13 18:53
6
0
tDasm 病毒样本也是公司财产?除非这个病毒是你公司写的,那么这个公司应该负刑事责任,而不是知识产权。
你们公司情况我不知道,反正我们是严禁私自上传样本的分析文档的,我就被前辈说过这个事情
雪    币: 441
活跃值: (96)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大锅炖鲲 2019-5-13 18:58
7
0
很详细,学习了 
雪    币: 5047
活跃值: (1275)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PanzerT 2019-5-23 11:30
8
0
给沭阳歇大锅点个赞 
雪    币: 5859
活跃值: (633)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
沭阳 3 2019-5-23 23:26
9
0
PanzerT 给沭阳歇大锅点个赞[em_65]
谢特哥加事
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
猫头鹰111 2019-9-5 19:28
11
0
高级萌新?
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
猫头鹰111 2019-9-5 19:29
12
0
想知道RSA-4096加密的能不能解密
雪    币: 224
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
黑冰Lisa 2019-9-9 00:04
13
0
学习了
雪    币: 6403
活跃值: (2290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
shuyangzjg 2019-9-9 16:41
14
0
沭阳 谢特哥加事[em_63]
日特,沭阳哪搁的
雪    币: 224
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Recird 2019-9-11 14:06
15
1
这个样本我也分析过,不过他的文件加密并不是使用RSA4096,正常的勒索病毒也不会使用这个算法,主要原因是加密时间太长了资源占用也很大,很容易让用户很快发现,它里面加密算法用到了AES和椭圆曲线,但是加密文件只是使用的AES,但是AES的密钥部分似乎是用椭圆曲线进行加密,详细算法真的很难分析出来。。
游客
登录 | 注册 方可回帖
返回