Linux下的恶意软件多为sh脚本,且由于使用的命令大同小异(均为下载文件、运行进程、创建定时任务、写ssh后门等操作),经常难以分辨恶意sh脚本是属于哪个病毒家族的。遇到这种情况,使用yara规则对恶意脚本进行检测分类是个不错的选择,本文将介绍如何借助yargen实现对Linux恶意脚本特征的半自动化提取。

什么yarGen?

yargen是一个自动化提取yara规则的工具,可以提取strings和opcodes特征,其原理是先解析出样本集中的共同的字符串,然后经过白名单库的过滤,最后通过启发式、机器学习等方式筛选出最优的yara规则,项目地址:https://github.com/Neo23x0/yarGen

图片1.png

下面以8220黑客团伙(StartMiner)的恶意脚本进行演示:

如何提取其yara规则?

首先需要收集该家族每次变种的样本,如下,该家族从2018年8月到现在一直在更新,其特点是脚本大部分都伪装成.jpg后缀。

图片2.png

yargen的用法很简单,-m参数,加上样本集的目录就行了,第一次运行yargen的话可能会比较久,因为它要下载更新白名单库。

图片3.png

运行过程中,yargen会显示提取的特征数详情,其中我们要关注的是SUPER rules,这些规则代表的是泛规则,可以匹配家族的多个样本。

图片4.png

生成的文件yargen_rules.yar在yargen.py的同目录下,打开滑到Super Rules的地方,即是泛规则,规则的名字代表着能匹配哪些样本,如下第一个rule _logo8_jpg_hehe_0,代表匹配脚本logo8.jpg及hehe.sh。

图片5.png

Super Rules里也不是所有规则都要关注,主要聚焦看匹配数最多的规则,如下我会关注

rule _cr_logo8_jpg_2start_jpg_2start_jpg_3start_jpg_1规则,及rule _cr_cr_logo8_jpg_logo8_jpg_2start_jpg_2start_jpg_2start_jpg_2start_jpg_3start_jpg_3start_jpg_3规则。

yargen虽然能自动化提取字符串特征很方便,但工具难免会有误报,必须得自己人工筛选一遍,如下,先看rule _cr_logo8_jpg_2start_jpg_2start_jpg_3start_jpg_1规则,我挑选了红框中5个比较特别的字符串,其他一些WGET、download、sleep等字符串可能会存在误报场景,我就不考虑了。

图片6.png

再看rule _cr_cr_logo8_jpg_logo8_jpg_2start_jpg_2start_jpg_2start_jpg_2start_jpg_3start_jpg_3start_jpg_3规则,由于其匹配的样本数多,自然的特征项就比较少,我选取了如下2个特征。

图片7.png

筛选出如上特征后,需要查看字符串在脚本中对应的位置,以确认该特征是否为黑客独特的脚本编写习惯。如下图以echo “*”为例,发现黑客在编写echo语句时都喜欢在开头加个大写首字母,且延续了好几个变种,这个可以作为特征。

图片8.png

再看"case $sum in"规则,该语句用于判断文件MD5,也是黑客的一个脚本编写习惯,延续了几个变种。

图片9.png

除此之外,还发现脚本里都有f2=”*”的变量声明,也可以作为特征。

图片10.png

以及judge函数名。

图片11.png

其中提取脚本中的域名/IP作为特征,因为黑客在新的变种中有可能复用旧的C&C。

图片12.png

最后优化后的规则如下,主要为3类字符串,语法特征、变量特征、ioc特征,根据不同的比重编写condition,其中ioc相当于硬性指标,只要出现任意1个就可以直接确认该脚本为8220/StartMiner家族。

图片13.png

验证:对该规则进行测试,测试样本均能检出。

图片14.png

Linux脚本基本不会进行混淆,且均是字符串,使用yargen进行自动化提取有其优势,可以大大提高提取特征的效率,大家可以尝试使用该方法来提取其他家族的yara特征。同时,每个安全研究员提取的yara都不一样,风格不一,需要进行大量样本的测试,来不断优化yara规则的质量。

参考链接:

https://blog.csdn.net/m0_37552052/article/details/104570954

https://s.tencent.com/research/report/978.html 

Linux下的恶意软件多为sh脚本,且由于使用的命令大同小异(均为下载文件、运行进程、创建定时任务、写ssh后门等操作),经常难以分辨恶意sh脚本是属于哪个病毒家族的。遇到这种情况,使用yara规则对恶意脚本进行检测分类是个不错的选择,本文将介绍如何借助yargen实现对Linux恶意脚本特征的半自动化提取。

什么yarGen?

yargen是一个自动化提取yara规则的工具,可以提取strings和opcodes特征,其原理是先解析出样本集中的共同的字符串,然后经过白名单库的过滤,最后通过启发式、机器学习等方式筛选出最优的yara规则,项目地址:https://github.com/Neo23x0/yarGen

图片1.png

下面以8220黑客团伙(StartMiner)的恶意脚本进行演示:

如何提取其yara规则?

首先需要收集该家族每次变种的样本,如下,该家族从2018年8月到现在一直在更新,其特点是脚本大部分都伪装成.jpg后缀。

图片2.png

yargen的用法很简单,-m参数,加上样本集的目录就行了,第一次运行yargen的话可能会比较久,因为它要下载更新白名单库。

图片3.png

运行过程中,yargen会显示提取的特征数详情,其中我们要关注的是SUPER rules,这些规则代表的是泛规则,可以匹配家族的多个样本。

图片4.png

生成的文件yargen_rules.yar在yargen.py的同目录下,打开滑到Super Rules的地方,即是泛规则,规则的名字代表着能匹配哪些样本,如下第一个rule _logo8_jpg_hehe_0,代表匹配脚本logo8.jpg及hehe.sh。

图片5.png

Super Rules里也不是所有规则都要关注,主要聚焦看匹配数最多的规则,如下我会关注

rule _cr_logo8_jpg_2start_jpg_2start_jpg_3start_jpg_1规则,及rule _cr_cr_logo8_jpg_logo8_jpg_2start_jpg_2start_jpg_2start_jpg_2start_jpg_3start_jpg_3start_jpg_3规则。

