websphere jndi漏洞分析及exp编写中的坑

懒癌发作,不写了,主要是gadget中对rmi factory利用的理解。参考下边两文足够。

1
2
https://mp.weixin.qq.com/s/spDHOaFh_0zxXAD4yPGejQ
https://mp.weixin.qq.com/s/VfqoyOaLSri7rDAB2BMlxg

需要提的是过程中的坑。

坑1-lib的问题

首先是各种类找不到,idea中lib加全去找符号表时,很多情况会找到两个类,需要根据orb的实现找到对的类,否则反射就改崩了,还有后边rmi reference的factory name和stub ref也可能找错。

坑2-ssl的问题

Error getting WsnNameService properties这个错估计每个人都遇到过。
在调试过程中,我的解决办法是先不去管他,去console把security -> global security -> iiop security -> ssl改成tcpip,然后重启虚拟机就可以了。

但是这个问题只能帮助你调试,真正环境中ssl都是开的,这时候你就懵逼了。。
这里用了@l1nk3r师傅给的ssl-solved-jar,我只能说看不懂。。一堆硬编码hex。。然后rmi打就完了。。膜。。

更新:后来@r4v3zn师傅更新的文章里解决了这位问题,@Litch1师傅也有自己的解决方式,懒得改了233

坑3-host的问题

各种java unknown host,本质原因跟了一下没太搞懂为啥把websphere里的host发到了物理机里,这里在物理机改一下对应host到虚拟机ip就行。
还可能报端口的错误,重启解决。

坑4-jndi问题

rmi server可能这样,照着改一下就行

1
https://stackoverflow.com/questions/15685686/java-rmi-connectexception-connection-refused-to-host-127-0-1-1

TODO

这修复方式,不gadgetinspector挖一波都对不起他。
-w882

然而下图原因,需要先去看看websphere的classloader,有空跟一下。
-w890

补充

看过了classloader,很麻烦

Proudly powered by Hexo and Theme by Hacker
© 2020 LFY