ThinkPHP 的老漏洞仍然被攻击者钟情

研究人员发现安全领域出现了令人不安的趋势:攻击者不仅对新披露的漏洞十分感兴趣,对已知的漏洞也丝毫不放过,尽管有些漏洞已经存在了好些年头,攻击者仍然能够通过老漏洞成功完成攻击。

典型的例子就是 ThinkPHP 远程代码执行漏洞 CVE-2018-20062 和 CVE-2019-9082,距今已有六年的时间了,攻击者仍然在使用这些漏洞进行攻击。

研究人员最早在 2023 年 10 月 17 日首次检测到此类攻击,与传统意义上的 POC 不同,攻击者会从控制的 C&C 服务器下载经过混淆的 Shell 脚本。虽然仅仅持续了几天小范围的攻击就销声匿迹,但 2024 年 4 月攻击死灰复燃且规模比之前大得多。

ThinkPHP

ThinkPHP 是中文社区开源的 Web 应用框架,主要用于开发基于 PHP 的 Web 应用。该框架提供了一组库、组件和工具,通过 MVC 架构简化 Web 应用的构建过程。

CVE-2018-20062 与 CVE-2019-9082 是在 ThinkPHP 旧版本中发现的漏洞,不仅是影响 ThinkPHP 还有基于 ThinkPHP 二次开发的 CMS,如 NoneCMS 与 open-source BMS。这两个漏洞都可以让攻击者可以在失陷主机上远程执行代码,从 2018 年被披露已经长达六年。

在野攻击

研究人员发现中国境内的失陷主机在尝试下载名为 public.txt 的文件,恶意文件将以 roeter.php 为名保存在是失陷主机中。从名称上来看,应该是 router 单词拼写错了。

1717742907_6662ad3be6e9ef41436ff.png!small?1717742908269

在野攻击

下载的文件包含一个经过混淆的 WebShell 脚本,该脚本使用 ROT13 算法进行混淆。尽管攻击者通过很长的十六进制字符串进行混淆,但却选择了非常简单的密码(admin)作为 WebShell 的密码。

1717742935_6662ad573eb1bfa52db6a.png!small?1717742935939

混淆的 WebShell

攻击从 Zenlayer 云提供商(ASN 21859)的 IP 地址发起,这些服务器主要位于中国香港。分析人员对部署后门的服务器进行了检查,发现该服务器也感染了相同的 WebShell。

1717742963_6662ad734508babacfbc7.png!small?1717742963448

失陷主机被用作分发服务器

这表明该服务器很可能是攻击基础设施中的一个节点,攻击者通过这种方式来降低运营成本。并且这样也可以让执法部门更难以关停服务器,运营商不会轻易关闭有合法服务的服务器。

Dama WebShell

该 WebShell 具备浏览文件系统、修改文件时间戳等高级功能,攻击者借此实现混淆的功能。东欧和西欧的网络犯罪分子经常使用英文 WebShell(如 WSO-GN WebShell),但 Dama WebShell 的界面语言是繁体中文。

1717743007_6662ad9fa8ccf0bcc8d79.png!small?1717743008979

用户界面

该 WebShell 可以将文件上传到服务器来收集核心的系统数据,如操作系统版本与 PHP 信息,这可以帮助攻击者实施提权漏洞攻击。

1717743037_6662adbd848f742c430fb.png!small?1717743037892

与数据库进行交互

攻击者会利用包括端口扫描等功能对数据库和服务器上的数据进行访问。Dama WebShell 还提供了多种提权方法,如绕过已被禁用的敏感 PHP 函数进行沙盒逃逸最终执行 Shell 命令。

Dama WebShell 还可以利用 Windows 任务调度功能配置 WMI 添加高权限用户。尽管配备了用于直接解释执行代码的 PHP 解释器,但 Dama WebShell 并不支持通过命令行执行系统命令。

总结

尽管攻击者已经了解这些漏洞很久很久,但仍然在继续使用并且能够攻击成功。这凸显了组织在识别易受攻击资产和升级补丁管理上,持续面临巨大挑战。

研究人员发现并非所有的受害者都使用了 ThinkPHP,攻击者可能不加区分进行了广泛的攻击。攻击者一方面对恶意脚本进行了混淆处理,另一方面也有很低级技术的表现,这二者十分割裂。当然,攻击技术先进并不代表着背后的攻击者也很熟练。

参考来源

Akamai

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

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

相关文章

轨迹优化 | 图解欧氏距离场与梯度场算法(附ROS C++/Python实现)

目录 0 专栏介绍1 什么是距离场?2 欧氏距离场计算原理3 双线性插值与欧式梯度场4 仿真实现4.1 ROS C实现4.2 Python实现 0 专栏介绍 🔥课程设计、毕业设计、创新竞赛、学术研究必备!本专栏涉及更高阶的运动规划算法实战:曲线生成…

[Linux] Linux三剑客使用手册

一 作用 三者的功能都是处理文本,但侧重点各不相同。 grep更适合单纯的查找或匹配文本sed更适合编辑匹配到的文本awk功能最强大,但也最复杂。awk更适合格式化文本,对文本进行较复杂格式处理。 二 grep 2.1 命令格式 grep [option] patter…

深度学习之激活函数

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。 1. 为什么需要激活…

【odoo | SQL】odoo使用sql语句操作数据库

概要 Odoo的SQL指的是在Odoo框架内使用SQL语句直接操作数据库。这些操作通常是通过Odoo提供的数据库游标(self.env.cr)来执行的。虽然Odoo主要鼓励使用其ORM(对象关系映射)来进行数据库操作,因为ORM更安全、易维护且与…

