参考:https://devco.re/blog/2020/09/12/how-I-hacked-Facebook-again-unauthenticated-RCE-on-MobileIron-MDM/
- 发现Facebook 使用 MobileIron 當作他們的 MDM 解決方案。虽然官网没找到,但是通过google搜索到了开发商测试用的rpm包。
通过分析代码,发现对外开放端口如下:
- 443 為使用者裝置註冊介面
- 8443 為設備管理介面
- 9997 為一個 MobileIron 私有的裝置同步協定 (MI Protocol)
-
Apache通过反向代理Tomcat的web应用,而web应用基于Spring MVC开发。
-
绕过Apache的rewrite ruls:
https://mobileiron/mifs/.;/services/someService
-
利用Hessian 反序列化的Spring AOP的JNDI注入这个链。
-
绕过JEP 290对远程JNDI注入的限制(依赖classpath中的gadget)。
-
正准备好了JNDI注入的攻击方式的时候,发现不支持JNDI外联请求。
-
最后利用低版本的Groovy依赖进行Hessian 反序列漏洞利用了。