Linux挖矿程序kworkerds分析
0×00 背景概述 近日,同伴的一台Linux服务器中了kworkerds挖矿程序,随即对挖矿程序进行了处理与分析。
0×01服务器现状 进入服务器之后通过top命令,没有发现有占用CPU资源过高的进程,随后使用busybox top命令查看发现一个kworkerds的程序占用CPU资源达到了99%,计划任务中被写入恶意下载命令;
系统top命令界面;
文章图片
使用busybox top命令界面;
文章图片
写入的计划任务;
文章图片
0×02脚本分析:
1)mr.sh脚本:
清理文件或其他挖矿程序;
文章图片
值得一提的是,脚本首部已经把防火墙关闭了,为什么又要在防火墙中加入规则,禁止了一个IP地址,并通过string匹配域名来过滤了pastebin,这个很像是在防近期爆发的 khugepageds、watchdogs…
往下是一顿清理—–
文章图片
再经过一番清理之后,开始把下载脚本的命令写入计划任务中;
文章图片
写入的文件列表如下;
文章图片
随后又开始了一番清理,把除自己之外的进程且占用CPU资源大于30%的给杀掉,并且查看netstat中是否与自己的服务器建立连接成功;
文章图片
在脚本的最后开始下载一个名为2mr.sh的云端脚本,并且检查计划任务中是否有自己写入的下载命令,如果没有继续写入;
文章图片
2) 2mr.sh脚本:
2mr脚本是关于挖矿程序的下载与调整,在脚本的首部判断下载的/var/tmp/sustse文件是否存在,如果存在则通过MD5值对比/var/tmp/sustse是否相符,如果不相符则删除并且杀掉自己的相关进程,否则创建/var/tmp;
文章图片
随后通过downloadIfNeed()、download()、download2()三个函数进行判断/下载挖矿相关文件,这里下载了一个名为1.so的文件,并且把1.so替换掉/usr/local/lib/libkk.so,把路径写入/etc/ld.so.preload,最后把/var/tmp/sustse复制一份并命名为kworkerds;
文章图片
文章图片
文章图片
最后通过judge()、judge2()函数根据网络连接情况进行判断被攻陷的主机是否与矿池建立连接成功,如果没有则清理占用资源大于30%的其他程序,随后下载相关挖矿程序进行挖矿操作;
文章图片
0×03处理建议:
1)清除相关的恶意计划任务;相关信息:
2)删除/var/tmp目录下的相关恶意文件;
3)删除被替换的动态链接库;
矿池信息:

文章图片
URL:
http://107.174.47.156/mr.shMD5:
http://107.174.47.156/wc.conf
http://107.174.47.156/xmrig
http://107.174.47.156/11
be9469ea238d53993f70ed09b8347f3ekworkerdsPS:1.so~~~
b4f6d69c8777fea8b169898bea9fb040sustse
2fdb64bf08f09ce0cdc650b443590d7b1.solibkk.so
83d502512326554037516626dd8ef972/root/kworkerdss/xmrig

文章图片
*本文作者:runmoke
【Linux挖矿程序kworkerds分析】转载于:https://www.cnblogs.com/DataArt/p/10881815.html
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 事件处理程序
- Linux下面如何查看tomcat已经使用多少线程
- Beego打包部署到Linux
- 编写字典程序
- Linux|109 个实用 shell 脚本
- Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!
- Filecoin挖矿投资报告
- linux定时任务contab
- 芯灵思SinlinxA33开发板Linux内核定时器编程