MSRSCI.jar远控组件分析:加密机制、插件加载与内网穿透行为揭秘
字数 2118 2025-12-05 12:10:36

MSRSCI.jar远控组件分析教学文档

1. 组件基础信息

1.1 文件结构分析

目标文件夹WinApSvc包含以下关键文件:

WinApSvc/
├── Java/           # 自带Java运行环境
├── plugins/        # 插件和数据存储目录
│   ├── data/       # 数据库文件
│   └── logs/       # 日志文件
├── MSRSCI.exe      # 主程序入口
├── MSRSCI.jar      # 核心恶意程序(加密)
├── MSRSCI.xml      # 服务配置文件
└── start-svc.exe   # 服务启动器

1.2 核心文件功能说明

  • MSRSCI.jar:加密的主程序,包含远控核心逻辑
  • start-svc.exe:jar文件启动器,负责解密和加载
  • MSRSCI.xml:Windows服务配置,定义启动参数

2. 加密机制分析

2.1 加密保护机制

MSRSCI.jar使用XJar加密技术保护关键class文件:

  • 加密算法:AES/CBC/PKCS5Padding
  • 密钥长度:128位
  • IV长度:128位
  • 密码:ed1ee71da4a949e580c3f344aba5ab2d

2.2 解密参数获取方法

方法一:动态调试start-svc.exe

  1. 使用IDA加载start-svc.exe
  2. 在main_main函数中设置断点
  3. 分析os_exec_Command()调用前的参数构造
  4. 获取完整启动命令:
Java\jre\bin\java -jar MSRSCI.jar AES/CBC/PKCS5Padding 128 128 ed1ee71da4a949e580c3f344aba5ab2d

方法二:内存dump分析

  1. 使用VisualVM连接运行中的Java进程
  2. 执行Heap Dump操作
  3. 搜索XjarClassLoader对象
  4. 提取key和iv值:
raw_key = [-126, 123, -47, -59, 15, -126, 41, -52, 46, 122, 61, 126, 41, -74, 3, -65]
raw_iv = [54, -26, -90, 32, 90, -96, -13, 41, -102, 86, 61, 94, -24, 103, 50, 97]

2.3 解密脚本实现

import zipfile
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad

def decrypt_xjar(data: bytes, key: bytes, iv: bytes):
    cipher = AES.new(key, AES.MODE_CBC, iv)
    if len(data) % 16 != 0:
        data += b"\x00" * (16 - len(data) % 16)
    dec = cipher.decrypt(data)
    try:
        dec = unpad(dec, 16)
    except:
        pass
    return dec

3. 核心功能分析

3.1 插件加载机制

3.1.1 PluginUtil类功能

  • 从远程URL下载jar插件文件
  • 管理插件版本和依赖
  • 提供插件删除和清理功能
  • 保留关键数据文件(version.txt、agent.mv.db)

3.1.2 插件配置文件解密

version.txt使用AES/ECB加密,密钥硬编码为:68ddcdccb31b4354940eb1a454947e0c

解密脚本:

import base64
from Crypto.Cipher import AES
import hashlib

class YamlDecryptor:
    def __init__(self):
        self.AES_KEY = "68ddcdccb31b4354940eb1a454947e0c"
    
    def create_secret_key(self):
        sha1 = hashlib.sha1(self.AES_KEY.encode('utf-8')).digest()
        return sha1[:16]
    
    def decrypt(self, ciphertext):
        encrypted_bytes = base64.b64decode(ciphertext)
        cipher = AES.new(self.create_secret_key(), AES.MODE_ECB)
        decrypted_bytes = unpad(cipher.decrypt(encrypted_bytes), AES.block_size)
        return decrypted_bytes.decode('utf-8')

3.1.3 配置文件内容示例

{
    "isNewVersion": "false",
    "serverPath": "C:\\ClientManager_PSC",
    "licenseKey": "187c5b35c3f44eb3b2b1ff9047735ef3",
    "servers": "[{\"serverIp\":\"8.140.226.xxx\",\"enable\":true}]",
    "upgradeUrl": "http://8.140.226.xxx:9010/version/update",
    "overTime": "2025-11-02 13:00:00",
    "jarLibs": "[\"proxy-agent.jar\",\"lib-agent.jar\",\"xjar-pscp.exe\"]",
    "version": "2.1.0"
}

