vanturman 2019-10-22
国庆放假期间公司一台阿里云服务器发现无法正常登陆,报错信息提示22端口未开放。且服务器提供的jenkins服务是正常可以使用的,部分功能缺失,于是登陆阿里云控制台使用远程终端管理登陆服务器,发现输入对的用户名及登陆口令无法登录进系统,而且一直提示让重复登录,无法正常登陆进系统内部,很是困惑,第一次遇到这种奇葩的问题,有种束手无策的感觉。
问题解决经过:
开始联系了阿里云的系统工程师申请技术支持,因目前系统处于无法登录状态,所以将服务器的登录口令及远程密码授权给了阿里云的工程师,下面是
与阿里工程师的问题结果过程。
阿里云工程师尝试挂载光盘尝试修复系统,发现缺失好多系统命令,有大量的可执行文件被删除,无法通过修复的方式来恢复系统,最后建议给磁盘做快照,重置系统
目前也只有这种办法了,重置操作系统终于可以登录到系统了,然后就开始将之前快照硬盘上的jenkins服务恢复,服务恢复后也可以登录到jenkins平台,且可以正常使用,
以为万事大吉了,这下解决问题了,当时还是有个疑问,服务器之前都是很正常的,为什么突然就瘫了呢,百思不得其解。就目前情况一切是比较正常的,先这么着吧。
第二天上班后因为项目需要迭代升级,又要用得到这个服务,再发布更新系统时,一切都是正常的,可是通过xshell远程去登录服务器又出现了之前同样的问题,提示端口
号22端口未启用,登录阿里云远程终端管理又和之前的问题一模一样,服务可以用,系统登录不了,重启后依旧无法登录,而且无限让重复登录也没有任何报错。于是又联系了
阿里云的工程希望能帮助我们解决问题,
起初他们怀疑重置系统后,是我做了些个人操作导致,我的操作很简单啊,只是将原来备份jenkins服务文件迁移回去,并配置环境变量,再之后java -jar jenkins.war启动服务
很简单的几步,不可能去删一些文件。后来阿里云给的建议还是重置磁盘。问题还是没有解决,并且之后又重置过好多次,依旧还是之前的问题。
注:因为这台服务上面只有jenkins应用只要将jenkins服务的文件备份到其他主机就可以避免重复购买阿里云的快照,虽然花不了多少钱,但是流程很麻烦,同样可以实现恢复。?
问题解决:
最后发现,每当我将jenkins服务启动起来阿里云的服务器CPU就会瞬间跑满,而且维持一段时间以后CPU又正常了,感觉应该是在执行什么程序。后来发现确实是有一个异常
进程在执行。
利用系统命令查看都正在有两个bash进程在执行什么任务,经确认第二个为阿里云系统自带的一个系统程序用于查看服务器的一些基本状态及使用情况,
上面那个就不太清楚了由此可见是一段无规律的乱码。且用base64的加密算法进行加密最后利用bash执行
利用base64解码的方法,解码后发现一个问题,其中果然有猫腻,服务器在一个网址下载脚本并执行,执行的内容为图2
终于知道为什么好多系统命令为什么会消失了,就是因为执行这个脚本之后才发生的,并且在这时还有多个异常程序也在执行如下图:
看上去也是base64加密后的可执行程序,解码以后果然是一个脚本。这个脚本应该是个挖矿的脚本。对于之前发现系统无法登录的这个
问题应该不是这个脚本导致,是由第一个脚本导致的。
在网上看了好多资料,终于知道问题的原因了,导致发生服务有恶意可执行文件的原因是由jenkins服务的漏洞导致,且jenkins第三方插件中有携带有恶意的可执行文件
,也就是说只要你启动jenkins服务就会执行相应的一些脚本,再之后用不了多久服务器就瘫了。
最后的解决方法就是将jenkins升级为最新版本,并且安装更新jenkins相关补丁及插件,再将先前备份的jenkins配置文件及相关文件替换新的jenkins目录下的一些文件即可。
本人VX:①③③①①②④⑥0③0 有疑问可以随时和我联系,特别愿意与您分享,相互学习。