yargen虽然能自动化提取字符串特征很方便,但工具难免会有误报,必须得自己人工筛选一遍,如下,先看rule _cr_logo8_jpg_2start_jpg_2start_jpg_3start_jpg_1规则,我挑选了红框中5个比较特别的字符串,其他一些WGET、download、sleep等字符串可能会存在误报场景,我就不考虑了。

图片6.png

再看rule _cr_cr_logo8_jpg_logo8_jpg_2start_jpg_2start_jpg_2start_jpg_2start_jpg_3start_jpg_3start_jpg_3规则,由于其匹配的样本数多,自然的特征项就比较少,我选取了如下2个特征。

图片7.png

筛选出如上特征后,需要查看字符串在脚本中对应的位置,以确认该特征是否为黑客独特的脚本编写习惯。如下图以echo “*”为例,发现黑客在编写echo语句时都喜欢在开头加个大写首字母,且延续了好几个变种,这个可以作为特征。

图片8.png

再看"case $sum in"规则,该语句用于判断文件MD5,也是黑客的一个脚本编写习惯,延续了几个变种。

图片9.png

除此之外,还发现脚本里都有f2=”*”的变量声明,也可以作为特征。

图片10.png

以及judge函数名。

图片11.png

其中提取脚本中的域名/IP作为特征,因为黑客在新的变种中有可能复用旧的C&C。

图片12.png

最后优化后的规则如下,主要为3类字符串,语法特征、变量特征、ioc特征,根据不同的比重编写condition,其中ioc相当于硬性指标,只要出现任意1个就可以直接确认该脚本为8220/StartMiner家族。

图片13.png

验证:对该规则进行测试,测试样本均能检出。

图片14.png

Linux脚本基本不会进行混淆,且均是字符串,使用yargen进行自动化提取有其优势,可以大大提高提取特征的效率,大家可以尝试使用该方法来提取其他家族的yara特征。同时,每个安全研究员提取的yara都不一样,风格不一,需要进行大量样本的测试,来不断优化yara规则的质量。

参考链接:

https://blog.csdn.net/m0_37552052/article/details/104570954

https://s.tencent.com/research/report/978.html 

0x0 背景介绍

随着疫情的缓解,各地企业纷纷复工,而勒索病毒家族也并没有停下他们的脚步。近期深信服安全团队就收到多个地区关于用户主机遭受大面积.C4H勒索病毒入侵的求助,经过安全团队排查分析,确认为GlobeImposter勒索病毒家族的最新变种C4H。

GlobeImposter家族首次出现的时间为2017年5月,随后在2018与2019年出现不同系列的变种,如:以特征字符“.Dragon4444 .Snake4444 .Horse4444 .Goat4444 .Monkey4444”等的“十二生肖”系列,与以“希腊十二主神 + 666”为特征的“十二主神”系列等。攻击者常常通过暴力破解服务器密码,对内网服务器发起扫描并人工投放GlobeImposter勒索病毒进行勒索。

0x1 变种概述

病毒变种版本: C4H.exe

MD5值:3af2e34e2b5e3632c0c99de82ac5a6e4

SHA256值:987dbef97c27a6f1f45417d3d29eafdf9dcc8c7dee0ef659d0bf0e5424a00b8c

本次主要分析的是GlobeImposter的新变种“C*H”系列中的C3H/C4H。该病毒依然使用勒索病毒中常见的RSA+AES加密算法进行加密。

此次变种与18年出现过的版本的不同之处包括但不仅限于以下几点:

1、不同于初始版本需要解密才能获取RSA加密的的相关信息和最后执行的bat脚本,此次变种将这两者直接以明文的形式写在了程序中。

2、在设置自启动的注册表键值中进行了调整,从BrowserUpdateCheck调整为CertificatesCheck。

3、程序执行的过程和步骤顺序进行了调整。

4、程序只有一个可执行可写的.rdata段,与我们常见的PE文件拥有多个段并以.test段为代码段不同,查壳工具会认为有壳。

0x2加密流程

勒索病毒首先拥有一个的RSA公钥(A)。对于当前用户主机,会使用RSA生成一对新的RSA公钥私钥(B)。

其中生成信密钥(B)使用原RSA公钥(A)进行加密后,作为用户ID。

在对系统的文件进行遍历与加密的过程中,对每个文件生成其对应的AES密钥,进行加密。加密文件后,又会将信息与ID通过RSA(B)进行加密并追加在加密文件的末尾。实现勒索。

如果黑客需要解密,只要通过自己的RSA私钥(A),对用户的ID进行解密,就可以得到RSA私钥(B),从而解密文件的末尾得到AES的密钥,再解密出原始文件。

0x3 病毒行为

1、 对主流的文件类型加密并添加后缀”.C4H” 

图片1.png

2、 每个目录下生成一个勒索文档Decryption Info.html

图片2.png

 图片3.png

3、 行为工具监控查看

1.执行监控:会创建子程序和cmd命令行进行执行,随后结束;

图片4.png

2.文件监控:大量文件被改写 ;

图片5.png

3.注册表监控:改写注册表,如设置自启动等;

图片6.png

4.网络行为:无网络行为。

0x4 技术分析

1、 文件结构

该文件只有一个可执行可写的.rdata段,怀疑企图通过这种方式逃过扫描,里面存放了的start函数中只有一个main函数,ida反汇编查看结构相对清晰。

图片7.png

2、 SHA加密密钥

首先程序会将512位的字符串作为参数传入函数中,计算出SHA256的数值作为一份密钥,为后续加密与解密做准备。此处怀疑长字符串与RSA有关。

图片8.png

 图片9.png

3、 解密字符串

随后,程序会利用上一步中SHA加密得到的值作为密钥,对程序中的一些资源进行解密;

图片10.png

分别解密出了勒索文档的名称;

图片11.png

大量Windows系统相关的字符串:

图片12.png

大量罕见的文件格式:

图片13.png

以及后续加密将要用到的密钥:

图片14.png

(此处.C3H和.C4H仅文字上区别,并无实质或版本区别)

初步判断是文件格式和与windows有关的字符串是程序将要避开的目标。

4、 自我复制

随后会获取系统上某一特定路径,将自身复制到该路径上;

图片15.png

利用了GetEnvironmentVariableW,CopyFileW等API函数。

5、 设置注册表键值

图片16.png

设置了自启动的注册表键值,此处使用了CertificatesCheck,在以前的版本中使用了BrowserUpdateCheck,发生了变化。

6、 生成用户专属文件

