一条指令彻底删除扫描出来的有害程序

2024年 2月 2日 77.7k 0

一条指令彻底删除扫描出来的有害程序

作者:田逸(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

 

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

[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

 

一共有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

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

 

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

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

 

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

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论