Code Monkey home page Code Monkey logo

ysomap's Introduction

YSOMAP

Platforms Java version License

Ysomap is A helpful Java Deserialization exploit framework based on ysoserial

#1 起因

在实际分析ysoserial的利用链时,有时候会觉得框架写的太死,有以下几个缺点:

  1. 同一个利用链如果想改变一下最后的利用效果,如命令执行改成代码执行,我们需要改写这个利用链或者是重新增加一个利用链。这时,我们其实可以看到利用链的前半部分是不变的,变的只是后续的利用效果。
  2. ysoserial仅实现了常规的序列化利用链,对于类似JSON格式的序列化利用链,以当前的这个框架扩展起来会比较麻烦

所以萌生了开发一个更加灵活的框架来扩展反序列化利用链,也就是当前这个试验品ysomap。

PS:YSOMAP项目为另一个项目的子项目,后续将开源该项目,敬请期待......

#2 原理

我将利用链切分成了两个部分payloadbullet

  1. payload:指代利用链的前序部分
  2. bullet:指代最终利用链可达成的效果

实际案例分析

CommonsCollection1和3,在分析时我们可以看到实际1和3的区别在于1使用的是InvokerTransformer,而3使用的是templatesImpl的方式。那么提取相同的前序payload部分,我们只需写两个不同的bullet即可。而且这两个bullet也同样能被用在其他的payload上。

实际还有就是我在写RMIRegistryExploit时,也有这种可将不变部分重用的地方,而无需2,3之类的出现。

#3 使用方法

生成

使用mvn clean package -DskipTests

生成的jar位于cli/target/ysomap-cli-0.0.1-SNAPSHOT-all.jar

执行java -jar ysomap-0.0.1-SNAPSHOT-all.jar

基础使用方法

参见YSOMAP食用指北

#4 当前可用列表

DONE

  • 支持CommonsCollections系列payload
  • 支持执行效果bullet:远程jar载入、命令执行、代码执行、发起jndi效果、tomcat内存马、延时判断、文件写入
  • 支持现有RMI系列攻击包 原理1 原理2 原理3
  • 支持现有LDAP系列攻击包 原理
  • 支持HTTP服务动态挂载恶意的class文件或jar文件
  • 支持URLDNS
  • 支持现有JMX系列攻击包 原理
  • 支持fastjson JdbcRowSetImpl、TemplatesImpl gadget 原理
  • 支持现有XStream系列payload包 原理

TODO

  • 支持weblogic系列攻击包
  • 支持websphere系列攻击包

#5 免责申明

未经授权许可使用YSOMAP攻击目标是非法的。 本程序应仅用于授权的安全测试与研究目的。

#6 致谢

@ysoserial:https://github.com/frohoff/ysoserial

ysomap's People

Contributors

lalajun avatar wh1t3p1g avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.