图片17.png

其中解密出的字符串是通过利用0123456789ABCDEF进行简单的运算解密出的哈希字符串

随后通过附加在目录后,去创建用户专属ID的文件,内部保存一些用户的信息。

图片18.png

随后通过RSA加密算法,对ID文件的内容进行加密;

图片19.png

再将内容写入文件中,内容如下:

图片20.png

7、 勒索文档的生成

图片21.png

生成了Decryption Info.html

8、 结束进程

遍历C:\Windows\system32目录下的程序,如果运行中就先结束。

图片22.png

在动态调试过程中发现主要遍历了一些exe文件,查看是否有对应的进程在运行中,有则结束。

9、 文件加密

文件加密时首先通过GetLogicalDrives和GetDriveTypeA等API获取磁盘的信息,然后对每一个盘开启一个线程进行加密。线程开启的encrypt函数主要参数为v18,它通过偏移分别包括了加密的key,用户的ID(上面生成的,也会作为加密的信息进行加密),以及文件的路径。

图片23.png

对文件加密的过程主要用到了AES算法,并且在程序中直接实现,而不是调用API。

图片24.png 

 图片25.png

先利用RSA公钥去加密“010001”写入文件后面,然后再把用户ID写入文件末尾;

图片26.png

从而完成加密,再通过循环不断加密下一个文件。

10、 执行bat脚本

图片27.png

脚本会删除注册表中“Terminal Server Client”中的键值,删除远程桌面连接信息文件default.rdp,还会通过wevtutil.exe cl的命令清除日志的相关信息。

11、 自我删除

图片28.png

 

通过调用CMD /c del来实现自删除。

0x5 解决方案

针对已经出现勒索现象的用户,由于暂时没有解密工具,建议尽快对感染主机进行断网隔离。深信服提醒广大用户尽快做好病毒检测与防御措施,防范该病毒家族的勒索攻击。

0x6 加固建议

1. 使用高强度的主机密码,并避免多台设备使用相同密码,不要对外网直接映射3389等端口,防止暴力破解;

2. 避免打开来历不明的邮件、链接和网址附件等,尽量不要在非官方渠道下载非正版的应用软件,发现文件类型与图标不相符时应先使用安全软件对文件进行查杀;

3. 定期使用安全软件进行全盘扫描和处置,定期检测系统漏洞并且进行补丁修复。

0x0 背景介绍

随着疫情的缓解,各地企业纷纷复工,而勒索病毒家族也并没有停下他们的脚步。近期深信服安全团队就收到多个地区关于用户主机遭受大面积.C4H勒索病毒入侵的求助,经过安全团队排查分析,确认为GlobeImposter勒索病毒家族的最新变种C4H。

GlobeImposter家族首次出现的时间为2017年5月,随后在2018与2019年出现不同系列的变种,如:以特征字符“.Dragon4444 .Snake4444 .Horse4444 .Goat4444 .Monkey4444”等的“十二生肖”系列,与以“希腊十二主神 + 666”为特征的“十二主神”系列等。攻击者常常通过暴力破解服务器密码,对内网服务器发起扫描并人工投放GlobeImposter勒索病毒进行勒索。

0x1 变种概述

病毒变种版本: C4H.exe

MD5值:3af2e34e2b5e3632c0c99de82ac5a6e4

SHA256值:987dbef97c27a6f1f45417d3d29eafdf9dcc8c7dee0ef659d0bf0e5424a00b8c

本次主要分析的是GlobeImposter的新变种“C*H”系列中的C3H/C4H。该病毒依然使用勒索病毒中常见的RSA+AES加密算法进行加密。

此次变种与18年出现过的版本的不同之处包括但不仅限于以下几点:

1、不同于初始版本需要解密才能获取RSA加密的的相关信息和最后执行的bat脚本,此次变种将这两者直接以明文的形式写在了程序中。

2、在设置自启动的注册表键值中进行了调整,从BrowserUpdateCheck调整为CertificatesCheck。

3、程序执行的过程和步骤顺序进行了调整。

4、程序只有一个可执行可写的.rdata段,与我们常见的PE文件拥有多个段并以.test段为代码段不同,查壳工具会认为有壳。

0x2加密流程

勒索病毒首先拥有一个的RSA公钥(A)。对于当前用户主机,会使用RSA生成一对新的RSA公钥私钥(B)。

其中生成信密钥(B)使用原RSA公钥(A)进行加密后,作为用户ID。

在对系统的文件进行遍历与加密的过程中,对每个文件生成其对应的AES密钥,进行加密。加密文件后,又会将信息与ID通过RSA(B)进行加密并追加在加密文件的末尾。实现勒索。

如果黑客需要解密,只要通过自己的RSA私钥(A),对用户的ID进行解密,就可以得到RSA私钥(B),从而解密文件的末尾得到AES的密钥,再解密出原始文件。

0x3 病毒行为

1、 对主流的文件类型加密并添加后缀”.C4H” 

图片1.png

2、 每个目录下生成一个勒索文档Decryption Info.html

图片2.png

 图片3.png

3、 行为工具监控查看

1.执行监控:会创建子程序和cmd命令行进行执行,随后结束;

图片4.png

2.文件监控:大量文件被改写 ;

图片5.png

3.注册表监控:改写注册表,如设置自启动等;

图片6.png

4.网络行为:无网络行为。

0x4 技术分析

1、 文件结构

该文件只有一个可执行可写的.rdata段,怀疑企图通过这种方式逃过扫描,里面存放了的start函数中只有一个main函数,ida反汇编查看结构相对清晰。

图片7.png

2、 SHA加密密钥

首先程序会将512位的字符串作为参数传入函数中,计算出SHA256的数值作为一份密钥,为后续加密与解密做准备。此处怀疑长字符串与RSA有关。

图片8.png

 图片9.png

3、 解密字符串

随后,程序会利用上一步中SHA加密得到的值作为密钥,对程序中的一些资源进行解密;

图片10.png

分别解密出了勒索文档的名称;

图片11.png

大量Windows系统相关的字符串:

图片12.png

大量罕见的文件格式:

图片13.png

以及后续加密将要用到的密钥:

图片14.png

(此处.C3H和.C4H仅文字上区别,并无实质或版本区别)

初步判断是文件格式和与windows有关的字符串是程序将要避开的目标。

