跳到主要内容

mRemoteNG 连接配置解密

mRemoteNG 是 Windows 上常用的远程连接聚合器,把 SSH、RDP 等连接与凭据集中存放在一个 XML 配置里。通过 LFI、路径穿越读到这个文件,就可能一次性恢复多台主机的登录凭据。

仅限授权环境

配置解密与凭据重放仅用于授权评估与取证环境,解出的凭据不得扩散。


定位配置文件

配置默认存于:

%APPDATA%\mRemoteNG\confCons.xml

通过 LFI/路径穿越读 Windows 文件时,高价值目标包括:

文件价值
%APPDATA%\mRemoteNG\confCons.xml连接与凭据主体
%APPDATA%\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txtPowerShell 历史,能看出运维装过 mRemoteNG

读取手法见 LFI 任意文件读取与运行时信息收集


配置结构

每个连接对应一个 Node 节点:

<Node ... Username="..." Password="<base64密文>" Protected="<base64>" />

Protected 字段解密后为 ThisIsNotProtected 时,表示该节点没有额外加密,字段按常规方式处理即可。


加密机制

要素
主密码默认 mR3m,大量环境从未修改
密钥派生PBKDF2-HMAC-SHA1,1000 轮
块加密AES-256-CBC(旧版)或 AES-256-GCM(新版)

GCM 的坑:salt 必须作为 AAD 参与认证。漏掉会报 MAC check failed,很容易误判成"主密码不对"。


解密脚本要点

  1. 先按 GCM 解(salt 作为 AAD),失败再回退 CBC。
  2. 确认默认密码是否生效:解出 ThisIsNotProtected 即默认密码 mR3m 有效。
  3. 解出各节点的 Username / Password 字段。

凭据重放

解出的 Username / Password 组合可直接重放到 SMB、WinRM、RDP 等远程管理协议,验证哪些连接配置里是真实有效凭据。


复核要点

  • 看到 MAC check failed 先检查 AAD 是否带上,再怀疑密码。
  • 混用新旧版本配置时,注意 CBC / GCM 块加密模式差异。
  • 解密成功的标志是拿到可读的 Username / Password,而不是仅仅不报错。

防御建议

  1. 修改默认主密码 mR3m,并保证足够长度。
  2. 收紧配置文件 ACL,限制 %APPDATA%\mRemoteNG 的读取范围。
  3. 凭据不落盘:使用 DPAPI 或外部凭据库保存连接凭据。
  4. 对含凭据的配置文件启用审计与异常读取告警。