导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:290
阅读量:551280
访问量:51486
至今:
×
云标签 标签球>>
云标签 - Su的技术博客
博文->>首页 博主的更多博文>>
惊现!服务器被植入挖矿病毒
Tags : 服务器,挖矿,病毒,安全发表时间: 2018-07-21 20:59:07
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
比如: 转自:Su的技术博客  原文地址:

    去年服务器遇到被比特币勒索的病毒,可以看下这篇: 

     ElasticSearch安全问题不容忽视,被黑客勒索0.1个比特币

    现在服务器又遇到被挖矿程序植入的病毒,下面就来简单说下我遇到的安全问题。

    现在的时代,区块链技术很火,也有很大的泡沫。一直有挖矿的机器时刻在跑着,所以也会有人弄些程序病毒来植入别人的机器,帮他们挖“宝藏”。

    今天,看着自己的网站出现504,应该就是挂了,然后就服务器上看下日志后重启程序。但是,重启过程异常缓慢,一直会卡在某个地方,平时一般3分钟左右就能把服务启动起来正常访问,但是这次却慢的很,打开日志看,一直卡在某个地方。觉得也是奇怪,又把进程kill掉,重启。但是还是跟之前一样慢的跟蜗牛一样。

    这时,使用top命令看下有哪些进程存在,CPU占用、内存剩余大小等情况,还有系统负载数据,发现负载都达到7以上,说明负载很大。


    此刻,从进程列表里面看到一个进程一直占用着很大的CPU,基本一直保持在45%以上,说明这个进程一直在消耗CPU,然后在top命令的操作下再敲击c参数,这时看到进程的启动完整路径:

root      4946 21988 41 16:26 ?        00:07:00 ./trace -r 2 -R 2 --keepalive --no-color --donate-level 1 --max-cpu-usage 80 --cpu-priority 3 --print-time 25 --threads 4 --url xmr-us-east1.nanopool.org:14444 --user 46sfbbM3XSjBo54d5a8PYUU5yQ31x6Rpv6tBhe22Cd7VYeJUyFUhzBF5rTf1oTB1d8MqgHxX5RbbEEKZd8fBAAmcFfv9Y5c --pass x --keepalive

    看着这个路径,其实也是一脸懵逼,以前都没见过这个进程,所以很疑惑,第一感觉就怀疑是病毒,所以在网上寻找相似的问题,但是却很少有直接相关的资料,反而关于Redis被植入挖矿程序的资料和例子不少,(如果你发现你可能中的是Redis的漏洞而被植入挖矿程序的,可以看下面这两篇博文)比如:https://www.cnblogs.com/uglyliu/p/6442427.html  和  https://blog.csdn.net/u013082989/article/details/51971121 

    但是我的问题并不太像他们描述的那样,所以只能作为简单的参考。

    我也像上面那些博客说的那样尝试终止进程。

    1)首先,使用iptables命令来关闭进程对网络的访问:

    iptables -A INPUT -s xmr-us-east1.nanopool.org -j DROP 和 iptables -A OUTPUT -d xmr-us-east1.nanopool.org -j DROP

    执行完命令之后,查看进程占用的CPU大小,确实有作用,相应的降到0%左右,说明这个是正确的操作,但是问题还是没有真正找到根源。

   

     2)使用find查找相关的进程名,这里我的进程名是trace(这家伙还是会伪装,以为是我们的常用的路由命令traceroute)

    find / -name trace* 

    命令执行之后,出现好几个与trace相关的文件名,比如:Redis、Python、Jenkins、logstash、Hadoop等等。于是逐一排查,有的基本上就可以排除了,然后尝试验证,最后就发现在Jenkins上有一个trace的文件。


    3)找到这个文件,查看权限,确实是有执行权限x,于是使用命令 chmod -x trace,来限制其权限。


    4)再次将进程trace pid进行杀掉,kill -9 tracePid。执行之后,再次使用top命令或者ps命令查看。进程trace又正常启动着,而且CPU又飙到45%以上。这是就很疑惑了,可能是有定时任务或者什么机制使程序自动启动。


    5)这时就觉得应该是什么定时任务运行着,因为Linux默认有cron定时任务,我查看了下就有自己的一个任务,没有其它的任务在cron上,所以可以排除这个定时任务造成的了。


    6)这时,我再次查看跟trace相关的文件,这时,发现这个文件是在Jenkins目录之下,所以就疑惑是不是前段时间在服务器上搭建了持续集成Jenkins。


    7)找到罪魁祸首!

    


    这个构建任务是什么鬼,不是我建的!!!伪造Jenkins更新程序??


    8)我们进去看下这个构建的内容吧。

    

    坑爹啊,时时刻刻都在启动。这就说明我把进程kill掉之后,他还是能够重新执行启动!


    9)惊现病毒脚本!!!

    

       有编程技能的基本都能猜的出这个脚本做了什么不见得人的事了,终于真相大明了。

    

       10)总结

            此次服务器中毒并不是redis漏洞被别人植入挖矿程序,而是构建软件Jenkins被别人植入了病毒。

            基本上花了一个多小时才解决了这个“坑”。由于是自己个人在服务器上做测试,并没有提防安全问题。如果是公司的线上问题那么问题就很大了!所以,公司对于安全方面都是要特别重视和关注!

            类似于Jenkins这种构建工具,一般都是内部使用,所以外部基本上不能访问,也可以隔绝外部黑客的入侵等。直接暴露外部是非常不安全的,特别是没有什么安全验证,容易被别人入侵做一些非法的事情!

            所以,希望大家对于安全问题不容忽视,在编程开发或者架构方面,安全问题都要放在首位,不容出现一丝遗漏!