4、 自我复制

随后会获取系统上某一特定路径,将自身复制到该路径上;

图片15.png

利用了GetEnvironmentVariableW,CopyFileW等API函数。

5、 设置注册表键值

图片16.png

设置了自启动的注册表键值,此处使用了CertificatesCheck,在以前的版本中使用了BrowserUpdateCheck,发生了变化。

6、 生成用户专属文件

图片17.png

其中解密出的字符串是通过利用0123456789ABCDEF进行简单的运算解密出的哈希字符串

随后通过附加在目录后,去创建用户专属ID的文件,内部保存一些用户的信息。

图片18.png

随后通过RSA加密算法,对ID文件的内容进行加密;

图片19.png

再将内容写入文件中,内容如下:

图片20.png

7、 勒索文档的生成

图片21.png

生成了Decryption Info.html

8、 结束进程

遍历C:\Windows\system32目录下的程序,如果运行中就先结束。

图片22.png

在动态调试过程中发现主要遍历了一些exe文件,查看是否有对应的进程在运行中,有则结束。

9、 文件加密

文件加密时首先通过GetLogicalDrives和GetDriveTypeA等API获取磁盘的信息,然后对每一个盘开启一个线程进行加密。线程开启的encrypt函数主要参数为v18,它通过偏移分别包括了加密的key,用户的ID(上面生成的,也会作为加密的信息进行加密),以及文件的路径。

图片23.png

对文件加密的过程主要用到了AES算法,并且在程序中直接实现,而不是调用API。

图片24.png 

 图片25.png

先利用RSA公钥去加密“010001”写入文件后面,然后再把用户ID写入文件末尾;

图片26.png

从而完成加密,再通过循环不断加密下一个文件。

10、 执行bat脚本

图片27.png

脚本会删除注册表中“Terminal Server Client”中的键值,删除远程桌面连接信息文件default.rdp,还会通过wevtutil.exe cl的命令清除日志的相关信息。

11、 自我删除

图片28.png

 

通过调用CMD /c del来实现自删除。

0x5 解决方案

针对已经出现勒索现象的用户,由于暂时没有解密工具,建议尽快对感染主机进行断网隔离。深信服提醒广大用户尽快做好病毒检测与防御措施,防范该病毒家族的勒索攻击。

0x6 加固建议

1. 使用高强度的主机密码,并避免多台设备使用相同密码,不要对外网直接映射3389等端口,防止暴力破解;

2. 避免打开来历不明的邮件、链接和网址附件等,尽量不要在非官方渠道下载非正版的应用软件,发现文件类型与图标不相符时应先使用安全软件对文件进行查杀;

3. 定期使用安全软件进行全盘扫描和处置,定期检测系统漏洞并且进行补丁修复。

0x0 背景介绍

近日,深信服安全团队排查定位到一款伪装为Windows系统帮助文件的远控木马,攻击者通过远控木马下发挖矿程序到被害主机,占用主机资源进行挖矿。

0x1 威胁关联分析

通过威胁分析发现,该木马连接的域名 fuck88.f3322.net和r.nxxxn.ga是已经被开源威胁情报收录的两个恶意域名,同时用于Kryptik木马的控制端:

图片1.png

查询域名fuck88.f3322.net的whois信息,可以看到注册者使用名为“peng yong”,并且该注册者同时注册了多个具有欺骗性的动态域名:

图片2.png

图片3.png

通过深信服云脑查询恶意域名相关信息,在最近一个月内攻击次数均较为平稳:

图片4.png

服务DLL文件Remote.hlp是一个伪装成Windows帮助文件的后门程序,仅从字符串分析,就能够得到许多功能信息,而此次事件捕获的域名所关联的后门程序中,均存在一条“TheCodeMadeByZPCCZQ”标识字符串:

图片5.png

可以推断,这些后门程序均来源于同一款远控生成器,并且通过对后门dll的字符串分析,有很多中文描述的控制操作,可以确认是一款汉化的远控程序:

图片6.png

在此次捕获的安全事件中,除了持久化驻留的后门程序,在被害主机中存在通过后门投放的挖矿程序,伪装成银行图标,占用主机资源进行挖矿:

图片7.png

图片8.png

命令行中配置的的恶意域名为o.vollar.ga。 

0x2 后门母体

1. 检查互斥体“XXNBbin1”,如不存在则创建该互斥体:

图片9.png

2. 验证路径“C:\ProgramData\Microsoft\Windows\GameExplorer”是否存在,如不存在则创建:

图片10.png

3. 创建注册表值,并设置如下键值:

hKey = HKEY_CURRENT_USER
Subkey = "Software\Microsoft\Windows\Windows Error Reporting"
ValueName = "DontshowUI"
Value = 0x01
 
hKey = HKEY_LOCAL_MACHINE
Subkey = "software\microsoft\remote\Desktop"
ValueName = ""
Value = "C:\Documents and Settings\Administrator\桌面\"

4. 释放用于注册后门服务的DLL文件,路径为"C:\ProgramData\Microsoft\Windows\GameExplorer\Remote.hlp",并设置文件属性为HIDDEN|SYSTEM:

图片11.png

5. 注册表里添加服务注册项,不同的母体注册的服务名称会有变化:

图片12.png

该样本中服务名称为".Net CLR",研究员排查过程中发现有过“Ias”、“FastUserSwitchingCompatibilty”,服务指向的DLL程序都是母体释放的Remote.hlp:

图片13.png

6. 创建服务并启动:

图片14.png

7. 释放"C:\Windows\System32\\Delete00.bat"文件,清除母体,然后退出母体进程:

图片15.png

0x3 服务DLL

1. 服务DLL文件通常是远程控制软件批量生产的的被控端,会释放在C:\ProgramData\Microsoft\Windows\GameExplorer\目录下并命名为Remote.hlp,伪装成Windows帮助文件:

图片16.png

2. 通过逆向分析可总结该远控木马所具有的功能如下:

获取主机信息

进程获取/结束/暂停/恢复

鼠标锁定/解锁

文件传输

屏幕黑屏/解除黑屏

重启/关机/注销

隐藏桌面/解除隐藏

服务安装/启动/停止/删除

系统操作快捷键

网络管理/代理设置

Win7加速开启/关闭

软件管理

hosts文件修改

添加用户

远程shell

消息发送

文件压缩

添加QQ群

 

