测试 35 个 webshell 检测引擎的查杀结果

2024-01-31 11:28

本文主要是介绍测试 35 个 webshell 检测引擎的查杀结果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近发现了一个有意思的 使用分支对抗技术制作的 PHP Webshell 开源项目,共数十个查杀引擎免杀,项目地址:https://github.com/icewolf-sec/PerlinPuzzle-Webshell-PHP

什么是 Webshell

Webshell 是一种恶意脚本,它能让攻击者通过 HTTP 或 HTTPS 通信协议对服务器进行远程管理。 Webshell 由服务端和客户端两部分构成,客户端向服务端发送请求,服务端接收客户端请求后执行相应操作,然后将结果返回给客户端。

Webshell 常用的语言有 PHP、JSP、ASP、ASPX、PERL、Ruby 等,攻击者通过各种手段将 webshell 上传到网站服务器上,然后就可以远程控制目标服务器。

使用 Webshell ,攻击者可以浏览文件、上传、下载、编辑、删除、复制、改名、执行任意命令、操作数据库、反弹 Shell、添加后门、远程控制等一系列恶意活动,严重威胁到网站及服务器的安全。因此,防范和监测 webshell 是网络安全防护的重要一环。

Webshell 对网站和服务器安全有什么威胁?

  1. 未授权访问:攻击者通过 Webshell 可以轻松获取服务器权限,可以查看、修改、删除服务器上的任何数据,包括但不限于代码文件、数据库信息等。
  2. 数据泄露:攻击者可以利用 Webshell 提取服务器上的敏感信息,如用户信息、交易数据、密码等,并可能将这些信息用于非法用途,如身份盗窃、欺诈等。
  3. 攻击传播:攻击者还可以利用服务器的 Webshell 作为跳板,进一步攻击内网中的其他系统或者设备,甚至进行远程控制。 业务中断:另外,服务器一旦被上传 Webshell,可能会导致服务器性能下降,严重时可能导致服务中断,影响正常的业务流程。
  4. 服务器资源滥用:攻击者可利用 Webshell 控制服务器进行不法活动,如发起 DDoS 攻击或者进行加密货币挖矿等,这会导致服务器负载过高,影响业务。

此项目中涉及的绕过点有哪些

  1. 使用刻意编写的变量覆盖漏洞传递参数;
  2. 使用线性代数中的循环群运算原理制作程序锁定器;
  3. 在“柏林噪声”随机数生成算法生成的数组中添加关键危险字符;
  4. 关键危险字符的生成内容由程序解锁器的运算结果决定,若运算错误则无法生成正确字符;
  5. 在程序的执行过程中使用阻断器,若未解锁则阻断函数返回值传递
  6. 使用超长行注释干扰词法引擎。

测试结果

最后一次绕过测试于2024年01月18日进行,共使用了国内外共35个现有的查杀引擎进行测试,成功绕过34个,绕过率97.1% :

  • 绕过成功:
    • 阿里伏魔引擎
    • 安恒云沙箱
    • 大圣云沙箱
    • 河马WebShell查杀
    • 魔盾云沙箱
    • 微步集成引擎共26个(微软、卡巴斯基、IKARUS、Avast、GDATA、安天、360、NANO、瑞星、Sophos、WebShell专杀、MicroAPT、OneStatic、ESET、小红伞、大蜘蛛、AVG、K7、江民、Baidu、TrustBook、熊猫、ClamAV、Baidu-China、OneAV、MicroNonPE)
    • D盾
    • Windows Defender
    • 火绒安全软件
  • 绕过失败:长亭百川WebShell查杀引擎

image.png

有什么方法可以防范 Webshell 的攻击?

  1. 及时打补丁:保持服务器和网站所使用的所有软件包括操作系统、web服务器、CMS(如Wordpress、Drupal等)及其插件等都是最新版本,并及时打上安全补丁。
  2. 权限管理:严格的权限管理也可以有效地防止Webshell攻击,比如限制web目录的写权限,严格控制执行命令的权限等。
  3. 安全开发:在网站开发中,进行安全的编程,避免存在文件上传漏洞,进行有效的输入和输出过滤,减少XSS、SQL注入等常见的安全漏洞。
  4. 安全审计:定期进行代码审计,查找是否有潜在的安全风险,同时对服务器进行安全扫描,看是否有异常情况。
  5. 防火墙设置:设置Web防火墙,有效阻挡诸如文件包含和代码执行的攻击,减少Webshell上传的途径。
  6. 监控检测:部署专业的安全监控系统或接入专业的webshell检测引擎,对服务器和网站进行实时监控,一旦发现Webshell,就能够及时发现并清除。
  7. 数据备份:定期备份重要数据,一旦遭遇攻击,能够确保数据的完整性和可用性。

这篇关于测试 35 个 webshell 检测引擎的查杀结果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/663593

相关文章

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分