附上 Jenkins定时构建病毒程序的日志:

[2018-07-21 16:43:18] new job from xmr-us-east1.nanopool.org:14444 diff 120001
[2018-07-21 16:43:42] speed 2.5s/60s/15m n/a 5.1 5.0 H/s max: n/a H/s
[2018-07-21 16:44:07] speed 2.5s/60s/15m n/a 5.2 5.0 H/s max: n/a H/s
[2018-07-21 16:44:17] new job from xmr-us-east1.nanopool.org:14444 diff 120001
[2018-07-21 16:44:32] speed 2.5s/60s/15m n/a 5.1 5.0 H/s max: n/a H/s
[2018-07-21 16:44:57] speed 2.5s/60s/15m n/a 5.1 5.0 H/s max: n/a H/s
[2018-07-21 16:45:22] speed 2.5s/60s/15m n/a 5.1 5.0 H/s max: n/a H/s
[2018-07-21 16:45:38] no active pools, stop mining
[2018-07-21 16:45:47] speed 2.5s/60s/15m n/a 5.1 5.0 H/s max: n/a H/s
[2018-07-21 16:46:12] speed 2.5s/60s/15m n/a 4.9 5.1 H/s max: n/a H/s
[2018-07-21 16:46:37] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:46:43] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:47:02] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:47:27] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:47:49] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:47:52] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:48:17] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:48:42] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:48:54] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:49:07] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:49:32] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:49:57] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:50:00] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:50:22] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:50:47] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:51:06] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:51:12] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:51:37] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:52:02] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:52:11] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:52:27] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:52:52] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:53:17] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:53:17] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:53:42] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:54:07] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:54:23] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:54:32] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:54:57] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:55:22] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:55:29] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:55:47] speed 2.5s/60s/15m n/a n/a 5.0 H/s max: n/a H/s
[2018-07-21 16:56:12] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
[2018-07-21 16:56:35] [xmr-us-east1.nanopool.org:14444] connect error: "connection timed out"
[2018-07-21 16:56:37] speed 2.5s/60s/15m n/a n/a 5.1 H/s max: n/a H/s
/tmp/jenkins6277411555610749714.sh: 行 24:  4946 已杀死               ./trace -r 2 -R 2 --keepalive --no-color --donate-level 1 --max-cpu-usage 80 --cpu-priority 3 --print-time 25 --threads ${threadCount:-4} --url $1 --user 46sfbbM3XSjBo54d5a8PYUU5yQ31x6Rpv6tBhe22Cd7VYeJUyFUhzBF5rTf1oTB1d8MqgHxX5RbbEEKZd8fBAAmcFfv9Y5c --pass x --keepalive
/tmp/jenkins6277411555610749714.sh:行26: ./trace: 权限不够
/tmp/jenkins6277411555610749714.sh:行26: ./trace: 权限不够
/tmp/jenkins6277411555610749714.sh:行26: ./trace: 权限不够
Build step '执行 shell' marked build as failure
Finished: FAILURE


打赏
打赏
关注公众号
公众号
类别:线上问题| 阅读(472)| 赞 (1)
评论
暂无评论!
发表评论
昵  称:

验证码:

内  容:

    同时赞一个 赞