记录腾讯云服务器被植入pnscan挖矿病毒折磨的一天

2023-11-05 11:30

本文主要是介绍记录腾讯云服务器被植入pnscan挖矿病毒折磨的一天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 事情经过

 原文地址

事情发生在2023.5.19,服务器从购买到现在没有出现过任何情况,尽管是腾讯云提示某个maven依赖的版本存在漏洞,即时更换版本也没有出现什么问题。但是在今天,突然收到腾讯云的多条短信提示,其中一条是这样的:


此时我开始渐渐意识到问题的严重性,随后登录腾讯云控制台查看,此时发现服务器CPU利用率95%,于是开始了我的排查之路。当然是通过百度了。

  • 解决过程

  1. 起初先是通过远程连接工具连接到服务器,输入top命令查看整体占用情况,果不其然cpu占用率高达95%,但是并没有看到是具体哪个线程占用率过高,用ps aux 和ps -ef查看进程没有检测出一个异常进程。
  2. 随后百度搜索意识到是pnscan挖矿病毒。用last查看登陆成功的用户,发现只有自己的;再用lastb命令查看登录失败的用户,发现有成千上万个登陆失败的用户,ip来自国外各地。
  3. 尝试去找到腾讯云提示的恶意文件并删除它,谁知道竟然删不掉,提示权限不足,原来是文件被设置了无法删除的权限,即ia。随后又通过查询百度知道:用 lsattr 文件名 命令查询文件的权限,结果是有 i 特殊权限,然后 用 lsattr -ai 文件名 去删除i权限即可,谁知道这个时候我的lsattr权限也不能使用。
  4. 通过rpm -qa|grep e2fsprogs命令查询显示存在包,但就是不能使用。
    解决办法如下:

1.下载chattr源文件,将文件命名为chattr.c 地址如下:[chattr.c源文件链接](https://github.com/posborne/linux-programming-interface-exercises/blob/master/15-file-attributes/chattr.c) 响应比较慢,请多刷新几次,没有下载按钮可以直接复制然后保存重命名即可。 2.将文件上传至服务器,使用命令"cc chattr.c"编译文件,得到文件 “a.out” ,将 “a.out”文件移动至“usr/bin/”目录下,并更名为“chattr” 命令如下:mv 目标文件路径/a.out” /usr/bin/chattr 3.启动chattr: ./chattr -ia /usr/bin/chattr cur attrs: 0x00080000, mask: 0x00000030 new attrs: 0x00080000 输出如上的指令表示安装成功 原文链接:https://blog.csdn.net/qq_26724613/article/details/128446221

        5. 这时候就可以全部删除掉了,然后还需要去查看有没有定时计划,因为黑客通常都会放一个定时计划,不断地将病毒文件下载。通过crontab -l命令,还好并没有查到定时计划。然后再把异常进程杀掉。

        6. 大多数黑客进入系统后都会建立自己的账户或者免密登录,最开始时就查询过用户列表中没有异常用户,那么我们就找下目录中是否有authorized_keys文件。果然在root/.ssh目录下找到了authorized_keys这个文件,一样通过lsattr -ai 文件名 去除特殊权限后就可以修改删除了。

        7.这时候服务器基本恢复正常,当然有可能服务器的很多系统命令源文件已经被修改,导致很多系统命令不能使用,比如top查看不到相关进程。

  • 分析原因

因为前俩天想给博客项目加一个redis缓存功能,然后想通过本地redis deskmanager远程连接服务器redis,就把redis配置文件中的bind 127.0.0.1给注释了,然而pnscan病毒经常利用redis未授权,端口可以访问这些漏洞进行蠕虫植入。

  • 总结

pnscan病毒非常狡猾,启动的进程号是动态的,导致不能轻易删除。还有文件删除后没多久又出现了多半是因为定时计划。虽然问题解决了,但并不知道服务器还有没有被修改的命令和一些恶意文件,如果不是很重要的服务器项目,建议备份数据重装服务器,并且不能轻易的把端口号防火墙放开,MySQL、redis等密码也要加大难度。

2023年5月22日,建议大家直接重装系统,或者备份的镜像快照回滚。因为今天又出现30多次黑客的攻击,cpu直接100%,根本查不到恶意文件和进程号。所以直接重装!!!

这篇关于记录腾讯云服务器被植入pnscan挖矿病毒折磨的一天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349557

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据