CVE-2024-3094 漏洞自动化检测与修复工具本项目针对近期曝光的CVE-2024-3094漏洞xz-utils 恶意代码后门提供了完整的自动化检测与修复方案。包含适用于单机快速响应的 Shell 脚本以及面向大规模服务器集群的 Ansible Playbook 自动化方案帮助系统管理员高效、可靠地完成漏洞排查与修复工作。功能特性自动检测操作系统与包管理器支持 Debian/Ubuntu/Kali、RHEL/CentOS/Fedora/Rocky、openSUSE 等主流 Linux 发行版精准版本识别自动获取已安装的 xz-utils 版本与已知漏洞版本5.6.0、5.6.1进行比对智能升级修复优先使用系统包管理器升级到最新安全版本升级失败时自动从源码编译安装稳定版本5.4.6Ansible 规模化部署提供完整的 Ansible Playbook支持跨数百台服务器的批量检测与修复交互式配置向导Shell 脚本提供友好的命令行交互界面支持自定义路径与执行选项修复报告生成自动生成详细的主机修复状态报告便于审计与追踪安装指南单机 Shell 脚本下载脚本wgethttps://raw.githubusercontent.com/your-repo/ubuntu_security_hardening.shchmodx ubuntu_security_hardening.sh执行脚本sudo./ubuntu_security_hardening.shAnsible 批量部署安装 Ansible控制节点# Ubuntu/Debiansudoapt-getupdatesudoapt-getinstall-yansible# RHEL/CentOSsudoyuminstall-yansible克隆项目gitclone https://github.com/your-repo/CVE-2024-3094-mitigationcdCVE-2024-3094-mitigationchmodx setup_and_run_ansible_cve_fix.sh配置主机清单编辑hosts.ini文件添加需要检测的目标主机[servers] 192.168.1.10 ansible_userroot 192.168.1.11 ansible_userroot运行自动化脚本./setup_and_run_ansible_cve_fix.sh使用说明Shell 脚本单机使用脚本会自动检测当前系统的 xz-utils 版本如果发现漏洞版本5.6.0 或 5.6.1将执行以下流程尝试通过系统包管理器升级到最新版本如果升级失败自动下载 xz-5.4.6 稳定版源码并编译安装提示用户是否重启系统以应用更改# 执行检测与修复sudo./ubuntu_security_hardening.sh# 输出示例Detected vulnerable xz version:5.6.0. Attempting to upgrade... Attempting to upgrade xz to the latest version using apt-get... xz has been successfully upgraded to the latest version. It is recommended torebootyour system to apply changes. Would you like torebootnow?(yes/no)Ansible Playbook 批量使用方式一自动交互式执行运行setup_and_run_ansible_cve_fix.sh后根据提示配置初始 Ansible 主机清单文件路径受影响主机列表保存路径是否自动执行修复 Playbook最终报告保存路径方式二手动执行 Playbook检测漏洞主机ansible-playbook-ipath/to/hosts.ini check_vulnerability.yml修复受影响主机ansible-playbook-ipath/to/impacted_hosts.ini fix_vulnerable_hosts.yml生成修复报告修复完成后报告将保存到指定路径默认为./remediation_report.txt包含每台主机的修复状态与建议操作。核心代码Shell 脚本核心逻辑 - 版本检测与升级# 检测操作系统并确定包管理器detect_os_and_package_manager(){if[[-f/etc/debian_version]]||grep-qiubuntu /etc/os-release;thenPACKAGE_MANAGERapt-getVERSION_COMMANDapt-cache policy xz-utils | grep Installed: | awk {print \$2}elif[[-f/etc/redhat-release]]||grep-qicentos /etc/os-release;thenifcommand-vdnf/dev/null21;thenPACKAGE_MANAGERdnfelsePACKAGE_MANAGERyumfiVERSION_COMMAND$PACKAGE_MANAGERlist installed xz | grep xz | awk {print \$2} | cut -d : -f 2fi}# 升级 xz-utils 到最新版本upgrade_xz(){echoAttempting to upgrade xz to the latest version using$PACKAGE_MANAGER...case$PACKAGE_MANAGERinapt-get|apt)sudo$PACKAGE_MANAGERupdatesudo$PACKAGE_MANAGERinstall-yxz-utils;;dnf|yum)sudo$PACKAGE_MANAGERupdate-yxz;;esacif[$?-eq0];thenechoxz has been successfully upgraded to the latest version.return0elseechoFailed to upgrade xz to the latest version.return1fi}# 从源码编译安装稳定版本install_stable_xz(){echoDownloading and installing the stable xz version from$STABLE_VERSION_URL...wget$STABLE_VERSION_URL-Oxz-$STABLE_VERSION.tar.bz2\tar-xjfxz-$STABLE_VERSION.tar.bz2\cdxz-$STABLE_VERSION\./configuremakesudomakeinstall}# 主逻辑检测漏洞版本并执行修复CURRENT_VERSION$(get_xz_version)if[[${VULNERABLE_VERSIONS[*]}~${CURRENT_VERSION}]];thenechoDetected vulnerable xz version:$CURRENT_VERSION. Attempting to upgrade...if!upgrade_xz;thenechoUpgrade unsuccessful. Attempting to install a non-vulnerable version...install_stable_xzfifiAnsible Playbook 核心逻辑 - 批量检测-name:Identify Vulnerable Hosts for CVE-2024-3094hosts:allbecome:yestasks:-name:Gather package facts from all hostsansible.builtin.package_facts:manager:auto EOF重要提醒在生产环境部署前请务必在测试环境中充分验证脚本或 Playbook 的行为了解升级或降级 xz-utils 对系统上其他应用程序可能产生的影响确保有完整的数据备份和回滚方案仔细审查将要执行的变更避免意外的业务中断6HFtX5dABrKlqXeO5PUv/5Dq7l7h/nmTs89oAbrRTEdTobwJ8N381ruyQ41S2asr3EbOhAWrFvCmddhUpKhjGA更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享