Linux挖矿程序kworkerds分析

0×00 背景概述 近日,同伴的一台Linux服务器中了kworkerds挖矿程序,随即对挖矿程序进行了处理与分析。
0×01服务器现状 进入服务器之后通过top命令,没有发现有占用CPU资源过高的进程,随后使用busybox top命令查看发现一个kworkerds的程序占用CPU资源达到了99%,计划任务中被写入恶意下载命令;
系统top命令界面;
Linux挖矿程序kworkerds分析
文章图片

使用busybox top命令界面;
Linux挖矿程序kworkerds分析
文章图片

写入的计划任务;
Linux挖矿程序kworkerds分析
文章图片

0×02脚本分析: 1)mr.sh脚本:
清理文件或其他挖矿程序;
Linux挖矿程序kworkerds分析
文章图片

值得一提的是,脚本首部已经把防火墙关闭了,为什么又要在防火墙中加入规则,禁止了一个IP地址,并通过string匹配域名来过滤了pastebin,这个很像是在防近期爆发的 khugepageds、watchdogs…
往下是一顿清理—–
Linux挖矿程序kworkerds分析
文章图片

再经过一番清理之后,开始把下载脚本的命令写入计划任务中;
Linux挖矿程序kworkerds分析
文章图片

写入的文件列表如下;
Linux挖矿程序kworkerds分析
文章图片

随后又开始了一番清理,把除自己之外的进程且占用CPU资源大于30%的给杀掉,并且查看netstat中是否与自己的服务器建立连接成功;
Linux挖矿程序kworkerds分析
文章图片

在脚本的最后开始下载一个名为2mr.sh的云端脚本,并且检查计划任务中是否有自己写入的下载命令,如果没有继续写入;
Linux挖矿程序kworkerds分析
文章图片

2) 2mr.sh脚本:
2mr脚本是关于挖矿程序的下载与调整,在脚本的首部判断下载的/var/tmp/sustse文件是否存在,如果存在则通过MD5值对比/var/tmp/sustse是否相符,如果不相符则删除并且杀掉自己的相关进程,否则创建/var/tmp;
Linux挖矿程序kworkerds分析
文章图片

随后通过downloadIfNeed()、download()、download2()三个函数进行判断/下载挖矿相关文件,这里下载了一个名为1.so的文件,并且把1.so替换掉/usr/local/lib/libkk.so,把路径写入/etc/ld.so.preload,最后把/var/tmp/sustse复制一份并命名为kworkerds;
Linux挖矿程序kworkerds分析
文章图片

Linux挖矿程序kworkerds分析
文章图片
Linux挖矿程序kworkerds分析
文章图片

最后通过judge()、judge2()函数根据网络连接情况进行判断被攻陷的主机是否与矿池建立连接成功,如果没有则清理占用资源大于30%的其他程序,随后下载相关挖矿程序进行挖矿操作;
Linux挖矿程序kworkerds分析
文章图片

0×03处理建议:

1)清除相关的恶意计划任务;
2)删除/var/tmp目录下的相关恶意文件;
3)删除被替换的动态链接库;
相关信息:
矿池信息:
Linux挖矿程序kworkerds分析
文章图片

URL:
http://107.174.47.156/mr.sh
http://107.174.47.156/wc.conf
http://107.174.47.156/xmrig
http://107.174.47.156/11
MD5:
be9469ea238d53993f70ed09b8347f3ekworkerds
b4f6d69c8777fea8b169898bea9fb040sustse
2fdb64bf08f09ce0cdc650b443590d7b1.solibkk.so
83d502512326554037516626dd8ef972/root/kworkerdss/xmrig
PS:1.so~~~
Linux挖矿程序kworkerds分析
文章图片

*本文作者:runmoke
【Linux挖矿程序kworkerds分析】转载于:https://www.cnblogs.com/DataArt/p/10881815.html

    推荐阅读