Caitingting 发表于 2018-9-19 15:18

GandCrab 4.x详细分析报告(图很多,不建议手机阅读)

本帖最后由 Caitingting 于 2018-9-19 15:50 编辑

我是第一次在这个版块发帖子,转帖前,参考了别的论坛会员怎么做
如果有任何做得不对的地方请管理员指正。

本文内容综合自先知社区和《安全内参》
因为我们论坛已经有朋友中招了,而且都是4.x版本
希望螃蟹4.x能有更多的关注,早日给受害者一点恢复数据的希望吧。

在冗长难懂的病毒体分析之前,先说明一下螃蟹4.x的传播途径

<!---- 以下部分摘录自安全内参 ----
https://www.secrss.com/articles/3931

据报道,这个恶意软件是通过被攻陷的采用WordPress构建的网站传播的。


https://s.secrss.com/images/ce296fdcc64bbef7c763a7e8885fb417.jpg

这些页面会将用户重定向到一个单独的页面,其中包含了指向GandCrab可执行文件的实际下载链接。有趣的是,当几分钟后再次访问这些站点时,除非你更改了IP地址,否则不会再次发生重定向。https://s.secrss.com/images/b77f9e11344d240c8639642cb1a3ac12.jpg图2.指向GandCrab v4.0的下载页面我们的分析显示恶意软件的可执行文件和下载链接正在定期更新。我们在分析过程中观察到的一些链接,它们都遵循了这样一个格式——http:///file_c.php=。具体链接如下:
[*]http[:]//gabysutton[.]com/file_c.php?vubljfwmqpkebpes=437261636b5f53617070686972655f506c7567696e735f666f725f41667465725f456666656374732e657865 (Crack_Sapphire_Plugins_for_After_Effects.exe)
[*]http[:]//gagaryn[.]com/file_c.php?lkgpsudyvbjs=437261636b5f4d657267696e675f496d6167655f746f5f5044462e657865 (Crack_Merging_Image_to_PDF.exe)
[*]http[:]//blog.ygtecnopc[.]com/file_c.php?rnopbuvnxdmk=437261636b5f4d657267696e675f496d6167655f746f5f5044462e657865 (Crack_Merging_Image_to_PDF.exe)


-------------摘录完了------------------------------------>

鉴于wordpress的使用确实非常广泛,好多极客、折腾专家都有自己的博客或者小站
因此近来在访问博客、自建类网站时一定要小心!!!
我很怕怕,已经为了我家的韩剧收藏把系统输入法默认成了俄语啦(文内有讲为什么)

广告屏蔽插件也要调整为较高强度的拦截规则,因为这个传染在利用php,一个网站也许安全,但不能排除网站上挂的广告也是安全的。
接下来是冗长专业的样本分析了,样本为螃蟹4.3
文章来自先知社区
https://xz.aliyun.com/t/2685
(作者的截图,上面使用的是我们论坛的工具哈哈哈)


一、样本简介

GandCrab勒索病毒于2018年1月首次出现,在半年的时候之内,迅速发展,短短几个月时间里就出现了V1.0,V2.0,V3.0,V4.0等几个大的版本的更新,V4.0之后又出现了V4.1,V4.2,V4.3,V4.4等几个小版本的变种更新样本,非常活跃,目前此勒索病毒最新的变种样本均无法解密。

GandCrab的感染方式主要是通过以下几种方式:
(1)RDP爆破
(2)垃圾邮件,带有恶意链接或附件
(3)下载捆绑有恶意程序的正常软件
(4)利用RigEK漏洞利用工具包

二、样本分析

1.样本前期进行解密操作,先解密出里面的shellcode代码,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163957-9b29c71e-adc2-1.png
修改shellcode代码的属性,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163957-9b5492f0-adc2-1.png
转跳到相应的内存地址,执行shellcode代码,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163957-9b7eb3dc-adc2-1.png
定位kernel32.dll,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163958-9ba92b80-adc2-1.png
获取GetProcAddress函数的地址,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163958-9bd1be38-adc2-1.png
然后再获取内存操作VirtualAlloc,VirtualProtect,VirtualFree,GetVersionExA,
TerminateProcess等函数地址,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163958-9bfb2688-adc2-1.png
分配相应的内存地址,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163958-9c230356-adc2-1.png
进行内存解密出payload代码,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163959-9c49d076-adc2-1.png
进行内存块拷贝操作,将003B0000的内存数据payload拷贝到00400000内存地址处,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163959-9c8fffc4-adc2-1.png
再将003B0400处的数据,拷贝到00401000处,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901163959-9cb83872-adc2-1.png
循环拷贝003B0000处的相关数据到00400000,重建PE文件数据,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164000-9ce277ea-adc2-1.png
重建输入表操作,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164000-9d0d9ae2-adc2-1.png
输入表重建完成之后,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164000-9d3765b6-adc2-1.png
获取atexit函数地址,并执行atexit,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164001-9d62477c-adc2-1.png
最后跳转到相应的payload加密操作代码入口,执行payload代码,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164001-9d8ca8c8-adc2-1.png


