观星免费为您检测F5 BIG-IP 远程代码执行漏洞
风险等级: 高危
漏洞类型: 远程代码执行漏洞
漏洞利用: 已有
漏洞编号:CVE-2020-5902
2020年07月06日,数字观星应急团队监测 到F5 BIG-IP 远程代码执行漏洞利用已公开,漏洞编号为 CVE-2020-5902,漏洞等级:严重。未授权的远程攻击者通过向漏洞页面发送特制的请求包,可以造成任意 Java 代码执行。进而控制 F5 BIG-IP 的全部功能,包括但不限于: 执行任意系统命令、开启/禁用服务、创建/删除服务器端文件等。该漏洞影响控制面板受影响,不影响数据面板。数字观星应急团队建议广大用户及时将 BIG-IP 按照修复建议升级到指定版本。与此同时,观星台已更新相关插件,用户可利用插件快速排查风险。
目前msf已经集成了该漏洞的利用。未授权的远程攻击者通过向该页面发送特制的请求包,可以造成任意Java 代码执行。进而控制 F5 BIG-IP 的全部功能,包括但不限于: 执行任意系统命令、开启/禁用服务、创建/删除服务器端文件等。
对于漏洞公开利用,数字观星应急团队第一时间对漏洞进行了分析及漏洞复现:
进行文件读取:
进行远程代码执行:
【受影响版本】
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) = 15.1.0
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) = 15.0.0
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 14.1.0 - 14.1.2
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 13.1.0 - 13.1.3
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 12.1.0 - 12.1.5
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 11.6.1 - 11.6.5
【安全版本】
• BIG-IP 15.x:15.1.0.4
• BIG-IP 14.x:14.1.2.6
• BIG-IP 13.x:13.1.3.4
• BIG-IP 12.x:12.1.5.2
• BIG-IP 11.x:11.6.5.2
F5 BIG-IP是美国F5公司的一款集成了网络流量管理、应用程序安全管理、负载均衡等功能的应用交付平台,TMUI被称为配置实用程序。
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) = 15.1.0
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) = 15.0.0
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 14.1.0 - 14.1.2
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 13.1.0 - 13.1.3
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 12.1.0 - 12.1.5
• BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, FPS, GTM, Link Controller, PEM) 11.6.1 - 11.6.5
在 tmshCmd 的 service方法处理请求的时候,对 command 参数进行处理。
然后调用 WorkspaceUtils.runTmshCommand(cmd, request); 方法执行命令,限制了执行delete,create,list,modify。
if ("POST".equalsIgnoreCase(request.getMethod())) {
String[] cmdArray = command.split(" ");
String operation = cmdArray[0];
String module = cmdArray[2];
if (!ShellCommandValidator.checkForBadShellCharacters(command) && (operation.equals("create") || operation.equals("delete") || operation.equals("list") || operation.equals("modify")) && WHITELISTED_TMSH_MODULES.contains(module)) {
try {
String[] args = new String[]{command};
Result result = Syscall.callElevated(Syscall.TMSH, args);
output = result.getOutput();
error = result.getError();
} catch (CallException var11) {
logger.error(NLSEngine.getString("ilx.workspace.error.TmshCommandFailed") + ": " + var11.getMessage());
error = var11.getMessage();
}
} else {
error = NLSEngine.getString("ilx.workspace.error.RejectedTmshCommand");
}
在 fileRead 的 service方法处理请求的时候,对 fileName 参数进行处理。
接着调用 WorkspaceUtils.readFile(fileName); 方法,进行文件读取。
调用 isFileWhitelisted 方法,检测请求的 fileName 是否在白名单里,如果不在,则返回false,不抛出错误。
继续调用 userCanAccessPartition 方法,检测 fileName 是否以 /var/sdm/plugin_store/plugins/ 开头,不是就返回false。
接着就能调用 WorkspaceUtils.readFile(fileName); 方法,进行文件的读取。 方法,进行文件的读取。
请通过观星台查看漏洞情报了解漏洞技术细节,关注观星台插件更新列表,快速识别受影响资产。也欢迎登录我们的 POC++平台,提交 POC 并获取奖励,地址: https://poc.shuziguanxing.com
漏洞检测:
方法一:
使用配置实用程序显示BIG-IP版本信息
登录到配置实用程序,导航对系统 > 配置,软件版本显示在“ 版本”框中。
方法二:
使用命令行显示BIG-IP版本信息,通过键入以下命令登录到TMOS Shell(tmsh):tmsh
之后键入命令:show /sys version
缓解措施:
如果目前无法升级,则可以使用以下部分作为临时缓解措施:
要消除未经身份验证的攻击者利用此漏洞的能力,请将LocationMatch配置元素添加到httpd。为此,请执行以下步骤:
1. 登陆 TMOS Shell(tmsh)执行:
tmsh
2. 修改 httpd 配置信息:
edit /sys httpd all-properties
1. 找到 include 部分并添加以下内容:
include '
<LocationMatch ".*\.\.;.*">
Redirect 404 /
</LocationMatch>
'
1. 通过输入以下命令,将更改写入并保存到配置文件中:
Esc
:wq!
1. 通过输入以下命令来保存配置:
save /sys config
1. 通过输入以下命令来重新启动httpd服务:
restart sys service httpd
修复建议:
也可以通过升级进行安全修复:
• BIG-IP 15.x 升级至 15.1.0.4
• BIG-IP 14.x 升级至 14.1.2.6
• BIG-IP 13.x 升级至 13.1.3.4
• BIG-IP 12.x 升级至 12.1.5.2
• BIG-IP 11.x 升级至 11.6.5.2
https://support.f5.com/csp/article/K52145254
https://nosec.org/home/detail/4501.html
请保持电话通畅。
收到申请之后,我们会第一时间联系您。