3. 同时,该远控木马会检测是否存在以下安全软件,尝试绕过,具体见下表:

Navapsvc.exe

FilMsg.exe

spiderui.exe

Iparmor.exe

AVK.exe

KSafeTray.exe

360sd.exe

KvMonXP.exe

ashDisp.exe

kxetray.exe

avcenter.exe

mcupdui.exe

avguard.exe

msseces.exe

AVK.exe

Navapsvc.exe

360sd.exe

360netman.exe

ashDisp.exe

ns.exe

avcenter.exe

PFW.exe

avguard.exe

QQPCTray.exe

360Tray.exe

RavMon.exe

avp.exe

secenter.exe

BaiduSdSvc.exe

egui.exe

ccSvrHst.exe

360tray.exe


0x4 加固建议

1. 使用高强度的主机密码,并避免多台设备使用相同密码,不要对外网直接映射3389等端口,防止暴力破解;

2. 避免打开来历不明的邮件、链接和网址附件等,尽量不要在非官方渠道下载非正版的应用软件,发现文件类型与图标不相符时应先使用安全软件对文件进行查杀;

3. 定期使用安全软件进行全盘扫描和处置,定期检测系统漏洞并且及时进行补丁修复。

0x0 背景介绍

近日,深信服安全团队排查定位到一款伪装为Windows系统帮助文件的远控木马,攻击者通过远控木马下发挖矿程序到被害主机,占用主机资源进行挖矿。

0x1 威胁关联分析

通过威胁分析发现,该木马连接的域名 fuck88.f3322.net和r.nxxxn.ga是已经被开源威胁情报收录的两个恶意域名,同时用于Kryptik木马的控制端:

图片1.png

查询域名fuck88.f3322.net的whois信息,可以看到注册者使用名为“peng yong”,并且该注册者同时注册了多个具有欺骗性的动态域名:

图片2.png

图片3.png

通过深信服云脑查询恶意域名相关信息,在最近一个月内攻击次数均较为平稳:

图片4.png

服务DLL文件Remote.hlp是一个伪装成Windows帮助文件的后门程序,仅从字符串分析,就能够得到许多功能信息,而此次事件捕获的域名所关联的后门程序中,均存在一条“TheCodeMadeByZPCCZQ”标识字符串:

图片5.png

可以推断,这些后门程序均来源于同一款远控生成器,并且通过对后门dll的字符串分析,有很多中文描述的控制操作,可以确认是一款汉化的远控程序:

图片6.png

在此次捕获的安全事件中,除了持久化驻留的后门程序,在被害主机中存在通过后门投放的挖矿程序,伪装成银行图标,占用主机资源进行挖矿:

图片7.png

图片8.png

命令行中配置的的恶意域名为o.vollar.ga。 

0x2 后门母体

1. 检查互斥体“XXNBbin1”,如不存在则创建该互斥体:

图片9.png

2. 验证路径“C:\ProgramData\Microsoft\Windows\GameExplorer”是否存在,如不存在则创建:

图片10.png

3. 创建注册表值,并设置如下键值:

hKey = HKEY_CURRENT_USER
Subkey = "Software\Microsoft\Windows\Windows Error Reporting"
ValueName = "DontshowUI"
Value = 0x01
 
hKey = HKEY_LOCAL_MACHINE
Subkey = "software\microsoft\remote\Desktop"
ValueName = ""
Value = "C:\Documents and Settings\Administrator\桌面\"

4. 释放用于注册后门服务的DLL文件,路径为"C:\ProgramData\Microsoft\Windows\GameExplorer\Remote.hlp",并设置文件属性为HIDDEN|SYSTEM:

图片11.png

5. 注册表里添加服务注册项,不同的母体注册的服务名称会有变化:

图片12.png

该样本中服务名称为".Net CLR",研究员排查过程中发现有过“Ias”、“FastUserSwitchingCompatibilty”,服务指向的DLL程序都是母体释放的Remote.hlp:

图片13.png

6. 创建服务并启动:

图片14.png

7. 释放"C:\Windows\System32\\Delete00.bat"文件,清除母体,然后退出母体进程:

图片15.png

0x3 服务DLL

1. 服务DLL文件通常是远程控制软件批量生产的的被控端,会释放在C:\ProgramData\Microsoft\Windows\GameExplorer\目录下并命名为Remote.hlp,伪装成Windows帮助文件:

图片16.png

2. 通过逆向分析可总结该远控木马所具有的功能如下:

获取主机信息

进程获取/结束/暂停/恢复

鼠标锁定/解锁

文件传输

屏幕黑屏/解除黑屏

重启/关机/注销

隐藏桌面/解除隐藏

服务安装/启动/停止/删除

系统操作快捷键

网络管理/代理设置

Win7加速开启/关闭

软件管理

hosts文件修改

添加用户

远程shell

消息发送

文件压缩

添加QQ群

 

3. 同时,该远控木马会检测是否存在以下安全软件,尝试绕过,具体见下表:

Navapsvc.exe

FilMsg.exe

spiderui.exe

Iparmor.exe

AVK.exe

KSafeTray.exe

360sd.exe

KvMonXP.exe

ashDisp.exe

kxetray.exe

avcenter.exe

mcupdui.exe

avguard.exe

msseces.exe

AVK.exe

Navapsvc.exe

360sd.exe

360netman.exe

ashDisp.exe

ns.exe

avcenter.exe

PFW.exe

avguard.exe

QQPCTray.exe

360Tray.exe

RavMon.exe

avp.exe

secenter.exe

BaiduSdSvc.exe

egui.exe

ccSvrHst.exe

360tray.exe


0x4 加固建议

1. 使用高强度的主机密码,并避免多台设备使用相同密码,不要对外网直接映射3389等端口,防止暴力破解;

2. 避免打开来历不明的邮件、链接和网址附件等,尽量不要在非官方渠道下载非正版的应用软件,发现文件类型与图标不相符时应先使用安全软件对文件进行查杀;

3. 定期使用安全软件进行全盘扫描和处置,定期检测系统漏洞并且及时进行补丁修复。

0x0 背景介绍

近日,深信服安全团队排查定位到一款伪装为Windows系统帮助文件的远控木马,攻击者通过远控木马下发挖矿程序到被害主机,占用主机资源进行挖矿。

0x1 威胁关联分析

