排查 Linux系统下SSH被暴力破解 植入pnscan 挖矿病毒入侵服务器
发现病毒入侵历程:
昨天正常网上遨游在技术天地中,忽然发现网络变得异常卡顿,解析网站变得很慢 甚至打不开,我的第一反应就是DNS可能出了问题,然后ping 域名同时追踪外网地址 ,并同时ping包结果都没有问题。然后就启动测速软件,测速结果3M不到,我的网络环境是电信200M+联通300M,做了1:1负载均衡。按理有一条挂掉也不会这样的结果。然后开始检测网络状态监控,不看不知道,一看吓一跳,映入眼前的就是数万的连接数在不断飙升。我虽然有几个业务在私有云上面跑,但跑的都是轻量级业务,连接数也不至于这么高啊,然后打开终端监控,排查是哪个服务器产生的连接数,经过排查找到了一台备份MySQL数据库的一台服务器、几万的连接数 和数据流量在不断飙升,数据库备份服务器,一般是深夜才开始自动备份,按理白天没有流量的!怎么会有这么多连接数和流量呢?
1.急忙开始远程登录到该备份服务器上,开始远程连接时 连登录都异常卡顿,反应了半天才连接上,上去一个top命令,不得了! cpu 内存 资源直接消耗殆尽,一分钟、五分钟、十五分钟负载直接爆掉!用ps aux 和ps -ef查看进程没有检测出一个异常进程.
2.本能的 w 一下 查看用户登录信息,只有自己当前用户,用 lsat 显示下登录成功的的用户 ,结果还是仅自己 ,再用 lastb命令查看登录失败的用户,我哩个去去,好多尝试登录失败的用户,ip地址很多都不在国内,此时我知道服务器应已经被SSH被暴力破解了。
3.查看了防火墙放行的端口号和运行状态都是没有问题 ,外网只放行了ssh服务,还查不到任何异常用户以及进程和端口号,正在思考时 ,想起了终端监控的流量,查看了该监控上提供的网络连接过得协议,经过tcp三次握手后,一直有变化的外网地址的不定端口 访问 目的端口为 6379 端口 这个端口大家都知道是什么服务 ,很疑问 我没有安装Redis 怎么会去不断访问我的Redis服务呢?带着疑问 再次远程回服务器,检索了6379端口 结果没有发现该端口启动,cd /usr/local/bin/ 目录下也没有发现Redis, 结果发现了一个 名为 pnscan 的文件名,vi 打开后一堆乱码。本能的用 rm -rf 删掉了 该文件,reboot 了一下 服务器。
4.重启后 再次登录到服务器上,资源占用下来了,这时以为就解决了,然而,我太单纯了,过几分钟 资源又被拉满了 再次查看 /usr/local/bin/ 下 ,我哩个丢丢 ,那个名为 pnscan 的文件又回来了,顿时觉得大事不好,肯定有个程序在进行判断并执行开机自启程序的文件。想要解决这个问题,首先要知道这个 名为 pnscan 的文件是个什么东东。然后度娘了一下 ,才知 这家伙是挖矿病毒,经常利用爆破SSH Redis未授权访问等漏洞 来进行蠕虫植入。
5.我们删除掉 pnscan 该病毒文件 他又回来了,我们分析过肯定有个程序在进行判断 并执行开机自启程序的文件,前面我们也没有检索出异常进程和端口号 ,查看下 他是否有计划任务做守护 crontab -l 检测下计划任务 果然 有个周期性计划任务 指向 /etc/newinit.sh 的脚本,于是 我先把脚本复制了一份传到电脑上,又执行 rm -rf 删除脚本 发现 提示权限不够 vi 进行删除也无法保存,尝试 crontab -e 删除计划任务 也一样提示 权限不够。。。。 怪鬼 解决方法 用 lsattr /etc/newinit.sh ,lsattr /var/spool/ceon/root 结果是都有 i 特殊权限,然后 用 lsattr -ai /etc/newinit.sh 和 lsattr -ai /var/spool/ceon/root把权限,再执行删除,清除就可以删除了。
6.大多数黑客进入系统后都会建立自己的账户或者免密登录,最开始时就查询过用户列表中没有异常用户 ,那么我们就找下目录中是否authorized_keys文件 果然 在root家目录下 找到了authorized_keys这个文件 ,一样去除特殊权限后就可以修改删除了!然后再在/usr/local/bin/ 下pnscan病毒文件删除
7.做安全漏洞加固:修改ssh端口号 ,修改root密码 或者禁止root登录
8.自此再重启服务器后 ,服务器就完全恢复正常了。