老司机用脚本批量巧删恶意文件

news2024/10/6 1:38:17

作者:田逸(formyz)

一个NFS服务器,为多个Web项目所共享。这些目录包括PHP程序、图片、HTML页面和用户上传的文档和附件等。因为某些Web框架古老,存在诸如不对上传文件做严格的安全性检查,虽然此NFS服务器位于受保护的内部网络,但任然被别有用心的人上传了大量的恶意文件。强烈要求程序员进行程序(Discuz)更新,答复说更新难度太大,无法在程序上进行处理。从系统管理层面上,临时的措施仅仅是安装shadu软件,对这个共享目录进行扫描,然后删除这些有害的文件(治标不治本)。

共享存储NFS部署在Centos 7.9上,存储空间44T,使用空间4.5T(如下图所示),由于管理相对松懈,有大量的垃圾信息不进行清理和归档。

根据以往的经验和使用习惯,决定在NFS 服务所在的宿主系统Centos 7.9部署开源的、大名鼎鼎的安全软件Clavam,其官方的宣传“ClamAV® is an open-source antivirus engine for detecting trojans, viruses, malware & other malicious threats”--ClamAV®是一款开源防Virtual引擎,用于检测特洛伊Muma、病Du、恶意软件和其他恶意威胁。不知从什么时候开始,官网底部的标识换成网络设备生产商CISCO,即便如此,Clamav目前还是开源、免费的,可以不受限制使用。在Centos 7.9上,至少有3种部署安装Clamav的方法:RPM二进制包、二进制源码和在线包管理工具“yum”,如下图所示。

在Centos 7.9下部署安装Clamav最容易、最便捷的方式就是“yum install”,试着在系统命令行下执行“yum  install clamav”,执行过程及输出如下。

很遗憾,Clamav没有包含在软件仓库中,不能被正确安装到系统。再试着添加一个“epel-release”附加软件仓库,执行的命令是“yum install epel-release”。接着继续执行“yum list clamav”,从输出可知,附加的仓库列表已经包含软件包“clamav”,如下图所示。

执行指令“yum install clamav”进行正式安装。除了主软件Clamav外,还有另外多个依赖包被一起安装,如下图所示。

与用源码包安装相比,不需要根据安装过程中的错误输出逐一安装所需的依赖,效率大大的提高了。

初次被安装部署的Clamav的bingdu库比较陈旧滞后,需要在系统命令行下对这个bingdu特征库进行更新,降低扫描识别的遗漏。执行bingdu库更新的命令是“freshclam”,不带任何参数和选项,执行的过程及输出如下图所示。

Bingdu库已经是最新的了,在正式执行扫描之前,为了预防SSH远程终端断开而导致扫描中断,强烈建议在“screen”上执行扫描。如果执行命令“screen”提示命令不存在,用“yum install screen”安装之。正确执行命令“screen”后,系统立即返回Shell提示符,这时,正式输入如下指令对疑似有问题的共享目录进行完整扫描,并把输出记录到日志文件”/var/log/clamscan.log”。

clamscan -r /data -l /var/log/clamscan.log

clamscan -r /data -l /var/log/clamscan.log

经过漫长的等待,我这个扫描耗费了好多天的时间才完成。查看扫描日志文件,是否存在恶意文件,使用的命令如下:

[root@nas wenku]# grep FOUND  /var/log/clamscan.log

/data/cu/attachment/forum/201305/29/22155372jcjxtt0vfx2uk2.zip: Win.Trojan.IRCBot-785 FOUND

/data/cu/attachment/forum/201501/05/155857clzd9d10bwdpl3s0.zip: Unix.Trojan.Agent-37008 FOUND

/data/cu/attachment/forum/201501/10/2110526a6afrfrzvas2h25.zip: Win.Tool.Chopper-9839749-0 FOUND

/data/cu/attachment/forum/201501/10/210932qsy27wsnwazswagr.zip: Win.Tool.Chopper-9839749-0 FOUND

/data/cu/attachment/forum/201405/18/082512hhjnzummmnuu4i8i.zip: Unix.Dropper.Mirai-7338045-0 FOUND

/data/cu/attachment/forum/201205/11/084024426448y1bk6jmmb9.zip: Win.Trojan.SdBot-13589 FOUND

/data/cu/attachment/forum/201206/05/092231faffjiak6z3gkzqv.zip: Win.Malware.Aa93a15d-6745814-0 FOUND

/data/kong/blog/attach/attachment/201603/9/30229789_1457535724sulu.jpg: Win.Trojan.Generic-6584387-0 FOUND

…………….省略更多…………………………..

/data/wenku/App_Data/Documents/2012-03-10/7da3d2c7-6d16-44c2-aab1-e8a317716c15.txt: Dos.Trojan.Munga-4 FOUND