2.样本跳转到了入口点,相应的反汇编代码,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164001-9da2be42-adc2-1.png


3.使用了静态对抗反汇编的方式,去混淆之后,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164001-9dbbd09e-adc2-1.png


4.跳转到入口函数之后,同样使用了相同的对抗反汇编的方式,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164001-9dd8d982-adc2-1.png


5.获取Windows操作系统版本,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164001-9decfcbe-adc2-1.png


6.获取当前运行进程权限,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164002-9e0512cc-adc2-1.png


7.遍历相关进程,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164002-9e239d0a-adc2-1.png


然后结束相关的进程,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164002-9e3d9eda-adc2-1.png


相关的进程列表如下:

msftesql.exe、sqlagent.exe、sqlbrowser.exe、sqlwriter.exe、oracle.exe、ocssd.exe、dbsnmp.exe、   synctime.exe、agntsvc.exeisqlplussvc.exe、xfssvccon.exe    sqlservr.exe、mydesktopservice.exe、ocautoupds.exe、agntsvc.exeagntsvc.exe    agntsvc.exeencsvc.exe、firefoxconfig.exe、tbirdconfig.exe、mydesktopqos.exe    ocomm.exe、mysqld.exe、mysqld-nt.exe、mysqld-opt.exe、dbeng50.exe    sqbcoreservice.exe、excel.exe、infopath.exe、msaccess.exe、mspub.exe    onenote.exe、outlook.exe、powerpnt.exe、steam.exe、sqlservr.exe、thebat.exe    thebat64.exe、thunderbird.exe、visio.exe、winword.exe、wordpad.exe

8.查询操作系统安装的输入法,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164002-9e5f18d0-adc2-1.png


比较操作系统输入法是否为Russian,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164002-9e705a5a-adc2-1.png


如果操作系统为输入法为Russian,则不进行加密操作,执行后面的自删除操作,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164003-9e8cae80-adc2-1.png


9.获取操作系统的语言版本,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164003-9ea864fe-adc2-1.png
当操作系统语言为如下国家时,则不进行加密,执行自删除操作,相应的国家列表如下:

419(LANG_RUSSIAN俄语) 422(LANG_UKRAINIAN乌克兰)
423(LANG_BELARUSIAN白俄罗斯) 428(LANG_TAJIK塔吉克)
42B(LANG_ARMENIAN亚美尼亚) 42C(阿塞拜疆,拉丁美洲(AZ))
437(LANG_GEORGIAN格鲁吉亚人) 43F(LANG_KAZAK哈萨克族)
440(LANG_KYRGYZ吉尔吉斯) 442(LANG_TURKMEN土库曼)
443(乌兹别克斯坦,拉丁语(UZ)) 444(LANG_TATAR俄罗斯(RU))
818(未知)
819(未知)
82C(LANG_AZERI阿塞拜疆,西里尔(亚利桑那州))
843(LANG_UZBEK乌兹别克)


10.创建一个随机名称的互斥变量,防止重复感染,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164003-9ec3201e-adc2-1.png


11.利用程序中硬编码的数据,内存加密生成RSA公钥public_key,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164003-9edb400e-adc2-1.png


动态调试,得到的RSA公钥数据,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164003-9efdf7a2-adc2-1.png


RSA公钥,如下:

