ubuntu22系统中毒后,无法开机修复教程 📅 发布时间:2026/7/13 14:11:24 👁️ 浏览次数: 这个问题主要是病毒导致的,在升级到新的内核后,也就是开机后会自动应用新的内核,然后内核版本和病毒不兼容导致的问题。主要就是续费、重启服务器后,无法开机。只要执行下面教程就可以修复啦1、进入救援系统首先强制关机/断电关机,不然无法开机页面很久才能关机。一般救援系统都是centos8 stream,进入即可,进入时给你一个ssh密钥,记住他,因为不会二次显示2、执行下面脚本1、挂载旧系统盘,进入chroot模式# 步骤1:检查是否已挂载 info "步骤1:检查挂载点..." if ! mountpoint -q /mnt; then info "正在挂载 /dev/vdb1 到 /mnt..." mount /dev/vdb1 /mnt || { error "挂载失败!请手动执行: mount /dev/vdb1 /mnt" exit 1 } else info "/mnt 已挂载" fi # 步骤4:挂载系统目录并chroot info "步骤4:准备chroot环境..." cd /mnt || { error "无法进入 /mnt"; exit 1; } # 挂载必要的目录 for dir in dev proc sys run; do if [ ! -d "$dir" ]; then mkdir -p "$dir" fi mount --bind "/$dir" "$dir" info "✅ 挂载 /$dir" done # 执行chroot命令 chroot /mnt /bin/bash2、清除病毒文件脚本#!/bin/bash # 终极强制删除脚本 - 优化版(避免重复安装防护) echo "🚀 开始强制清理 /var/adm 目录..." echo "======================================" # 记录日志 LOG_FILE="/var/log/force_clean_$(date +%Y%m%d_%H%M%S).log" echo "清理日志: $LOG_FILE" # 1. 首先检查目录状态 TARGET_DIR="/var/adm" if [ ! -d "$TARGET_DIR" ]; then echo "✅ 目录不存在,无需清理" # 检查防护是否已安装 if [ -f "/root/monitor_adm.sh" ] crontab -l 2/dev/null | grep -q "monitor_adm.sh"; then echo "✅ 防护已安装,跳过重复安装" exit 0 else echo "⚠️ 目录不存在但防护未安装,继续安装防护" fi fi echo "📁 目录存在,开始分析..." echo "======================================" # 2. 显示目录详细信息(仅调试用,正式运行可注释掉) # echo "🔍 目录信息:" # ls -ld "$TARGET_DIR" 2/dev/null # echo "" # 3. 检查文件系统属性 echo "🔒 检查文件属性..." lsattr -R "$TARGET_DIR" 2/dev/null | head -10 # 4. 检查占用进程并终止 echo "🛑 检查并终止相关进程..." PIDS=$(lsof +D "$TARGET_DIR" 2/dev/null | awk 'NR1 {print $2}' | sort -u) if [ -n "$PIDS" ]; then echo "发现并终止进程: $PIDS" kill -9 $PIDS 2/dev/null sleep 2 fi # 5. 强制删除流程 echo "💥 开始强制删除..." chattr -R -i -a "$TARGET_DIR" 2/dev/null find "$TARGET_DIR" -delete 2/dev/null rm -rf "$TARGET_DIR" 2/dev/null # 6. 如果仍然存在,尝试其他方法 if [ -d "$TARGET_DIR" ]; then echo "⚠️ 常规方法失败,尝试其他方法..." # 方法1: 重命名然后删除 mv "$TARGET_DIR" "${TARGET_DIR}_bak_$(date +%s)" 2/dev/null # 方法2: 使用 perl 删除 perl -e 'use File::Path qw(remove_tree); remove_tree("/var/adm", {error = \my $err});' 2/dev/null # 方法3: 进入目录删除 cd /var rm -rf adm 2/dev/null fi # 7. 最终检查 echo "🔍 最终检查..." if [ -d "$TARGET_DIR" ]; then echo "❌ 删除失败!目录仍然存在" # 创建临时保护 touch /var/.adm_locked 2/dev/null chattr +i /var/.adm_locked 2/dev/null else echo "✅ 成功删除 $TARGET_DIR 目录!" fi # 8. 智能安装防护(只安装一次) echo "======================================" echo "🛡️ 检查并安装防护..." # 检查监控脚本是否存在 MONITOR_SCRIPT="/root/monitor_adm.sh" if [ ! -f "$MONITOR_SCRIPT" ]; then echo "📝 创建监控脚本..." cat "$MONITOR_SCRIPT" 'EOF' #!/bin/bash # 监控脚本 - 防止恶意目录重现 LOG="/var/log/security_monitor.log" TARGET="/var/adm" MAX_LOG_SIZE=10485760 # 10MB # 限制日志大小 if [ -f "$LOG" ] [ $(stat -c%s "$LOG") -gt $MAX_LOG_SIZE ]; then mv "$LOG" "${LOG}.old" fi echo "[$(date)] 安全监控运行中..." $LOG # 如果目录被重新创建 if [ -d "$TARGET" ]; then echo "[$(date)] ⚠️ 检测到恶意目录重现!" $LOG # 记录并删除 ls -la "$TARGET/" $LOG 21 # 强力删除 chattr -R -i -a "$TARGET" 2/dev/null find "$TARGET" -delete 2/dev/null rm -rf "$TARGET" 2/dev/null if [ ! -d "$TARGET" ]; then echo "[$(date)] ✅ 已清理 $TARGET" $LOG else echo "[$(date)] ❌ 清理失败,目录仍在" $LOG fi fi # 检查异常进程(精简版) ps aux | grep -E "(/var/adm|\./adm|miner|xmrig|ddgs)" | grep -v grep | head -5 | while read line; do pid=$(echo $line | awk '{print $2}') echo "[$(date)] 发现并终止异常进程: $line" $LOG kill -9 $pid 2/dev/null done EOF chmod +x "$MONITOR_SCRIPT" echo "✅ 监控脚本已创建: $MONITOR_SCRIPT" else echo "✅ 监控脚本已存在,跳过创建" fi # 9. 检查并添加crontab(只添加一次) echo "📅 检查定时任务..." if ! crontab -l 2/dev/null | grep -q "monitor_adm.sh"; then echo "添加定时任务..." (crontab -l 2/dev/null; echo "*/10 * * * * /bin/bash /root/monitor_adm.sh /dev/null 21") | crontab - echo "✅ 定时任务已添加(每10分钟运行)" else echo "✅ 定时任务已存在,跳过添加" fi echo "======================================" echo "🎯 防护状态:" echo "- 监控脚本: $(ls -la /root/monitor_adm.sh 2/dev/null || echo '未安装')" echo "- 定时任务: $(crontab -l 2/dev/null | grep -c 'monitor_adm.sh') 个条目" echo "- 日志文件: /var/log/security_monitor.log" echo "======================================"3、修复系统用户权限脚本#!/bin/bash # =============================================== # 服务器安全修复脚本 V2.2 # 修复:1.后门用户 2.重复UID 3.ld.so.preload 4.删除adm用户 # 适配宝塔计划任务限制 # =============================================== # 定义绕过后门命令的文件路径变量 P_FILE="/etc/p""a""s""s""w""d" G_FILE="/etc/gr""ou""p" S_FILE="/etc/""sh""ad""ow" TMP_DIR="/tmp" NUM_FILE01="${TMP_DIR}/01.tmp" NUM_FILE02="${TMP_DIR}/02.tmp" NUM_FILE03="${TMP_DIR}/03.tmp" echo "========================================" echo "开始安全修复 V2.2" echo "========================================" # 备份原始文件 BACKUP_DIR="/root/security_backup_$(date +%Y%m%d_%H%M%S)" echo "创建备份目录: $BACKUP_DIR" mkdir -p $BACKUP_DIR echo "备份系统文件..." cp ${P_FILE} ${S_FILE} ${G_FILE} /etc/ld.so.preload $BACKUP_DIR/ 2/dev/null || true echo "备份完成" echo -e "\n========================================" echo "问题分析" echo "========================================" echo "1. 检查ld.so.preload:" cat /etc/ld.so.preload 2/dev/null || echo " 文件不存在或为空" echo -e "\n2. 检查UID重复情况:" cut -d: -f3 ${P_FILE} | sort -n | uniq -c | sort -nr | while read count uid; do if [ $count -gt 1 ] [ $uid -lt 1000 ]; then users=$(awk -F: -v uid="$uid" '$3 == uid {printf "%s, ", $1}' ${P_FILE} | sed 's/, $//') echo " UID $uid 重复 $count 次: $users" fi done echo -e "\n========================================" echo "修复步
【雷达原理学习笔记】64.P64目标距离测量(三)时间鉴别器的工作原理与数学模型 65.P65目标距离测量(四) 目录 时间鉴别器的工作原理与数学模型 一、时间鉴别器的基本功能 二、自动距离跟踪系统的闭环结构 三、时间鉴别器的数学模型与波形分析 3.1 波门结构的基本定义 3.2 时间鉴别器的电路组成与信号流程 3.3 积分与比较输出 四、时间鉴别器的特性曲线 五、关于系数 k1 … 2026/7/10 11:49:51
Matlab图像去噪处理:还图像一片清晰天地 matlab图像去噪处理【有报告】 数字图像的噪声主要产生于图像的获取和传输过程。 图像去噪是指减少或去除数字图像中的噪声的过程。 去噪效果的好坏直接影响到图像分割、图像识别等后续的图像处理效果。 一份报告说明在数字图像处理的领域里,图像噪声就像一个令人头… 2026/7/12 1:35:54
一字致命:单字符误写(代|)引爆Firefox 0Day RCE漏洞,内核安全再敲警钟 在浏览器内核安全领域,“细节决定成败”从未如此触目惊心——近期,安全研究员Erge在CTF挑战代码审计过程中,发现Mozilla Firefox浏览器存在一处高危0Day远程代码执行(RCE)漏洞,其根源竟是一个极其细微的单字… 2026/7/9 4:09:30
终极免费图片去重神器:AntiDupl.NET完整使用指南,快速清理重复图片释放存储空间 终极免费图片去重神器:AntiDupl.NET完整使用指南,快速清理重复图片释放存储空间 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾经为电… 2026/7/13 14:10:03
运维-- 监控与日志分析 前言 更多运维相关知识:蓝队技能学习_其实防守也摸鱼的博客-CSDN博客 持续更新ing~ 介绍 如果把服务器比作病人,那么运维人员就是医生。监控与日志分析,正是医生的“听诊器”和“化验单”。 面对成百上千台服务器,我们不可… 2026/7/13 14:06:02
SpringMVC 全局统一异常处理 前置关联说明:在《SpringMVC定制化配置全解》中,我们完成了视图适配、拦截器、跨域、JSON序列化、国际化等请求链路定制,覆盖了请求入参、拦截、响应格式化场景。本文将独立深度拆解SpringMVC 全局统一异常处理,补齐MVC请求闭环最… 2026/7/13 14:06:02
Cursor数据库插件深度评测(Benchmark实测:响应延迟≤23ms,VS Code原生SQL工具完败) 更多请点击: https://codechina.net 第一章:Cursor数据库插件的核心架构与设计理念 Cursor 数据库插件并非传统意义上的独立数据库服务,而是一个深度集成于 Cursor 编辑器的智能辅助层,其核心目标是将数据库操作无缝融入开发者日… 2026/7/13 14:06:02
股票投资系统化策略:从选股到持仓的实战指南 1. 股票投资的核心方法论:从选股到持仓的完整体系刚入市那会儿,我总在各大论坛里翻找"明日涨停股"名单,结果往往是高位接盘。直到经历过三轮牛熊转换才明白,真正的盈利来自于建立系统化的选股和持仓策略。这套方法让我在… 2026/7/13 14:02:01
从单目到多视图:6D位姿估计的泛化能力演进 1. 6D位姿估计的基础概念6D位姿估计是计算机视觉领域的核心技术之一,它要解决的问题是确定物体在三维空间中的位置和朝向。这里的"6D"指的是三个平移自由度(X/Y/Z轴位置)和三个旋转自由度(绕X/Y/Z轴的旋转)。… 2026/7/13 14:02:00
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/13 9:31:08
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55