/data/wenku/App_Data/Documents/2014-02-17/4ed74e66-54d1-46b5-8a41-4915ced095a5.ppt: Xls.Trojan.Agent-36856 FOUND

/data/wenku/App_Data/Documents/2014-02-23/c5c1dfa6-9f04-4e53-b418-4d711ce5408d.ppt: Win.Exploit.Fnstenv_mov-1 FOUND

/data/wenku/App_Data/Documents/2014-07-15/ae2dfca5-ddef-4c41-8812-bcc5543415e1.txt: Legacy.Trojan.Agent-34669 FOUND

[root@nas wenku]# grep FOUND  /var/log/clamscan.log

一共有500多条带关键字“FOUND”的记录,而且分布路径不规律,无法通过删除目录的方式将这些分布离散的恶意文件给处理掉。如果手工一条一条的按绝对路径删除,即低效也容易出错;假使这种形式分布的恶意文件成千上万,用手工逐一删除的方式基本无法完成。

命令“clamscan”本身带选项“--remove”直接删除扫描出来的恶意文件,但这样没有经过相关人员的确认,可能会引起争论。所以需要将这些有问题的恶意文件,呈现给相关人员确认,没有异议以后,才可以移动或者删除。

从Clamav扫描出来的日志文件下手,用工具将恶意文件的全路径提取出来,使用的指令如下。

[root@nas wenku]#grep FOUND  /var/log/clamscan.log |awk -F[:] '{print $1}'

/data/wenku/App_Data/Documents/2016-04-11/8fe8d01e-e752-4e52-80df-f202374b2b6d.doc

/data/wenku/App_Data/Documents/2016-04-11/03a14021-279f-45cd-83c5-b63076032c9e.doc

/data/wenku/App_Data/Documents/2016-04-11/c45ddc01-ec3d-4a54-b674-8c2082d76ce3.doc

/data/cu/attachment/forum/201305/29/22155372jcjxtt0vfx2uk2.zip

/data/cu/attachment/forum/201501/05/155857clzd9d10bwdpl3s0.zip

/data/cu/attachment/forum/201501/10/2110526a6afrfrzvas2h25.zip

/data/cu/attachment/forum/201501/10/210932qsy27wsnwazswagr.zip

/data/cu/attachment/forum/201405/18/082512hhjnzummmnuu4i8i.zip

/data/cu/attachment/forum/201205/11/084024426448y1bk6jmmb9.zip

/data/cu/attachment/forum/201206/05/092231faffjiak6z3gkzqv.zip

………………省略若干…………………………

grep FOUND  /var/log/clamscan.log |awk -F[:] '{print $1}'

与原始日志相比,去掉了冒号“:”以及其后的全部字段。在此指令后,增加管道并配合“xargs”传递参数,就可以将扫描出来的恶意文件全部清理掉,不管它分布到什么路径,完整的命令如下所示。

grep FOUND  /var/log/clamscan.log |awk -F[:] '{print $1}'| xargs rm -rf

grep FOUND  /var/log/clamscan.log |awk -F[:] '{print $1}'| xargs rm -rf

执行完毕,随机找几条扫描出来的恶意文件全路径,文件应该不存在(如下图所示),则表明脚本正确,正是我们所期待的结果。

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

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

相关文章

OceanMind海睿思入选《2023大数据产业年度创新技术突破奖》,并蝉联多项图谱

近日,由数据猿和上海大数据联盟主办,上海市经济和信息化委员会、上海市科学技术委员会指导的“第六届金猿季&魔方论坛——大数据产业发展论坛”在上海成功举行,吸引了数百位业界精英的参与。中新赛克海睿思作为国内数字化转型优秀厂商代表…

虚拟机安装Centos8.5

记得看目录哦! 附件1. 新建虚拟机2. 安装Centos8.5 附件 安装包自行下载 https://mirrors.aliyun.com/centos/8/isos/x86_64/ 1. 新建虚拟机 2. 安装Centos8.5 启动虚拟机–选择第一个install Centos8.5 记得接收许可证

25考研北大软微该怎么做?

25考研想准备北大软微,那肯定要认真准备了 考软微需要多少实力 现在的软微已经不是以前的软微了,基本上所有考计算机的同学都知道,已经没有什么信息优势了,只有实打实的有实力的选手才建议报考。 因为软微的专业课也是11408&am…

在Windows上安装与配置Apache服务并结合内网穿透工具实现公网远程访问本地内网服务

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

Web开发8:前后端分离开发

在现代的 Web 开发中,前后端分离开发已经成为了一种常见的架构模式。它的优势在于前端和后端可以独立开发,互不干扰,同时也提供了更好的可扩展性和灵活性。本篇博客将介绍前后端分离开发的概念、优势以及如何实现。 什么是前后端分离开发&am…