通过威胁分析发现,该木马连接的域名 fuck88.f3322.net和r.nxxxn.ga是已经被开源威胁情报收录的两个恶意域名,同时用于Kryptik木马的控制端:

图片1.png

查询域名fuck88.f3322.net的whois信息,可以看到注册者使用名为“peng yong”,并且该注册者同时注册了多个具有欺骗性的动态域名:

图片2.png

图片3.png

通过深信服云脑查询恶意域名相关信息,在最近一个月内攻击次数均较为平稳:

图片4.png

服务DLL文件Remote.hlp是一个伪装成Windows帮助文件的后门程序,仅从字符串分析,就能够得到许多功能信息,而此次事件捕获的域名所关联的后门程序中,均存在一条“TheCodeMadeByZPCCZQ”标识字符串:

图片5.png

可以推断,这些后门程序均来源于同一款远控生成器,并且通过对后门dll的字符串分析,有很多中文描述的控制操作,可以确认是一款汉化的远控程序:

图片6.png

在此次捕获的安全事件中,除了持久化驻留的后门程序,在被害主机中存在通过后门投放的挖矿程序,伪装成银行图标,占用主机资源进行挖矿:

图片7.png

图片8.png

命令行中配置的的恶意域名为o.vollar.ga。 

0x2 后门母体

1. 检查互斥体“XXNBbin1”,如不存在则创建该互斥体:

图片9.png

2. 验证路径“C:\ProgramData\Microsoft\Windows\GameExplorer”是否存在,如不存在则创建:

图片10.png

3. 创建注册表值,并设置如下键值:

hKey = HKEY_CURRENT_USER
Subkey = "Software\Microsoft\Windows\Windows Error Reporting"
ValueName = "DontshowUI"
Value = 0x01
 
hKey = HKEY_LOCAL_MACHINE
Subkey = "software\microsoft\remote\Desktop"
ValueName = ""
Value = "C:\Documents and Settings\Administrator\桌面\"

4. 释放用于注册后门服务的DLL文件,路径为"C:\ProgramData\Microsoft\Windows\GameExplorer\Remote.hlp",并设置文件属性为HIDDEN|SYSTEM:

图片11.png

5. 注册表里添加服务注册项,不同的母体注册的服务名称会有变化:

图片12.png

该样本中服务名称为".Net CLR",研究员排查过程中发现有过“Ias”、“FastUserSwitchingCompatibilty”,服务指向的DLL程序都是母体释放的Remote.hlp:

图片13.png

6. 创建服务并启动:

图片14.png

7. 释放"C:\Windows\System32\\Delete00.bat"文件,清除母体,然后退出母体进程:

图片15.png

0x3 服务DLL

1. 服务DLL文件通常是远程控制软件批量生产的的被控端,会释放在C:\ProgramData\Microsoft\Windows\GameExplorer\目录下并命名为Remote.hlp,伪装成Windows帮助文件:

图片16.png

2. 通过逆向分析可总结该远控木马所具有的功能如下:

获取主机信息

进程获取/结束/暂停/恢复

鼠标锁定/解锁

文件传输

屏幕黑屏/解除黑屏

重启/关机/注销

隐藏桌面/解除隐藏

服务安装/启动/停止/删除

系统操作快捷键

网络管理/代理设置

Win7加速开启/关闭

软件管理

hosts文件修改

添加用户

远程shell

消息发送

文件压缩

添加QQ群

 

3. 同时,该远控木马会检测是否存在以下安全软件,尝试绕过,具体见下表:

Navapsvc.exe

FilMsg.exe

spiderui.exe

Iparmor.exe

AVK.exe

KSafeTray.exe

360sd.exe

KvMonXP.exe

ashDisp.exe

kxetray.exe

avcenter.exe

mcupdui.exe

avguard.exe

msseces.exe

AVK.exe

Navapsvc.exe

360sd.exe

360netman.exe

ashDisp.exe

ns.exe

avcenter.exe

PFW.exe

avguard.exe

QQPCTray.exe

360Tray.exe

RavMon.exe

avp.exe

secenter.exe

BaiduSdSvc.exe

egui.exe

ccSvrHst.exe

360tray.exe


0x4 加固建议

1. 使用高强度的主机密码,并避免多台设备使用相同密码,不要对外网直接映射3389等端口,防止暴力破解;

2. 避免打开来历不明的邮件、链接和网址附件等,尽量不要在非官方渠道下载非正版的应用软件,发现文件类型与图标不相符时应先使用安全软件对文件进行查杀;

3. 定期使用安全软件进行全盘扫描和处置,定期检测系统漏洞并且及时进行补丁修复。

0x0 背景介绍

近期,深信服安全团队捕获到一个“求生欲”极强的Linux挖矿病毒家族,为了躲避DDG及安全人员的查杀,其采用了多种方式进行隐藏及持久化攻击,由于其会访问域名Rainbow66.f3322.net,深信服安全团队将其命名为RainbowMiner。

0x1 排查过程

中毒的主机出现了奇怪现象,CPU占用率很高,却找不到可疑的进程。

图片1.png

这种情况第一反应是病毒对系统命令进行了劫持,隐藏自身,下载运行busybox top命令,即可查看到病毒进程,其中kthreadds为挖矿进程,pdflushs为守护进程。

图片2.png

定位完病毒进程后,还需删除对应的文件,挖矿进程对应的文件为/usr/bin/kthreadds,守护进程对应的文件为/etc/init.d/pdflush,同时,主机的/etc/rc*.d/启动目录下还有残留的链接,也许一并清除。

图片3.png

 该病毒没有采用定时任务的方式驻留,而是创建了一个ssh公钥后门,也需要一并清除。

图片4.png

除此之外,还发现主机有个伪装的python恶意进程,经后续分析确认也是个守护进程,需要清除干净。

至此,病毒的清除过程就结束了。

图片5.png

0x2 情报关联

从Github开源项目DDGBotnetTracker发现,DDG最新版本v5023的猎杀名单中存在有RainbowMiner的项,看来DDG也视RainbowMiner为眼中钉。

图片6.png

RainbowMiner相应的域名也在重定向列表里。

图片7.png

Rainbow66.f3322.net(148.70.199.147)是个HFS服务器,上述xmrig/目录存放的就是RainbowMiner的所有组件,这里可以看到点击量超过了7.7w,估摸着感染RainbowMiner的主机大概有7w+。