3.2 数据库操作分析

3.2.1 数据库连接信息

  • 数据库文件:plugins/data/agent.mv.db
  • 数据库类型:H2 Database
  • 用户名:LAUNCHER
  • 密码:通过SQLiteHelper类动态生成

3.2.2 关键数据表结构

配置表包含以下字段:

  • serverIp:C2服务器地址
  • licenseKey:许可证密钥
  • jarLibs:插件库列表
  • upgradeUrl:更新服务器地址
  • overTime:过期时间
  • version:程序版本

3.3 远程控制功能

3.3.1 LauncherController类

提供完整的远程管理接口:

  • 插件管理(安装、卸载、更新)
  • 脚本管理(备份、同步、恢复)
  • 配置管理(读取、修改、保存)
  • 代理连接管理
  • 系统清理和升级
  • 文件操作功能

3.3.2 CmdChannelHandler类

命令分发中心,处理以下指令类型:

  • 心跳检测和维护
  • 任务下发和执行
  • 连接状态管理
  • 控制消息传递

3.3.3 PscpService类

核心远程控制接口,具备以下能力:

  • 远程数据库查询和修改
  • 远程文件操作(浏览、删除、上传、下载)
  • PowerShell命令执行
  • 压缩包解压操作

3.4 内网穿透功能

3.4.1 基于Neutrino Proxy的实现

MSRSCI.jar集成了开源的Neutrino Proxy项目,提供:

  • TCP/UDP端口转发
  • 内网服务暴露
  • 反向代理功能
  • 隧道加密通信

3.4.2 代理连接建立流程

  1. 通过ProxyManager.add(ip, licenseKey)建立连接
  2. 创建加密通信隧道
  3. 维持长连接心跳
  4. 支持多服务器负载均衡

4. 行为特征分析

4.1 网络通信行为

  • 定期连接C2服务器(8.140.226.xxx:9010)
  • 使用HTTP协议进行插件更新
  • 建立持久的代理隧道连接
  • 支持服务器地址动态切换

4.2 文件系统操作

  • 在C:\ClientManager_PSC目录存储插件和备份
  • 维护版本控制文件version.txt
  • 使用数据库文件持久化配置
  • 支持远程文件操作

4.3 进程和服务行为

  • 注册为Windows系统服务
  • 使用start-svc.exe作为服务启动器
  • 自带Java运行环境避免依赖
  • 支持服务自更新和重启

5. 检测和防护建议

5.1 检测指标

  1. 文件系统指标

    • WinApSvc目录结构
    • C:\ClientManager_PSC目录存在
    • version.txt加密配置文件
  2. 网络通信指标

    • 与8.140.226.xxx:9010的通信
    • 异常的代理隧道连接
    • 定期的心跳数据包
  3. 进程行为指标

    • start-svc.exe服务进程
    • 异常的Java进程参数
    • 服务描述伪装

5.2 防护措施

  1. 监控可疑的目录创建行为
  2. 检测异常的Java进程启动参数
  3. 阻断与已知C2服务器的通信
  4. 加强服务注册表的监控

6. 技术总结

MSRSCI.jar是一个高度专业化的远控程序,具有以下技术特点:

  1. 多层加密保护:使用XJar加密关键class文件
  2. 模块化设计:支持插件动态加载和更新
  3. 持久化机制:通过Windows服务实现自启动
  4. 网络穿透能力:集成专业的内网穿透组件
  5. 隐蔽通信:使用加密隧道和心跳维持连接

该组件体现了现代恶意软件的高度专业化特征,结合了加密保护、插件化架构、持久化驻留和网络穿透等先进技术。