Linux-动静态库

背景 在实践中,我们一定会使用别人的库(不限于C、C的库),在实践中,我们会使用成熟、被广泛使用的第三方库,而不会花费很多时间自己造轮子,为了能更好地使用库,就要在学习阶段了解其…

[嵌入式系统-4]:龙芯1B 开发学习套件-1-开发版硬件介绍

目录 前言: 一、龙芯 1B 开发学习套件简介 1.1 概述 二、龙芯1B 200开发板硬件组成与接口介绍 2.1 概述 2.2 核心板 2.2.1 CPU 2.2.2 什么是核心板 2.2.3 龙芯1B 200核心板 2.2.4 龙芯1B核心板的接口定义 2.3 开发板 2.3.1 龙芯1B0200开发板 2.3.2 龙芯…

Linux使用匿名管道实现进程池得以高效通信

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:Nonsense—Sabrina Carpenter 0:50━━━━━━️💟──────── 2:43 🔄 ◀️ ⏸ ▶️ …

Redis 持久化详解:RDB 与 AOF 的配置、触发机制和实际测试

什么是持久化? 就是 Redis 将内存数据持久化到硬盘,避免从数据库恢复数据。之所以避免从数据库恢复数据是因为后端数据通常有性能瓶颈,大量数据从数据库恢复可能会给数据库造成巨大压力。 Redis 持久化通常有 RDB 和 AOF 两种方式&#xff…

​ PaddleHub 首页图像 - 文字识别chinese_ocr_db_crnn_server​

PaddleHub 便捷地获取PaddlePaddle生态下的预训练模型,完成模型的管理和一键预测。配合使用Fine-tune API,可以基于大规模预训练模型快速完成迁移学习,让预训练模型能更好地服务于用户特定场景的应用 零基础快速开始WindowsLinuxMac Paddle…

算法学习系列(三十):高斯消元解线性方程组

目录 引言一、高斯消元法二、代码模板三、例题 引言 这个高斯消元法主要是线性代数的一些东西,然后步骤跟上课讲的步骤是一样的,只不过使用代码实现了而已,在竞赛和笔试中还是有出现的可能的,所以掌握它还是很重要的,…

「 典型安全漏洞系列 」07.OS命令注入详解

引言:什么是操作系统命令注入,如何防御和利用漏洞? 1. 简介 操作系统命令注入(OS command injection)是一种Web安全漏洞,允许攻击者在运行应用程序的服务器上执行任意操作系统(OS)命…

专栏:数据库、中间件的监控一网打尽

前言 对于数据库、中间件的监控,目前社区里最为完善的就是 Prometheus 生态的各个 Exporter,不过这些 Exporter 比较分散,不好管理,如果有很多目标实例需要监控,就要部署很多个 Exporter,要是能有一个大一…

基于springboot的房屋交易系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

【C语言/数据结构】排序(快速排序及多种优化|递归及非递归版本)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​​ 目录 交换排序 快速排序 hoare版代…

【CanvasKeyFrames - HTML5 Canvas 图片序列帧播放工具】

前言 一、CanvasKeyFrames 是什么&#xff1f; 用来做canvas动画的工具。 二、使用步骤 效果如图&#xff1a;上下波动的线条 1.引入库 代码如下&#xff08;示例&#xff09;&#xff1a; 在html中引入&#xff1a; <script src"canvas-keyframes.js"><…

基于springboot药房管理系统源码和论文

伴随着全球信息化发展&#xff0c;行行业业都与计算机技术相衔接&#xff0c;计算机技术普遍运用于药房管理行业。实施计算机系统来管理可以降低逍遥大药房管理成本&#xff0c;使整个逍遥大药房行业的发展有显著提升。 本论文主要面向逍遥大药房管理中出现的一些常见问题&…

多符号表达式的共同子表达式提取教程

生成的符号表达式&#xff0c;可能会存在过于冗长的问题&#xff0c;且多个符号表达式中&#xff0c;有可能存在相同的计算部分&#xff0c;如果不进行处理&#xff0c;计算过程中会导致某些算式计算多次&#xff0c;从而影响计算效率。 那么多个符号表达式生成函数时&#xf…

深信服技术认证“SCSA-S”划重点:基线管理与安全配置

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…

Java 集合 03 综合练习(黑马)

练习1、 ps&#xff1a;输出结果为地址值&#xff0c;是因为在输出对象时&#xff0c;默认调用了对象的toString()方法。在没有重写toString()方法的情况下&#xff0c;toString()方法返回的是对象的地址值。如果想要输出对象的属性值而不是地址值&#xff0c;可以重写toString…