0×00 背景概述

近日,同伴的一台Linux服务器中了kworkerds挖矿程序,随即对挖矿程序进行了处理与分析。

0×01服务器现状

进入服务器之后通过top命令,没有发现有占用CPU资源过高的进程,随后使用busybox top命令查看发现一个kworkerds的程序占用CPU资源达到了99%,计划任务中被写入恶意下载命令;

系统top命令界面;

Linux挖矿程序kworkerds分析-LMLPHP

使用busybox top命令界面;

Linux挖矿程序kworkerds分析-LMLPHP

写入的计划任务;

Linux挖矿程序kworkerds分析-LMLPHP

0×02脚本分析:

1)  mr.sh脚本:

清理文件或其他挖矿程序;

Linux挖矿程序kworkerds分析-LMLPHP

值得一提的是,脚本首部已经把防火墙关闭了,为什么又要在防火墙中加入规则,禁止了一个IP地址,并通过string匹配域名来过滤了pastebin,这个很像是在防近期爆发的 khugepageds、watchdogs…

往下是一顿清理—–

Linux挖矿程序kworkerds分析-LMLPHP

再经过一番清理之后,开始把下载脚本的命令写入计划任务中;

Linux挖矿程序kworkerds分析-LMLPHP

写入的文件列表如下;

Linux挖矿程序kworkerds分析-LMLPHP

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

Linux挖矿程序kworkerds分析-LMLPHP

在脚本的最后开始下载一个名为2mr.sh的云端脚本,并且检查计划任务中是否有自己写入的下载命令,如果没有继续写入;

Linux挖矿程序kworkerds分析-LMLPHP

2) 2mr.sh脚本:

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

Linux挖矿程序kworkerds分析-LMLPHP

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

Linux挖矿程序kworkerds分析-LMLPHP

Linux挖矿程序kworkerds分析-LMLPHPLinux挖矿程序kworkerds分析-LMLPHP

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

Linux挖矿程序kworkerds分析-LMLPHP

0×03处理建议:

相关信息:

矿池信息:

Linux挖矿程序kworkerds分析-LMLPHP

URL:

MD5:

PS:1.so~~~

Linux挖矿程序kworkerds分析-LMLPHP

*本文作者:runmoke

05-11 22:18