MSRSCI.jar远控组件分析教学文档 1. 组件基础信息 1.1 文件结构分析 目标文件夹WinApSvc包含以下关键文件: 1.2 核心文件功能说明 MSRSCI.jar :加密的主程序,包含远控核心逻辑 start-svc.exe :jar文件启动器,负责解密和加载 MSRSCI.xml :Windows服务配置,定义启动参数 2. 加密机制分析 2.1 加密保护机制 MSRSCI.jar使用XJar加密技术保护关键class文件: 加密算法:AES/CBC/PKCS5Padding 密钥长度:128位 IV长度:128位 密码: ed1ee71da4a949e580c3f344aba5ab2d 2.2 解密参数获取方法 方法一:动态调试start-svc.exe 使用IDA加载start-svc.exe 在main_ main函数中设置断点 分析os_ exec_ Command()调用前的参数构造 获取完整启动命令: 方法二:内存dump分析 使用VisualVM连接运行中的Java进程 执行Heap Dump操作 搜索XjarClassLoader对象 提取key和iv值: 2.3 解密脚本实现 3. 核心功能分析 3.1 插件加载机制 3.1.1 PluginUtil类功能 从远程URL下载jar插件文件 管理插件版本和依赖 提供插件删除和清理功能 保留关键数据文件(version.txt、agent.mv.db) 3.1.2 插件配置文件解密 version.txt使用AES/ECB加密,密钥硬编码为: 68ddcdccb31b4354940eb1a454947e0c 解密脚本: 3.1.3 配置文件内容示例 3.2 数据库操作分析 3.2.1 数据库连接信息 数据库文件: plugins/data/agent.mv.db 数据库类型:H2 Database 用户名:LAUNCHER 密码:通过SQLiteHelper类动态生成 3.2.2 关键数据表结构 配置表包含以下字段: serverIp:C2服务器地址 licenseKey:许可证密钥 jarLibs:插件库列表 upgradeUrl:更新服务器地址 overTime:过期时间 version:程序版本 3.3 远程控制功能 3.3.1 LauncherController类 提供完整的远程管理接口: 插件管理(安装、卸载、更新) 脚本管理(备份、同步、恢复) 配置管理(读取、修改、保存) 代理连接管理 系统清理和升级 文件操作功能 3.3.2 CmdChannelHandler类 命令分发中心,处理以下指令类型: 心跳检测和维护 任务下发和执行 连接状态管理 控制消息传递 3.3.3 PscpService类 核心远程控制接口,具备以下能力: 远程数据库查询和修改 远程文件操作(浏览、删除、上传、下载) PowerShell命令执行 压缩包解压操作 3.4 内网穿透功能 3.4.1 基于Neutrino Proxy的实现 MSRSCI.jar集成了开源的Neutrino Proxy项目,提供: TCP/UDP端口转发 内网服务暴露 反向代理功能 隧道加密通信 3.4.2 代理连接建立流程 通过ProxyManager.add(ip, licenseKey)建立连接 创建加密通信隧道 维持长连接心跳 支持多服务器负载均衡 4. 行为特征分析 4.1 网络通信行为 定期连接C2服务器(8.140.226.xxx:9010) 使用HTTP协议进行插件更新 建立持久的代理隧道连接 支持服务器地址动态切换 4.2 文件系统操作 在C:\ClientManager_ PSC目录存储插件和备份 维护版本控制文件version.txt 使用数据库文件持久化配置 支持远程文件操作 4.3 进程和服务行为 注册为Windows系统服务 使用start-svc.exe作为服务启动器 自带Java运行环境避免依赖 支持服务自更新和重启 5. 检测和防护建议 5.1 检测指标 文件系统指标 WinApSvc目录结构 C:\ClientManager_ PSC目录存在 version.txt加密配置文件 网络通信指标 与8.140.226.xxx:9010的通信 异常的代理隧道连接 定期的心跳数据包 进程行为指标 start-svc.exe服务进程 异常的Java进程参数 服务描述伪装 5.2 防护措施 监控可疑的目录创建行为 检测异常的Java进程启动参数 阻断与已知C2服务器的通信 加强服务注册表的监控 6. 技术总结 MSRSCI.jar是一个高度专业化的远控程序,具有以下技术特点: 多层加密保护 :使用XJar加密关键class文件 模块化设计 :支持插件动态加载和更新 持久化机制 :通过Windows服务实现自启动 网络穿透能力 :集成专业的内网穿透组件 隐蔽通信 :使用加密隧道和心跳维持连接 该组件体现了现代恶意软件的高度专业化特征,结合了加密保护、插件化架构、持久化驻留和网络穿透等先进技术。