记录腾讯云服务器被植入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

相关文章

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

使用Nginx配置文件服务器方式

《使用Nginx配置文件服务器方式》:本文主要介绍使用Nginx配置文件服务器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 为什么选择 Nginx 作为文件服务器?2. 环境准备3. 配置 Nginx 文件服务器4. 将文件放入服务器目录5. 启动 N

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my