深入解析:数据库连接池的必要性与优化策略

引言 在现代的应用程序架构中,数据库连接池已成为提升性能和资源管理的关键组件。想象一下,如果没有连接池,每次用户请求都需建立新的数据库连接,这将是多么低效且资源浪费的场景。本文将深入探讨数据库连接池的必要性&#xff0…

configs

configs 部分 python import os # 导入os模块,用于系统级操作 emotion ["Valence"] # 定义情绪列表,只包含情绪维度"Valence" # 配置参数字典 config { "extract_class_label": 1, # 是否提取类别标签 &q…

鸿蒙开发:【线程模型】

线程模型 线程类型 Stage模型下的线程主要有如下三类: 主线程 执行UI绘制。管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消…

数据持久层与 SQL 注入

使用 ORM(Object/Relation Mapping)框架对 SQL 注入是有积极意义的。我们知道对抗 SQL 注入的最佳方式就是使用“预编译绑定变量”。在实际解决 SQL 注入时,还有一个难点就 是应用复杂后,代码数量庞大,难以把可能存在 …

示例:WPF中应用MarkupExtention自定义IValueConverter

一、目的:应用MarkupExtention定义IValueConverter,使得应用起来更简单和高效 二、实现 public abstract class MarkupValueConverterBase : MarkupExtension, IValueConverter{public abstract object Convert(object value, Type targetType, object …

数字化转型对企业有什么价值?

数字化转型对企业有什么价值? 1. 信息共享 很多业务设计和管理规划,通常需要综合多个业务部门和业务专题的数据。 如果企业的数据和信息在位置分布上非常分散,就很难充分利用企业积累的数据资源,并将其用于有效的管理决策和业务…

《java 编程基础》试题

2023-2024 学年第二学期《java 编程基础》试题 系 班 姓名 学号 (说明:本试卷共五大题,共 2 页,满分100分,答题时间90分钟。) 开卷考试:要求书写答案在纸上。 一、单…

零基础直接上手java跨平台桌面程序,使用javafx(七)用户操作界面探讨,这个系列结束

GUI&#xff0c;我们还是喜欢web。如果javafx有像wpf的WebView2差不多的功能&#xff0c;我们就开心了scene builder中拖出一个webview&#xff0c;然后再回到代码中。发现<?import javafx.scene.web.*?>是红色的&#xff0c;我们缺少配置。于是在pom.xml中添加JavaFX依…

Spring (63)CORS,如何在Spring中配置它

CORS简介 CORS&#xff08;Cross-Origin Resource Sharing&#xff0c;跨源资源共享&#xff09;是一种机制&#xff0c;它使用额外的HTTP头来告诉浏览器让运行在一个origin&#xff08;源&#xff09;上的Web应用被准许访问来自不同源服务器上的指定资源。当一个资源从与该资…

Google ghOSt 调度器分析(2)

调度器分析 *ghOSt* 调度干预过程1. 内核相关介绍2. 干预过程ghOSt 调度干预过程 1. 内核相关介绍 下面先来介绍以下 ghost 调度类相关的内容。 ghost 调度类 ghost 调度器在内核中新建了两个调度类: ghost_agent 调度类 ghost 调度类 ghost 调度类与其他调度类的优先级关系…

Nodejs 第七十七章(MQ高级)

MQ介绍和基本使用在75章介绍过了&#xff0c;不再重复 MQ高级用法-延时消息 什么是延时消息? Producer 将消息发送到 MQ 服务端&#xff0c;但并不期望这条消息立马投递&#xff0c;而是延迟一定时间后才投递到 Consumer 进行消费&#xff0c;该消息即延时消息 插件安装 R…

【康复学习--LeetCode每日一题】521. 最长特殊序列 Ⅰ

题目&#xff1a; 给你两个字符串 a 和 b&#xff0c;请返回 这两个字符串中 最长的特殊序列 的长度。如果不存在&#xff0c;则返回 -1 。 「最长特殊序列」 定义如下&#xff1a;该序列为 某字符串独有的最长 子序列 &#xff08;即不能是其他字符串的子序列&#xff09; 。…

[C++] 从零实现一个ping服务

&#x1f4bb;文章目录 前言ICMP概念报文格式 Ping服务实现系统调用函数具体实现运行测试 总结 前言 ping命令&#xff0c;因为其简单、易用等特点&#xff0c;几乎所有的操作系统都内置了一个ping命令。如果你是一名C初学者&#xff0c;对网络编程、系统编程有所了解&#xff…

徐州BGP服务器租用的好处有哪些?

BGP是一种路径矢量协议&#xff0c;能够维护不同主机、网络和网关的路由器的路径&#xff0c;并且可以根据BGP做出路由决定&#xff0c;将电信和联通等线路通过BGP互连技术&#xff0c;把不同的线路融合在一起。其中BGP服务器则是一种用于不同主机和互联网之间传输数据和信息的…

ijkplayer编译 android版本

ijkplayer源码下载地址如下&#xff1a;https://github.com/bilibili/ijkplayer 下载代码&#xff0c;直接执行如下命令即可&#xff1a; $cd /data/project/ijkplayer/ $git clone https://github.com/bilibili/ijkplayer.git $git checkout -B latest k0.8.8 1 环境安装 …

学会python——读取大文本文件(python实例六)

目录 1、认识Python 2、环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3、读取大文本文件 3.1 代码构思 3.2 代码示例 3.3 运行结果 4、总结 1、认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强…