
一、说明
如果存在文件上传漏洞和命令执行漏洞(包括命令注入,缓冲区溢出,反序列化等),人们将担心系统是否已上传到Web Shell或木马程序。如果依靠人工调查,一个是工作量很大,另一个是需要一定程度的技术和业务知识来判断什么是正常的,什么是异常的。大量的工作决定了调查工作不能由具有技术和业务知识的个人来完成,并且需要其他人员的参与。如果这些没有“一定程度的技术和商业知识”的人参加,则基本上会导致大量假阳性和假阴性(主要是假阴性)。总而言之,在大量设备现场对后门进行人工检查很难有效实施。
所谓的服务器后门的性质与台式机系统的病毒和木马没有太大区别。在桌面系统中,我们可以轻松地使用360单击来检查并杀死病毒和木马。在服务器上,我们还可以使用类似的工具来检查并杀死后门。至于假阴性,肯定还有一些,但是它们比手工调查要少,效率会高得多。
二、使用WebShellKiller杀死Webshell 2. 1 WebShellKiller简介
WebShellKiller是Sangfor发布的一个webshell杀死工具,它支持检查jsp,asp,aspx和php等脚本。
有关下载和更多详细说明,请参见链接:
由于它既不是商业产品也不是开源产品,因此不能保证它将来会继续维护和更新,但是基于以下两点,即使它不是产品,它也相对可靠。更新时间更长。
首先,从当前结果来看,大多数使用webshell的测试都是正确的。
第二,作为webshell,注定最终会生成代码来调用那些固定的危险功能,因此webshell的变形受到限制,即所谓的“自由杀戮”实际上具有相对较高的阈值。
WebShellKiller支持Windows和Linux。我们在这里只谈论linux。 Windows不能解压缩并双击运行。
此外,您还可以使用D-Shield WebShellKill检查并杀死Windows平台的Webshell:
查杀可以使用百度的webdir +:
2. 2 WebShellKiller的安装和使用

我在这台机器上的操作过程如下,如果机器无法连接任何东西,只需执行等效的操作来替换它。
# 下载WebShellKiller wget http://edr.sangfor.com.cn/tool/WebShellKillerForLinux.tar.gz # 解压到当前目录 tar -zxf WebShellKillerForLinux.tar.gz # 查看解压结果,可以看到多出centos_32、centos_64、linux_64三个文件夹 # 如果是centos 32/redhat 32那就使用centos_32,如果是centos 64/redhat 64那就使用centos_64,如果是其他linux 64那就使用linux_64 ls # 查看当前操作系统 cat /etc/system-release # 查看当前操作系统是32位还是64位;x86是32位,x86_64或x64是64位;一般都是64位 uname -m # 我这里是centos 64所以进入centos_64 cd centos_64/wscan_app/ # 查看当前目录文件,wscan是主程序 ls # wscan默认没有可执行权限,需要加上 chmod u+x wscan # wscan从LD_LIBRARY_PATH加载so文件,需要将当前路径加到LD_LIBRARY_PATH以使wscan能找到当前目录下的so export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH # 执行扫描,../../webshell/jsp是我这里要扫描的路径,改成自己要扫描的即可 # 被列出的文件即是被认为可疑的文件,人工识别是否为web应用自己所用文件即可 ./wscan -hrf ../../webshell/jsp
操作截图如下:

