背景:
事情是这样的,前两天搭建微服务项目的时候需要用到服务器,第一天刚部署上项目,紧接着第二天就被黑客扫了,既没办法访问,也没办法远程连接。
问题描述
访问eureka注册中心失败,一直转圈圈,Mobaxterm远程连接腾讯云主机失败,我以为是我的云主机寄了,然后我尝试用cmd命令ping了一下我的云主机IP发现能够获取到数据包,那么就奇怪了,既然能ping通为什么会连接不上呢,于是我尝试登录我的腾讯云控制台。邮件前四条消息全都是恶意文件通知,然后我意识到大事不妙,我的机器被别人扫了...
不出所料,打开文件,看着入侵时间是凌晨的3点左右,感觉和以前玩的定时任务特别像,一般都会选择在半夜12点到凌晨3点之间,不管怎么样是被入侵无疑了。
恶意文件通知:
恶意文件名和文件路径:
本来想通过点击右侧的处理按钮来处理,但是发现不成功。
解决方案:
对于不熟悉网络安全的我来说,解决这种问题的经验显然不足,我本来指望能够通过腾讯云成功解决,但是让我很失望,它提示我升级专业版/旗舰版的文件查杀或者漏洞防护软件,好吧就是想要哥们儿充钱,主打一个反骨,真可恶呀!说实话我的个人服务器从买了到现在没怎么用过,之前只部署了个人的博客网站,最近做微服务的项目才将它拿过来重新启用,花钱购买安全防护对囊中羞涩的我来说实在不合算(如果服务器上放了重要信息的朋友们可以选择了解购买),那我求人不如求己,有什么事情不是能解决的呢,无非是多花点时间罢了。
一、删除恶意文件
由于我上面提到本办法使用终端软件连接到我的服务器,所以虽然上面的恶意文件通知中虽然指明了病毒的位置但是我也没办法删除,好在重启了一下服务器之后就可以连上了(重启服务器再连接)连接之后直接定位文件的位置删除掉病毒文件。当然,这些并不一定能删干净,先解决燃眉之急,其它的我们后续再慢慢找。
二、更换密码
排除因为弱口令被入侵,由于是我私人的服务器,也只有我一个人在使用所以密码并没有设置特别复杂,所以遇到入侵第一反应就是更改服务器的密码。所以我也换了一个臭长臭长的登录密码...(黑客不一定防的住,但是一定能单防哥们儿自己)
三、更换SSH默认的22端口
参考修改ssh默认端口文章配置
1 . 登录服务器,打开sshd_config
文件
vim /etc/ssh/sshd_config
2 . 找到 #Port 22
,默认是注释掉的,先把前面的#
号去掉,再插入一行设置成你想要的端口号,注意不要跟现有端口号重复
SSH默认监听端口是22,如果你不强制说明别的端口,”Port 22”注不注释都是开放22访问端口。上面我保留了22端口,防止之后因为各种权限和配置问题,导致连22端口都不能访问。
3 . 重启SSH服务,重启服务器
# 重启ssh服务systemctl restart sshd # 重启服务器shutdown -r now
四、查阅腾讯云官方给出的建议
4.1 在不影响业务的前提下,及时隔离主机/容器,避免部分带有蠕虫功能的挖矿木马进一步在内网进行横向移动;
4.2 使用`top -c`命令查看系统性能,找出消耗CPU较高的进程PID(部分挖矿木马可能会篡改top命令实现进程隐藏,可以使用`which top | xargs stat`命令判断top文件是否被黑客篡改);
4.3 根据获取的进程PID,使用“ps -ef -p PID”命令找出进程的详细信息;
4.4 根据进程详细信息定位到文件位置,并对该文件进行分析,确认是否属于挖矿木马;
4.5 若确认为挖矿木马,则进行如下清理操作:
(1) 若确认为挖矿木马,则进行如下清理操作:
(2) 删除挖矿相关文件:rm -rf 异常文件,删除文件时可以使用find / -name 异常文件查找出系统中的所有恶意文件
(3) 查看并清理异常定时任务:crontab -e .......
(4) 查看密钥认证文件:删除木马创建的密钥认证文件,如果当前系统之前并未配置过密钥认证,可以直接清空认证存放目录:rm -rf /root/.ssh/*。如果有配置过密钥认证,只需要删除黑客创建的认证文件即可。
在执行前面的命令检查的时候并没有发现什么异常,可能是由于定时任务结束的原因,也可能是由于我重启服务器的原因,一直到检查密钥的时候,我很确信我没有创建过密钥,但是我的/root/.ssh目录下却有三个密钥文件,可疑的是怎么删都删不掉,那么我只能给它门下达最后通牒,接下来就是一系列的删除密钥的问题,相信你看了下面这篇文章清除linux挖矿木马[crypto]的过程就会觉得我对它保持怀疑是多么明智了。
上面这篇文章基本没什么废话,全是解决问题的思路,值得一提的是在为chattr文件添加权限的时候的命令写错了,应该是chmod +x chattr,我的chattr文件是直接被删除了,也有可能是被重命名了,总之我没有找到这个文件,然后从我朋友那边拷贝了一个chattr文件之后,上传过来之后chattr文件也是白色的,不可执行,使用chmod命令添加可执行权限之后就可以正常使用。
密钥文件(权限被禁,无法删除,修改777权限失败,同博主一样)
chmod +x chattr文件之后回来去除密钥文件的ia属性
五、重装系统
为了解决上面的问题,我大概花了三四个小时,包括自己摸索,查阅资料等,确实费时费力,对于我这样服务器上没有配置多少有价值东西的用户来说如果从一开始就选择重装系统或者回退镜像的话可能几分钟十几分钟就解决了,甚至花不到这么大气力。另外虽然经过上面一系列修改,我仍不敢保证百分百解决了遗留的问题,我的/usr/bin下面的其它文件也有标红和白色的问题,我以前没怎么注意过这个现象,按理说可执行命令都应该是绿色的不应该是白色的,所以会不会有后续问题还未可知。如果服务器上没有部署太多东西,还是建议对需要的文件进行备份然后直接重装系统或者回退镜像。