图片8.png

xmrig/目录如下,其中母体脚本有3个,launch和launch-ubuntu即为pdflushs,而install比较有趣,分析发现是个汉化版的脚本。

图片9.png

脚本还带有中文注释。

图片10.png

 运行后,会提示你安装挖矿还是安装后门,功能与pdflushs相仿。

图片11.png

0x3 病毒分析

kthreadds为开源xmrig挖矿程序,下面主要分析母体脚本pdflushs,从初始的变量定义,可以得知,RainbowMiner的组件主要有3类:ssh等运维工具、processhider等黑客工具、xmrig等挖矿程序,其中运维工具是方便脚本执行命令,黑客工具只要是用来隐藏及持久化运行挖矿进程。

图片12.png

脚本入口点如下,支持3种参数,安装并运行挖矿,检查挖矿运行状态,及检查更新。

图片13.png

 主要看start函数,该函数启动后会从C&C服务器下载各个组件,并校验sha512是否正确,若不正确(云端组件有更新或本地组件被篡改)则重新下载。

图片14.png

写入ssh公钥后门到autorized_keys文件,使C&C服务器后续可以直接登录该主机。

图片15.png

后台运行cron.py脚本(伪装成libgc++.so),与母体脚本功能类似,守护监控挖矿是否正常运行。

图片16.png

cron.py脚本的代码如下,后台运行挖矿进程及母体脚本,挖矿矿池地址为:rainbow20.eatuo.com。

图片17.png

参考链接:https://github.com/0xjiayu/DDGBotnetTracker/blob/master/v2/data/jobs.json

0x0 背景介绍

近期,深信服安全团队捕获到一个“求生欲”极强的Linux挖矿病毒家族,为了躲避DDG及安全人员的查杀,其采用了多种方式进行隐藏及持久化攻击,由于其会访问域名Rainbow66.f3322.net,深信服安全团队将其命名为RainbowMiner。

0x1 排查过程

中毒的主机出现了奇怪现象,CPU占用率很高,却找不到可疑的进程。

图片1.png

这种情况第一反应是病毒对系统命令进行了劫持,隐藏自身,下载运行busybox top命令,即可查看到病毒进程,其中kthreadds为挖矿进程,pdflushs为守护进程。

图片2.png

定位完病毒进程后,还需删除对应的文件,挖矿进程对应的文件为/usr/bin/kthreadds,守护进程对应的文件为/etc/init.d/pdflush,同时,主机的/etc/rc*.d/启动目录下还有残留的链接,也许一并清除。

图片3.png

 该病毒没有采用定时任务的方式驻留,而是创建了一个ssh公钥后门,也需要一并清除。

图片4.png

除此之外,还发现主机有个伪装的python恶意进程,经后续分析确认也是个守护进程,需要清除干净。

至此,病毒的清除过程就结束了。

图片5.png

0x2 情报关联

从Github开源项目DDGBotnetTracker发现,DDG最新版本v5023的猎杀名单中存在有RainbowMiner的项,看来DDG也视RainbowMiner为眼中钉。

图片6.png

RainbowMiner相应的域名也在重定向列表里。

图片7.png

Rainbow66.f3322.net(148.70.199.147)是个HFS服务器,上述xmrig/目录存放的就是RainbowMiner的所有组件,这里可以看到点击量超过了7.7w,估摸着感染RainbowMiner的主机大概有7w+。

图片8.png

xmrig/目录如下,其中母体脚本有3个,launch和launch-ubuntu即为pdflushs,而install比较有趣,分析发现是个汉化版的脚本。

图片9.png

脚本还带有中文注释。

图片10.png

 运行后,会提示你安装挖矿还是安装后门,功能与pdflushs相仿。

图片11.png

0x3 病毒分析

kthreadds为开源xmrig挖矿程序,下面主要分析母体脚本pdflushs,从初始的变量定义,可以得知,RainbowMiner的组件主要有3类:ssh等运维工具、processhider等黑客工具、xmrig等挖矿程序,其中运维工具是方便脚本执行命令,黑客工具只要是用来隐藏及持久化运行挖矿进程。

图片12.png

脚本入口点如下,支持3种参数,安装并运行挖矿,检查挖矿运行状态,及检查更新。

图片13.png

 主要看start函数,该函数启动后会从C&C服务器下载各个组件,并校验sha512是否正确,若不正确(云端组件有更新或本地组件被篡改)则重新下载。

图片14.png

写入ssh公钥后门到autorized_keys文件,使C&C服务器后续可以直接登录该主机。

图片15.png

后台运行cron.py脚本(伪装成libgc++.so),与母体脚本功能类似,守护监控挖矿是否正常运行。

图片16.png

cron.py脚本的代码如下,后台运行挖矿进程及母体脚本,挖矿矿池地址为:rainbow20.eatuo.com。

图片17.png

参考链接:https://github.com/0xjiayu/DDGBotnetTracker/blob/master/v2/data/jobs.json

自2020年开始,深信服安全团队监测到Linux恶意软件挖矿事件大量增多,且有持续上升的趋势。

与Windows下五花八门的勒索病毒家族不同,Linux下感染量较大的恶意软件就几个家族。但这几个家族占据了全球大部分的感染主机,几乎呈现出垄断的趋势。

本文将介绍Linux环境下7个较常见的流行恶意软件家族,以及其对应的清除步骤。

常见的七大流行病毒家族

BillGates

BillGates在2014年被首次发现,由于其样本中多变量及函数包含字符串”gates”而得名,该病毒主要被黑客用于DDos,其特点是会替换系统正常程序(ss、netstat、ps、lsof)进行伪装。

图片1.png

主机中毒现象:

[1] 在/tmp/目录下存在gates.lod、moni.lod文件。

[2] 出现病毒文件夹/usr/bin/bsd-port/。

[3] 主机访问域名www.id666.pw。

[4] 系统文件(ss、netstat、ps、lsof)被篡改过,修改时间异常。

图片2.png

病毒清除步骤:

[1] 清除/usr/bin/bsd-port/getty、.ssh等病毒进程。

[2] 清除/usr/bin/bsd-port/getty、/usr/bin/.sshd等病毒文件。

[3] 从/usr/bin/dpkgd/目录恢复原系统文件。

DDG