三、使用clamav检测并杀死木马文件
clamav是一种开源Trojan病毒检查和杀毒软件。 Clamav依靠其clamav-db进行检查和杀死,并且clamav-db会不断更新。对于其他安装,请参考官方文档:
3. 1安装和卸载3. 1. 1可联网的centos / redhat系统yum安装和卸载
# 配置软件仓库,centos仓库没有clamav yum install -y epel-release # 安装clamav依赖,其实如果是yum会自动安装依赖,写出来只是强调一下 yum install gcc openssl zlib -y # 安装clamav yum install -y clamav # 卸载clamav yum remove clamav*
3. 1. 2无法联网centos / redhat系统rpm安装
对于不可联网的系统,可以在可联网的同一版本的操作系统上下载rpm软件包,然后将其上载以进行安装。如果未安装gcc,openssl和zlib,则可以类似的方式安装(如果对该操作有很深的依赖性,则可能会有些痛苦)。
Clamav可以从网络计算机上下载(可以根据自己的操作系统下载和使用32位和64位; .i686是32位,.x86_64是64位):
# 这两个命令有时不好使,不行就换着用 # 使用yumdownloader下载clamav及其clamav-db # yumdownloader可以是非root用户执行 yumdownloader clamav clamav-db # 使用yum下载clamav及其clamav-db # yum 必须是root用户才能执行 yum install --downloadonly --downloaddir=. clamav clamav-db -y
不能在联网计算机上安装和卸载Clamav:

