Apache 漏洞——服务器任意命令执行漏洞



                  SINE安全态势发现最近2017年11月份,apache 环境爆出高危的反序列化漏洞,版本

号是Apache James 3.0.1 JMX,漏洞编号是CVE-2017-12628,apache官方具体
介绍如下:该

漏洞被攻击者可以用来执行任意管理员的命令,并可以提权到管理员
权限,导致服务器被入侵,

被攻击。因为apache JMX使用了RMI,并且RMI对象可以
远程连接访问,即使它们绑定到了本

地主机,因为Java将对象引用绑定到
了“0.0.0.0”。BaRMIe利用本地端口转发来攻击绑定到本地

或内部IP地址的漏洞
 
 
Apache漏洞详情
 
 
首先我们在虚拟机的情况下,搭建apache环境,搭建apache 3.0.0版本,搭建完成后,我们看到

首先要去注意一下包含3.2.1.jar的所有文件,也可以立即生产一个
含有该库的POC提权工具,方

便我们能尽快的通过apache 反序列化漏洞进行任意命
令的执行。启动我们apache 服务器,用

nmap工具监测并监听java的端口。


 
 
在虚拟机上运行nmap命令,显示Apache的服务,注册服务绑定到了127.0.0.1:9999端口上,我

将BaRMIe复制到虚拟机来枚举这个RMI注册服务,发现外部的RMI服务实
际上是JMX对象的RMI

对象服务,如下图所示:Sine安全公司是一家专注于:服务器
安全、网站安全、网站安全检测、

网站漏洞修复,渗透测试,安全服务于一体的网络
安全服务提供商。

 


 
 
使用BaRMIe的攻击模式与通用JMX漏洞和Commons Collections 3.2.1,可以利用此服务来执行

任意的管理员命令,导致本地权限升级。除此之外,还发现一个情况,
如果apache 服务器使用

老版本的Java环境小于等于6u131,7u121或8u112等等版本
也很容易受到apache 漏洞的攻击。
 

 
apache漏洞利用
 
 
apache官方发布安全通告,证明这是一个本地提管理员权限的一个漏洞,但是鉴于apache JMX

对象是在表面通过访问来爆出的漏洞,大胆的判定可以通过远程连接来
利用。在我继续远程利用

之前,我想说明这个漏洞是可以远程利用的,但是远程攻击涉及
到基于网络的暴力攻击。为了快

速实现概念证明,我在虚拟机上使用tcpdump来捕
获到JMX对象服务的流量,同时运行BaRMIe

JMX漏洞利用工具执行命令“touch 
fooobaaar”。如下图:Sine安全公司是一家专注于:服务器

安全、网站安全、网
站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。



 
 
 
从虚拟机上进行远程连接并发送攻击数据,可以成功的向apache服务器发起攻击,并回显漏洞的

参数,导致可以远程执行任意命令,如下动态图所示:
重启Apache James服务后,这个漏洞的

POC远程发送数据竟然发送不成功。多次发
送攻击的数据包来进行安全分析,并进行一些安全测

试,发现可以降低漏
洞利用的第三个数据包的一些差异。



以下是该数据包的前27个字节:
 
50aced00057722 9c4cdbcfdd205cf8 8304129e 0000015f43 47bba0
 
以蓝色突出显示的部分(47bba0)是动态变化的,但是它们的值可以从服务器先前返回的响应数

据包中提取出来。以橙色突出显示的部分(9c4cdbcfdd205cf8 )是
当服务器启动时生成的RMI对

象标识符。这个值来自RMI注册服务,它仅在服务器本
地进行监听端口。如果攻击者可以强制或

以其他方式来获取到这个8字节的值,也
可以执行远程命令。
分享: