2021 年 7 月 9 日上午 544 Jira 官方发布公告 《Jira 数据中心和 Jira 服务管理数据中心 - Ehcache RMI 缺少身份验证 - CVE-2020-36239(https//jira.atlassian.com/browse/JSDSERVER-8454)》, 该漏洞影响多个产品的多个版本,官方已给出修复方法。详细请关注 Jira 官网,将软件更新至安全版本 https//jira.atlassian.com/
前言
官方已给出修复方法。详细请关注 Jira 官网,将软件更新至安全版本: https://jira.atlassian.com/,文末有给出相应修复参考资料。
文章前部分是站点安装,如果不想看可以直接跳到 漏洞分析 部分。
2021 年 7 月 9 日上午 5:44 Jira 官方发布公告 《Jira 数据中心和 Jira 服务管理数据中心 - Ehcache RMI 缺少身份验证 - CVE-2020-36239》, 该漏洞影响多个产品的多个版本,
参考资料:
- 官方通报: https://jira.atlassian.com/browse/JSDSERVER-8454
- 软件下载地址: https://www.atlassian.com/zh/software/jira/update
- 官方安装文档: https://confluence.atlassian.com/adminjiraserver071/installing-jira-applications-802592161.html
- Mysql 设置: https://confluence.atlassian.com/adminjiraserver071/connecting-jira-applications-to-mysql-802592179.html
下载安装环境
这里以 Jira Data Center 8.15.1 作为例子。下载地址: https://www.atlassian.com/zh/software/jira/update, 下载好后解压出来
配置IDEA运行环境
在桌面(位置无所谓),新建一个 atlassian-jira
(名字无所谓)文件夹,在 IDEA 中打开,右键根目录 Add Framework Suppport
设置成 Web Application
项目, 让 IDEA 知道这是 Web 应用。
将下载的安装项目下的 atlassian-jira
文件夹内的所有文件复制到,当前项目的 web
目录下
设置 web/WEB-INF/classes/jira-application.properties
的 jira.home
为下载的安装包中的atlassian-jira
点击右上角的 ADD CONFIGUATIONS..
添加一个 Tomcat Server -> Local
.
从 Jira 官网下载下来的安装包,是包含 Tomcat 的。或者说是他就是一个 Tomcat
,只不过里面包括了 Jira 的项目源码, 添加一个 Tomcat Server
设置 Home
为安装包的目录即可
点击 Fix
修复,最后点击 OK/APPLY 应用设置就可以跑起来了
配置 Mysql
添加/修改 Mysql 配置文件 如下:
[mysqld]
port=3306
character-set-server=utf8
default-storage-engine=INNODB
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G
创建数据库
CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;
需要 java 连接驱动,下载地址: https://downloads.mysql.com/archives/c-j/,我下载的是 5.1.21。下载好后放到 web/WEB-INF/lib
目录下,重新启动服务器
安装站点
由于官方文档是英文的所以我这里也设置成了英文。
选择 I'll set it up myself
下一步
选择 My Own Database (recommended for production environments)
配置数据库,点击下一步,这里会比较久,因为数据表挺多的。趁着这个时间先去官网创建一个账户,一会要用到。
这里直接默认就行
点击 generate a Jira trial license
生成试用许可证,需要登录 Jira 官网。
直接默认点击生成即可
生成成功后会提示是否跳转回站点,点击 YES,跳转会页面后会自动填充许可证,直接下一步
填写管理员信息后下一步, 下一步中的 Set up email notifications
中选择 Later
(默认)直接下一步,后面都是一些可以直接下一步的了。
随机选一个就好。我随机建了一个示例项目。
到这,恭喜站点部署成功
漏洞分析
根据官方的描述该漏洞是因为: 暴露了一个 Ehcache RMI 网络服务,攻击者可以在端口 40001 和潜在的 40011 [0] [1] [2] 上连接到该服务,由于缺少身份验证漏洞,可以通过反序列化在 Jira 中执行他们选择的任意代码。
但我站点搭起来后并没有开启 40001 端口或 40011端口
配置集群
在翻阅了大量官方文档后发现:https://confluence.atlassian.com/adminjiraserver0815/installing-jira-data-center-1050546393.html, 需要将 Jira
配置成集群才会开启 40001 端口
在源安装项目目录中新建 cluster.properties
,写入如下配置
# This ID must be unique across the cluster
jira.node.id = node1
# The location of the shared home directory for all Jira nodes
jira.shared.home = /home/jirasoftware-sharedhome
重启服务器后, 40001 和 40011 端口就开启了。
RMI 扫描
本来想用 RmiTaste 扫描的,但是不知道为什么没有任何结果。
突然想起了 Nmap 神器,扫了一下真有结果。
漏洞触发点
信息已经够多了,接下来去 net.sf.ehcache.distribution.RMICachePeer_Stub
找触发点, 官方通报中说是 Ehcache
暴露的 RMI 服务,所以实体类应该也在 Ehcache
包里。
如果不确定可以新开一个项目并将目标项目中的 classes
和所有涉及 jar
包的位置添加到项目 Libraries
中(点击 +
选择 java
),该设置面板在 File -> Project Structure
中打开
添加好后用 Class.fornName
加载,因为使用 import
非公开(public
声明的)类是无法导入的。写好之后就可以跟进去了
发现绑定的 net.sf.ehcache.distribution.RMICachePeer_Stub
类中的 getQuiet
方法接收的参数是 Serializeable
对象。看来这是漏洞的触发点
net.sf.ehcache.distribution.RMICachePeer_Stub#getQuiet
漏洞验证
所有绑定的 name
, 都是绑定 net.sf.ehcache.distribution.RMICachePeer_Stub
, 所以随机选一个就可以了, 使用 URLDNS
验证了漏洞确实存在。
漏洞危害
接下来看看 Jira 是否用了存在利用链的包,Commons-Collection
都用了相对安全的版本,但是 Commons-Beanutils 1.9.4
存在利用链
直接可以使用 ysoserial
中的 CommonsBeanutils1
利用链就可以执行任意命令。
修复建议
官方通报中已给出修复方案: https://jira.atlassian.com/browse/JSDSERVER-8454,下面是官方通报中给出的修复版本
为了解决这些问题,我们发布了 Jira Data Center, Jira Core Data Center, and Jira Software Data Center:
- 8.5.16 包含针对此问题的修复
- 8.13.8 包含针对此问题的修复
- 8.17.0 包含针对此问题的修复
Jira Service Management Data Center 版本:
- 4.5.16 包含针对此问题的修复
- 4.13.8 包含针对此问题的修复
- 4.17.0 包含针对此问题的修复
这些版本可以在以下位置下载:
- Jira 核心服务器: https://www.atlassian.com/software/jira/core/download
- Jira 软件数据中心: https://www.atlassian.com/software/jira/update
- Jira 服务管理数据中心: https://www.atlassian.com/software/jira/service-management/update
- 本文作者: JOHNSON
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/653
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!