06 02 00 00 00 A4 00 00 52 53 41 31 00 08 00 00 01 00 01 00 BB EF 02 46 0B 5E 8C 72 8E A0 A0    31 AE 95 33 82 D6 67 89 32 B2 ED 92 A8 16 0A BC 28 C1 4D 3E 00 A3 DC 48 47 3D E9 9A C1 31 AE    41 C5 E8 22 70 6A 7F 75 98 8F C6 EB EE 65 9B 1B 96 D3 4D AA 3F 75 0B A5 75 E7 71 CD 88 A0 77    E0 CB 2F 33 A2 0D AB E4 E3 40 82 3F D9 95 50 A4 92 56 AA 77 61 05 75 F2 25 81 DA A1 BE 30 A7    CB DA 2B A39E 85 AB 03 8D BB D3 F0 BB 9C 71 9A D4 98 CF C6 C2 A8 62 84 32 85 4C 1B 2C FF E4 D8    D9 E5 2A BB 18 06 08 6A F4 D8 D1 8D 00 E3 41 FC E7 C5 20 25 D2 DD 47 FF 27 09 1F 6D 34 6C 8A      0A EB AB 13 48 09 F6 24 24 98 84 22 DD C1 A1 1C 60 63 06 71 EE 00 4A 21 BA 1F AF 4C 03 D2 C7      3F BA 64 39 35 B4 44 0B 17 5F B5 2C 8C 4E B2 E6 61 B2 23 21 4D AD FB D4 1D 96 4B A1 FC 7F BF      98 78 BB D3 72 F1 E3 46 1F 03 4C 05 18 96 C1 47 C0 A0 6F 17 07 11 10 2B 2D D4 C8

12.获取主机相关信息,如下所示:

https://xzfile.aliyuncs.com/media/upload/picture/20180901164003-9f21d564-adc2-1.png

获取的相关信息列表如下:
用户名    主机名    工作组    操作系统语言    操作系统键盘输入法    操作系统版本类型信息    CPU类型及型号信息    安全软件信息    磁盘类型及空间信息

遍历主机上的安全软件,收集安全软件相关信息,如下:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164004-9f3ca95c-adc2-1.png

相关的安全软件列表如下:
AVP.EXE、ekrn.exe、avgnt.exe、ashDisp.exe、NortonAntiBot.exe、Mcshield.exe    avengine.exe、cmdagent.exe、smc.exe、persfw.exe、pccpfw.exe、fsguiexe.exe    cfp.exe、msmpeng.exe

得到的相关信息,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164004-9f57f9dc-adc2-1.png

相应的反汇编代码,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164004-9f7205ac-adc2-1.png

13.获取到主机的相关信息,拼接字符串信息,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164004-9f8565de-adc2-1.png
然后对拼接出来的字符串进行加密处理,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164004-9fa74046-adc2-1.png

相应的反汇编代码,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164005-9fc78c16-adc2-1.png

可以看到此GandCrab勒索样本的版本信息version=4.3

14.获取相应的网站域名链接地址,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164005-9fea77b2-adc2-1.png

相应的域名地址列表如下:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164005-9ffcc28c-adc2-1.png

勒索软件从上面的域名地址列表中选择一个域,并使用以下单词之一创建随机的路径,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164005-a0223986-adc2-1.png

随机的路径列表如下:
wp-content、static、content、includes、data、uploads、news

然后再选择一个单词添加后URL后面,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164005-a0391a16-adc2-1.png

相关的单词列表如下:
images、pictures、image、graphic、assets、pics、imgs、tmp

再从下面的文件名列表中随机选择几个组合成文件名,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164006-a0558d18-adc2-1.png
相应的文件名组合列表如下:
im、de、ka、ke、am、es、so、fu、se、da、he、ru、me、mo、th、zu

最后再把前面的URL与随机选择的扩展名连接起来,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164006-a070ef22-adc2-1.png

随机的扩展名列表如下:
jpg、png、gif、bmp

使用POST的方式发送HTTP请求到之前拼接出来的网站,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164006-a09651cc-adc2-1.png

15.利用程序中的硬编码数据作为Key,然后生成RSA公钥和私钥,并导出公钥,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164006-a0b93886-adc2-1.png

16.将生成的RSA私钥和硬编码生成的RSA公钥设置到注册表项中,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164006-a0dcfe56-adc2-1.png

设置完成之后,注册表键值如下:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164007-a1056198-adc2-1.png

相应的注册表项:
HKEY_CURRENT_USER\SOFTWARE\keys_data\data

17.生成勒索信息文件加密Key的相关信息,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164007-a12ad7ca-adc2-1.png
生成的勒索信息加密Key,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164007-a1509cbc-adc2-1.png

