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的端口。
首先要去注意一下包含3.2.1.jar的所有文件,也可以立即生产一个含有该库的POC提权工具,方
便我们能尽快的通过apache 反序列化漏洞进行任意命令的执行。启动我们apache 服务器,用
nmap工具监测并监听java的端口。
在虚拟机上运行nmap命令,显示Apache的服务,注册服务绑定到了127.0.0.1:9999端口上,我
将BaRMIe复制到虚拟机来枚举这个RMI注册服务,发现外部的RMI服务实际上是JMX对象的RMI
对象服务,如下图所示:Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、
网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
将BaRMIe复制到虚拟机来枚举这个RMI注册服务,发现外部的RMI服务实际上是JMX对象的RMI
对象服务,如下图所示:Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、
网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
使用BaRMIe的攻击模式与通用JMX漏洞和Commons Collections 3.2.1,可以利用此服务来执行
任意的管理员命令,导致本地权限升级。除此之外,还发现一个情况,如果apache 服务器使用
老版本的Java环境小于等于6u131,7u121或8u112等等版本也很容易受到apache 漏洞的攻击。
任意的管理员命令,导致本地权限升级。除此之外,还发现一个情况,如果apache 服务器使用
老版本的Java环境小于等于6u131,7u121或8u112等等版本也很容易受到apache 漏洞的攻击。
apache漏洞利用
apache官方发布安全通告,证明这是一个本地提管理员权限的一个漏洞,但是鉴于apache JMX
对象是在表面通过访问来爆出的漏洞,大胆的判定可以通过远程连接来利用。在我继续远程利用
之前,我想说明这个漏洞是可以远程利用的,但是远程攻击涉及到基于网络的暴力攻击。为了快
速实现概念证明,我在虚拟机上使用tcpdump来捕获到JMX对象服务的流量,同时运行BaRMIe
JMX漏洞利用工具执行命令“touch fooobaaar”。如下图:Sine安全公司是一家专注于:服务器
安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
对象是在表面通过访问来爆出的漏洞,大胆的判定可以通过远程连接来利用。在我继续远程利用
之前,我想说明这个漏洞是可以远程利用的,但是远程攻击涉及到基于网络的暴力攻击。为了快
速实现概念证明,我在虚拟机上使用tcpdump来捕获到JMX对象服务的流量,同时运行BaRMIe
JMX漏洞利用工具执行命令“touch fooobaaar”。如下图:Sine安全公司是一家专注于:服务器
安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
从虚拟机上进行远程连接并发送攻击数据,可以成功的向apache服务器发起攻击,并回显漏洞的
参数,导致可以远程执行任意命令,如下动态图所示:重启Apache James服务后,这个漏洞的
POC远程发送数据竟然发送不成功。多次发送攻击的数据包来进行安全分析,并进行一些安全测
试,发现可以降低漏洞利用的第三个数据包的一些差异。
以下是该数据包的前27个字节:
参数,导致可以远程执行任意命令,如下动态图所示:重启Apache James服务后,这个漏洞的
POC远程发送数据竟然发送不成功。多次发送攻击的数据包来进行安全分析,并进行一些安全测
试,发现可以降低漏洞利用的第三个数据包的一些差异。
以下是该数据包的前27个字节:
50aced00057722 9c4cdbcfdd205cf8 8304129e 0000015f43 47bba0
以蓝色突出显示的部分(47bba0)是动态变化的,但是它们的值可以从服务器先前返回的响应数
据包中提取出来。以橙色突出显示的部分(9c4cdbcfdd205cf8 )是当服务器启动时生成的RMI对
象标识符。这个值来自RMI注册服务,它仅在服务器本地进行监听端口。如果攻击者可以强制或
以其他方式来获取到这个8字节的值,也可以执行远程命令。
据包中提取出来。以橙色突出显示的部分(9c4cdbcfdd205cf8 )是当服务器启动时生成的RMI对
象标识符。这个值来自RMI注册服务,它仅在服务器本地进行监听端口。如果攻击者可以强制或
以其他方式来获取到这个8字节的值,也可以执行远程命令。