Loading

记一次NACOS开放公网访问导致服务器被挖矿的解决流程 [kdcflush] acosd

我要在这里放一段代码块

// 这是一段防爬代码块,我不介意文章被爬取,但请注明出处
console.log("作者主页:https://www.hanzhe.site");
console.log("原文地址:https://www.cnblogs.com/hanzhe/p/18325131");

前言

事情的起因是这样的,昨天领导找到我说服务器内存满了,影响其他程序正常运行了,让我把测试服务器上之前启动的六个JAVA程序停一下,接着我就登上服务器执行docker compose down把服务关掉,临走之前习惯性使用htop查看一下资源面板,意外发现服务器中有个叫[kdcflush] acosd的进程把服务器CPU性能吃满了

image

我见识少第一次看到这个服务,觉得应该是公司运行的,好奇心驱使我网上查了下资料,想知道这个中间件(或者其他的程序)的作用是什么,如此消耗性能没准跟AI模型有关,好玩的话以后自己也折腾玩玩,但是查了有一会没找到对应的资料,感觉不太妙,接着跟领导确认了下这个进程是不是我们自己运行的,最终得到的结论是服务器很有可能被挖矿了

意识到问题后领导把它交给了我,我自己也有服务器也处理中过几次挖矿脚本,不过自己的服务器还不是随便折腾,当时我的处理方案就是把数据拷贝出来,给云服务重新装个系统,再把资料放回去服务跑起来就解决了,但是公司的服务器显然不能这么做,不过幸好思路还是有的,这里记录一下解决的流程

正文

挖矿脚本这个东西我遇到好多次了,这次倒是我第一次真正面对他,凭我对LINUX服务器的熟悉程度并不能直接解决它,于是我用kill -9 29273先简单粗暴的把进程杀掉,然后去预习一下资料顺便补补课,大概一个半小时后我准备回来解决它,不出意外它又背着我偷偷运行起来了

image

首先每个运行的进程都会有一个PID,也就是上面截图中的第一列,而LINUX中一切皆文件,所以这个进程会以文件的形式存在于/proc/pid/exe,查看一下这个进程文件

image

这个进程的文件指向了/usr/sbin/nacosd文件,瞬间就想明白了,前段时间用测试服务器搭建了NACOS注册中心,用户名密码都是默认的nacos也没改默认端口号没设置鉴权,就那么明晃晃的摆在公网上,原来问题出在这了

杀掉这个脚本很简单,不过得想办法彻底杀掉他不让它在偷偷跑回来,这里先检查服务器中有没有可疑的定时任务

image

网上简单查了一下titanagent感觉挺正常的,定时任务算是排查完了,接下来排查系统中有没有注册可疑的服务,根据大佬的文章得知LINUX中服务都已文件的形式存放在/etc/systemd/system目录下,这里检查该目录下有没有可疑的服务

image

嗯!可疑,看看这个服务的内容是什么

image

嗯!没错了,这个服务的作用就是运行这个挖矿脚本,如果我猜的不错这个服务肯定设置开机自启了

image

这样一来思路就清晰了,先使用systemctl disable system-nacosd命令关闭该服务的开机自启,然后使用systemctl stop system-nacosd命令停止该服务,然后使用rm命令删除服务配置文件(这部分忘截图了),接着删除/usr/sbin/nacosd这个脚本文件,就算大功告成了

image

第一次停止脚本大概一个半小时左右再回去看,脚本自己就又跑起来了,如今已经到了第二天的中午服务器还很安静,应该是成功了!

就写到这吧,能力有限技术有限,如果还有哪些我没考虑到的地方欢迎指点

2024-07-31更新

当时临时发现应急处理,将NACOS关闭后查阅资料执行了上述步骤清理了挖矿脚本,之后由于NACOS一直没用上所以服务一直没启动,今天准备把服务跑起来发现有些后门需要清理,这里简单记录下,详细内容参考 Nacos 安全使用最佳实践 - 访问控制实践

我们采用的是非Docker部署,首先确保服务是关闭状态,执行一次shutdown.sh

image

然后编辑conf/application.properties配置文件将nacos.core.auth.enabled的值设置为true启用鉴权,后面涉及到的一些属性可以参考官方文档,或者让GPT告诉我们答案

image

然后编辑nacos.core.auth.plugin.nacos.token.secret.key属性配置密钥,注意这里建议使用Base64编码一下,尽量保证密钥长度够长,不够就多编码几次,长度太短会导致项目启动报错

image

image

然后编辑identity.keyidentity.value属性修改服务器身份信息

image

image

配置文件修改完成,鉴权启用后,执行startup.sh -m standalone启用单机版NACOS服务并登录,查看权限控制下的用户列表看看有没有可疑用户

image

这个用户不是我们创建的,是黑客保留的后门用户,把他删除,然后修改NACOS默认密码后重新登录,检查角色权限等等,NACOS后门排查基本结束,应该就安全了,后面有问题会在更新

posted @ 2024-07-26 13:25  Java小学生丶  阅读(1357)  评论(14编辑  收藏  举报