18.内存拼接生成勒索信息,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164007-a175e526-adc2-1.png

19.遍历磁盘,创建线程,加密磁盘文件,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164008-a196cc1e-adc2-1.png

20.创建线程,加密局域网共享目录文件夹下的文件,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164008-a1b879ea-adc2-1.png

21.遍历主机或网络共享文件夹目录,如果是以下文件目录,则不进行加密操作,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164008-a1d58c24-adc2-1.png

相应的文件目录列表如下:

\ProgramData\
\IEIldCache\
\Boot\
\Program Files\
\Tor Browser\
\All Users\
\Local Settings\
\Windows\

22.遍历磁盘目录下的文件,如果为以下文件,则不进行加密操作,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164008-a1f7792e-adc2-1.png
相应的文件名称列表如下:

desktop.ini
autorun.inf
ntuser.dat
iconcache.db
bootsect.bak
boot.ini
ntuser.dat.log
thumbs.db
KRAB-DECRYPT.html
KRAB-DECRYPT.txt
CRAB-DECRYPT.txt
ntldr
NTDETECT.COM
Bootfont.bin

23.将之前生成的勒索信息写入到每个加密后的文件夹下的勒索信息文本文件KRAB-DECRYPT.txt中,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164008-a219ce5c-adc2-1.png

写入相应的勒索信息,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164009-a23c3136-adc2-1.png

24.生成随机的lock文件,保存感染时间,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164009-a25c704a-adc2-1.png

25.加密文件,生成以KRAB为后缀的加密文件,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164009-a27eb3ee-adc2-1.png

26.加密完成之后,通过ShellExecuteW函数调用wmic.exe程序,删除磁盘卷影操作,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164009-a29db618-adc2-1.png

27.对抗杀毒软件,对杀毒软件的相关驱动进行攻击DeviceIoControl请求,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164009-a2ae681e-adc2-1.png
https://xzfile.aliyuncs.com/media/upload/picture/20180901164010-a2bca262-adc2-1.png

28.相应的勒索信息文本文件,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164010-a2ddada4-adc2-1.png

29.加密后的文件,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164010-a2ff25d8-adc2-1.png

30.通过勒索信息,打开相应的暗网网站,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164010-a324b12c-adc2-1.png
https://xzfile.aliyuncs.com/media/upload/picture/20180901164010-a3458d70-adc2-1.png

三、总结

此勒索病毒V4.3版本主要利用了对抗静态反汇编的方式,防止安全分析人员对样本进行静态分析,增大了样本静态分析的难度。
对抗反汇编的方式,如下所示:
https://xzfile.aliyuncs.com/media/upload/picture/20180901164011-a358f9a0-adc2-1.png



写在后面——一点个人小猜想:

解密螃蟹4.x应该极其困难。不过,刚刚去看了一眼罪犯的洋葱网站,看见网站中提供了“免费试解密1个文件”的服务(亲,好用您再付款哦,真嚣张啊 -_-!!!)


经过观察,网页有“动态部分”
粉色箭头那里可以提交文件,黄色箭头所示是访问网页时所一并要加载的域名(内有javascript和css等)
根据多年对Tor相关技术的关注,我知道一件事,就是:
一个基于暗网的网站,除非是纯静态,否则不可能100%保证它是“暗的”

因此我想,这个犯罪分子留下的网站,有没有可能有漏洞,可以让正义的技术猿挖出解密工具呢?
即利用粉红色那行字的“定理”,通过“数据露出”找到主机IP,然后尝试攻破它,以解受害者于倒悬。

叶泉 发表于 2018-9-19 16:22

1000Y 发表于 2018-9-19 16:11

看了一圈,没看明白,虚心学习了!

iamafailor 发表于 2018-9-19 17:44

应该加上 ,不建议新手阅读 哈哈

ATree 发表于 2018-9-19 18:50

还好,分析还是比较细腻的

夏日的纸飞机 发表于 2018-9-19 20:54

谢谢分享

Windows10 发表于 2018-9-19 21:37

如果给钱真的给解密也说得过去,但是现在太多不讲信用的

lyp8896 发表于 2018-9-19 22:18

很稳看看如何

stxxb 发表于 2018-9-19 22:21

很详细支持

yssun 发表于 2018-9-19 22:37

很稳看看如何
页: [1] 2 3
查看完整版本: GandCrab 4.x详细分析报告(图很多,不建议手机阅读)