# 上传后进入上传到的目录下,使用root执行安装 rpm -Uvh clamav-db*.rpm rpm -Uvh clamav*.rpm # 卸载 clamav rpm -e clamav clamav-db
3. 1. 3源代码的编译和安装
尽管前两种安装方法更方便,但安装需要root用户,文件将分散在各个系统文件夹中。如果同一时期的系统服务有问题,则该公司表示您已安装此东西并移动了一些文件。这完全是胡说八道,但是如果您对系统不够了解,您将不可避免地没有信心。手动编译一个可以在不使用root的情况下安装到指定目录,因此可能很麻烦(编译时没有错误报告,只有两个命令,但这基本上是一种理想状态。首先,是gcc / openssl的三个依赖项/ zlib不太可能安装。第二,可能还有其他问题),但这是一种更安全的方法。
但是,由于下载病毒需要Internet连接,因此无法在无法连接到外部网络的环境中使用此方法。
源代码下载地址:
# 编译,--prefix=指定安装位置必须是绝对路径形式,我这里是/usr/myapp/clamav,改成自己的 # --disable-clamav检测是否创建了clamav,直接禁用掉 ./configure --prefix=/usr/myapp/clamav --disable-clamav # 当没有error时使用make进行编译,需要几分钟 # 如果是要重新编译,make前先用make clean清空之前编译出来的文件 make # 完成后使用make install进行安装 make install # 卸载,文件夹不会删除但其下文件已全删除 make uninstall
3. 2配置
这里是手动安装的示例。如果以yum或rpm模式安装,则将安装默认配置和,并且clamscan不需要在环境变量中执行此步骤。
# 创建存放日志和病毒库的文件夹 mkdir /usr/myapp/clamav/logs mkdir /usr/myapp/clamav/db # clamav日志文件不存在时不会自动创建只会报错退出所以先把稍后要用的日志文件创建出来 touch /usr/myapp/clamav/logs/clamd.log touch /usr/myapp/clamav/logs/freshclam.log # 如是root用户运行那么clamav会强制切换到clamav用户运行 # 也就是说如果是root用户那么clamav用户必须存在 # 如果本来就是以普通用户运行,因为编译时使用了--disable-clamav所以可以不用创建 # shell设置为/bin/false用户不能用于登录所以不会降低系统安全性 # groupadd clamav # useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav # 如果以root运行,由于系统切换到clamav用户,所以需要将日志赋给clamav用户其才能写日志 # chown clamav:clamav /usr/myapp/clamav/logs/clamd.log # chown clamav:clamav /usr/myapp/clamav/logs/freshclam.log # 启用配置文件 cd etc cp clamd.conf.sample clamd.conf cp freshclam.conf.sample freshclam.conf
编辑clamd.conf并修改以下四项(#Example表示注释掉Example项,并根据自己的路径修改其他特定值):
# Example LogFile /usr/myapp/clamav/logs/clamd.log PidFile /usr/myapp/clamav/logs/clamd.pid DatabaseDirectory /usr/myapp/clamav/db
编辑freshclam.conf并修改以下四个项目(#Example表示注释掉Example项目,并根据您自己的路径修改其他特定值):
# Example DatabaseDirectory /usr/myapp/clamav/db UpdateLogFile /usr/myapp/clamav/logs/freshclam.log PidFile /usr/myapp/clamav/logs/freshclam.pid

完成后,最后进入bin目录,并使用freshclam下载/更新病毒(如果不挂起vpn,它将变慢甚至直接失败。您知道原因):
cd ../bin
./freshclam
3. 3扫描并杀死
# 进行查杀,-r表示遍历子文件夹,-l表示将发现的可疑文件记录到文件中 ./clamscan -r -l scan.log ../../webshell/jsp # 查看扫描结果 cat scan.log
记录中的文件均为可疑文件。 Clamav主要用于系统木马病毒。我的计算机没有现有病毒,而是用webshell代替了它们。 Clamav只认为少数Webshell有问题。

四、使用Rootkit Hunter检测并杀死Rootkit
运行在ring3级别的常规防病毒软件只能检测并杀死ring3级别的木马。 Rookit是ring0级木马。因此,还需要ring0级防病毒程序来检测和杀死rootkit。 Rootkit Hunter是专门用于杀死Rootkit的软件。
项目官方网站:
4. 1安装和卸载
离线rpm软件包的安装类似于clamav的3. 1. 2。在这里,仅介绍yum和手动编译。
4. 1. 1 Networking Yum的安装和卸载
# 配置epel仓库 yum install epel-release # 安装 yum install rkhunter -y # 卸载 yum erase rkhunter -y

4. 1. 2手动编译,安装和卸载
# 创建安装目录 mkdir rkhunter # 下载,替换成此时最新文件链接 wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz # 解压到当前文件夹 tar -zxf rkhunter-1.4.6.tar.gz # 建入解压出的文件夹 cd rkhunter-1.4.6 # 使用installer.sh文件进行安装,--layout custom用于自定义安装路径 ./installer.sh --layout custom /usr/myapp/rkhunter --install # 卸载 ./installer.sh --layout custom /usr/myapp/rkhunter --remove
4. 2扫描并杀死
普通用户可以使用以前的安装,但是必须由root用户执行杀死操作(如果要在ring0上运行,则必须执行此操作)。
# 进入可执行文件所在目录 cd ../rkhunter/bin/ # 执行查杀,前面的命行都可用非root用户执行但查杀必须使用root才行 # 查杀会分几部分进行,以下命令完成一部分后需要回车才进行下一部分 ./rkhunter -c # 可以使用--skip-keypress参数跳过回车 ./rkhunter -c --skip-keypress
查杀输出的六个部分如下:
第一部分,检查系统命令,是检查系统命令,主要是检查系统的二进制文件,因为这些文件最容易受到rootkit的攻击。 “正常”显示表示正常,“警告”表示存在异常,需要引起注意,而“未找到”则表示通常无需理会。 p>
第二部分,检查rootkit,主要检测常见的rootkit程序。绿色的“未找到”表示系统未感染该rootkit。
第三部分,执行附加的rootkit检查,主要是针对某些特殊或附加的检查,例如检测rootkit文件或目录,检测恶意软件以及检测指定的内核模块。
第四部分,检查网络/检查本地主机,主要检查网络,系统端口,系统启动文件,系统用户和组配置,SSH配置,文件系统等。
第五部分主要是检测应用程序版本。 (当我使用它时,它似乎不属于这一部分?)
第六部分,系统检查摘要,实际上是上面的摘要输出。通过此摘要,您可以大致了解服务器目录的安全状态。
在实际操作中,第一部分中出现虚假警报的可能性较高,并且主要关注第六部分输出中的Rootkit检查结果。

参考:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shouji/article-316167-1.html
五角大楼一再扬言
傻帽