最近发现了一个有意思的 使用分支对抗技术制作的 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 对网站和服务器安全有什么威胁?
- 未授权访问:攻击者通过 Webshell 可以轻松获取服务器权限,可以查看、修改、删除服务器上的任何数据,包括但不限于代码文件、数据库信息等。
- 数据泄露:攻击者可以利用 Webshell 提取服务器上的敏感信息,如用户信息、交易数据、密码等,并可能将这些信息用于非法用途,如身份盗窃、欺诈等。
- 攻击传播:攻击者还可以利用服务器的 Webshell 作为跳板,进一步攻击内网中的其他系统或者设备,甚至进行远程控制。 业务中断:另外,服务器一旦被上传 Webshell,可能会导致服务器性能下降,严重时可能导致服务中断,影响正常的业务流程。
- 服务器资源滥用:攻击者可利用 Webshell 控制服务器进行不法活动,如发起 DDoS 攻击或者进行加密货币挖矿等,这会导致服务器负载过高,影响业务。
此项目中涉及的绕过点有哪些
- 使用刻意编写的变量覆盖漏洞传递参数;
- 使用线性代数中的循环群运算原理制作程序锁定器;
- 在“柏林噪声”随机数生成算法生成的数组中添加关键危险字符;
- 关键危险字符的生成内容由程序解锁器的运算结果决定,若运算错误则无法生成正确字符;
- 在程序的执行过程中使用阻断器,若未解锁则阻断函数返回值传递
- 使用超长行注释干扰词法引擎。
测试结果
最后一次绕过测试于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查杀引擎
有什么方法可以防范 Webshell 的攻击?
- 及时打补丁:保持服务器和网站所使用的所有软件包括操作系统、web服务器、CMS(如Wordpress、Drupal等)及其插件等都是最新版本,并及时打上安全补丁。
- 权限管理:严格的权限管理也可以有效地防止Webshell攻击,比如限制web目录的写权限,严格控制执行命令的权限等。
- 安全开发:在网站开发中,进行安全的编程,避免存在文件上传漏洞,进行有效的输入和输出过滤,减少XSS、SQL注入等常见的安全漏洞。
- 安全审计:定期进行代码审计,查找是否有潜在的安全风险,同时对服务器进行安全扫描,看是否有异常情况。
- 防火墙设置:设置Web防火墙,有效阻挡诸如文件包含和代码执行的攻击,减少Webshell上传的途径。
- 监控检测:部署专业的安全监控系统或接入专业的webshell检测引擎,对服务器和网站进行实时监控,一旦发现Webshell,就能够及时发现并清除。
- 数据备份:定期备份重要数据,一旦遭遇攻击,能够确保数据的完整性和可用性。