DDG是目前更新最频繁的恶意软件家族,同时感染量也十分庞大,黑客使用P2P协议来控制这个僵尸网络,来实现隐藏C&C的目的,该病毒的主要目的为蠕虫式挖矿,特点是版本迭代过程中,病毒文件名保持以ddg.*和i.sh的规范命名。

主机中毒现象:

[1] /tmp/目录下出现有ddgs.+数字的ELF文件。

[2] 在/tmp/目录下存在qW3xT.*和SzDXM等随机名文件。

[3] 存在下载i.sh的定时任务。

图片3.jpg

图片4.png

病毒清除步骤:

[1] 清除随机名挖矿进程及对应文件。

[2] 删除母体文件ddg.*。

[3] 删除带有i.sh字符串的定时任务。

[4] 删除ssh缓存公钥authorized_keys。

SystemdMiner

SystemdMiner使用3种方式(YARN漏洞、Linux自动化运维工具、.ssh缓存密钥)进行传播,该病毒前期的文件命名带有Systemd字符串,而后期版本已更换为随机名,其特点是,善用暗网代理来进行C&C通信。

主机中毒现象:

[1] 定时访问带有tor2web、onion字符串的域名。

[2] 在/tmp目录下出现systemd*的文件(后期版本为随机名)。

[3] 存在运行systemd-login的定时任务(后期版本为随机名)。

图片5.png

图片6.png

病毒清除步骤:

[1] 清除/var/spool/cron和/etc/cron.d目录下的可疑定时任务。

[2] 清除随机名的挖矿进程。

[3] 清除残留的systemd-login和*.sh病毒脚本。

图片7.png图片8.png

StartMiner

StartMiner于今年2月被发现,由于其进程及定时任务中包含2start.jpg字符串而得名,该病毒通过ssh进行传播,其特点是会创建多个包含2start.jpg字符串的恶意定时任务。

主机中毒现象:

[1] 定时任务里有包含2start.jpg的字符串。

[2] /tmp/目录下存在名为x86_*的病毒文件。

[3] /etc/cron.d出现多个伪装的定时任务文件:apache、nginx、root。 图片9.png

图片10.png

病毒清除步骤:

[1] 结束挖矿进程x86_*。

[2] 删除所有带有2start.jpg字符串的定时任务。

[3] 清除所有带有2start.jpg字符串的wget进程。

图片11.png

WatchdogsMiner

2019年一个同样以Redis未授权访问漏洞及SSH爆破传播的WatchdogsMiner家族被发现,由于其会在/tmp/目录下释放一个叫watchdogs的母体文件而得名。WatchdogsMiner的初始版本会将恶意代码托管在pastebin.com上以绕过检测,不过后续版本已弃用,改为自己的C&C服务器*.systemten.org。该病毒的特点是样本由go语言编译,并试用了伪装的hippies/LSD包(github_com_hippies_LSD_*)。 

图片12.png

主机中毒现象:

[1]存在执行pastebin.com上恶意代码的定时任务。

[2]/tmp/目录下存在一个名为watchdogs的病毒文件。

[3]访问*.systemten.org域名。

图片13.png

图片14.png

病毒清除步骤:

[1] 删除恶意动态链接库 /usr/local/lib/libioset.so

[2] 清理 crontab 异常项

[3] 使用kill命令终止挖矿进程

[4] 排查清理可能残留的恶意文件:

    (a) chattr -i /usr/sbin/watchdogs /etc/init.d/watchdogs /var/spool/cron/root /etc/cron.d/root;

    (b) chkconfig watchdogs off;

    (c) rm -f /usr/sbin/watchdogs /etc/init.d/watchdogs。

[5] 由于文件只读且相关命令被hook,需要安装busybox并使用busybox rm命令删除。

XorDDos

XorDDoS僵尸网络家族从2014年一直存活至今,因其解密方法大量使用Xor而被命名为XorDDoS,其主要用途是DDos公网主机,特点是样本运用了“多态”及自删除的方式,导致主机不断出现随机名进程,同时采用了Rootkit技术隐藏通信IP及端口。

 图片15.png

主机中毒现象:

[1] 存在病毒文件/lib/libudev.so。

[2] 在/usr/bin,/bin,/lib,/tmp目录下有随机名病毒文件。

[3]存在执行gcc.sh的定时任务。

图片16.png

图片17.png

病毒清除步骤:

[1] 清除/lib/udev/目录下的udev程序。

[2] 清除/boot下的随机恶意文件(10个随机字符串数字)。

[3] 清除/etc/cron.hourly/cron.sh和/etc/crontab定时器文件相关内容。

[4] 如果有RootKit驱动模块,需要卸载相应的驱动模块,此次恶意程序主要它来隐藏相关的网络IP端口。

[5] 清除/lib/udev目录下的debug程序。

RainbowMiner

RainbowMiner自2019年就频繁出现,由于其访问的C&C域名带有Rainbow字符串而得名,其最大的特点是会隐藏挖矿进程kthreadds,排查人员会发现主机CPU占用率高,但找不到可疑进程。

主机中毒现象:

[1] 隐藏挖矿进程/usr/bin/kthreadds,主机CPU占用率高但看不到进程。

[2] 访问Rainbow66.f3322.net恶意域名。

[3] 创建ssh免密登录公钥,实现持久化攻击。

[4] 存在cron.py进程持久化守护。

图片18.png

图片19.png图片20.png

病毒清除步骤:

[1] 下载busybox:wget http://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-x86_64。

[2] 使用busybox top定位到挖矿进程kthreadds及母体进程pdflushs,并清除。

[6] 删除/usr/bin/kthreadds及/etc/init.d/pdflushs文件,及/etc/rc*.d/下的启动项。

[7] 删除/lib64/下的病毒伪装文件。

[8] 清除python cron.py进程。

加固建议

1、Linux恶意软件以挖矿为主,一旦主机被挖矿了,CPU占用率高,将会影响业务,所以,需要实时监控主机CPU状态。

2、定时任务是恶意软件惯用的持久化攻击技巧,应定时检查系统是否出现可疑定时任务。

3、企业还大量存在ssh弱密码的现象,应及时更改为复杂密码,且检查在/root/.ssh/目录下是否存在可疑的authorized_key缓存公钥。

4、定时检查Web程序是否存在漏洞,特别关注Redis未授权访问等RCE漏洞。