0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

物联网安全从零开始-BIG-IP CVE漏洞分析

蛇矛实验室 来源:蛇矛实验室 作者:蛇矛实验室 2022-12-05 11:48 次阅读

本环境是蛇矛实验室基于"火天网演攻防演训靶场"进行搭建,通过火天网演中的环境构建模块,可以灵活的对目标网络进行设计和配置,并且可以快速进行场景搭建和复现验证工作。火天网演中,内置大量固件设备,包含大型网络设备及物联网设备,可以灵活选取进行测试验证。

背景

2022年11月16日,F5官方公布了F5 BIG-IP和BIG-IQ设备中的多个安全漏洞。其中高危漏洞(CVE-2022-41622,CVSS评分8.8)是iControl SOAP跨站点请求伪造,可允许未经身份验证的远程代码执行攻击。高危漏洞(CVE-2022-41800,CVSS评分8.7)为iControl REST远程代码执行漏洞,允许经过身份验证的管理员用户通过RPM注入执行任意代码。

c1e4e028-723a-11ed-8abf-dac502259ad0.png

受CVE-2022-41622影响的版本为:

BIG-IP:17.0.0
BIG-IP:16.1.0-16.1.3
BIG-IP:15.1.0-15.1.8
BIG-IP:14.1.0-14.1.5
BIG-IP:13.1.0-13.1.5
BIG-IQ:8.0.0-8.2.0
BIG-IQ:7.1.0

受CVE-2022-41800影响的版本为:

BIG-IP:17.0.0
BIG-IP:16.1.0-16.1.3
BIG-IP:15.1.0-15.1.8
BIG-IP:14.1.0-14.1.5
BIG-IP:13.1.0-13.1.5

BIG-IP 设备默认有俩个用户(终端用户和web用户),在配置设备信息时由于系统对web端用户的密码没有什么严格要求(如必须数字、字母组合、特殊符号等等),可能会导致攻击者可以爆破出web端用户密码,加上今年5月刚爆出的CVE-2022-1388未授权绕过漏洞几乎为同型号设备,这就使得俩个web用户导致的pre-auth漏洞很容易被利用。

环境搭建

本小节使用的漏洞环境固件为BIG-IP,漏洞版本号为16.1.0。在靶场中调用BIG-IP后,BIG-IP会自动分配出mgmt口的IP地址。

c272b754-723a-11ed-8abf-dac502259ad0.png

在浏览器端使用(admin/admin)登录后,如下图所示:

c28870a8-723a-11ed-8abf-dac502259ad0.png

漏洞分析

BIG-IP的管理模式有多种,包括web页面,tmsh命令行,rest api,以及soap api。soap api数据交换格式为soap/xml。rest api数据交换格式使用http/json。soap api为比较旧的技术,在版本11.6中已经放弃维护,目前支持正常使用,rest api目前官方一直在推荐用户使用和开发。cve-2022-41622为csrf漏洞,漏洞本身危害不大,但是由于在漏洞利用过程中可以使用soap api接口进行操作从而rce。cve-2022-41800为iControl rest容易受到rpm注入攻击导致rce。

明白了漏洞利用的方法,下面我们开始分析。进入BIG-IP终端,BIG-IP默认开启ssh服务,我们可以使用"scp -r root@ip:/* ./"命令将BIG-IP的所有文件拷贝到本地进行分析。BIG-IP中程序运行的httpd服务为apache

c32e98ac-723a-11ed-8abf-dac502259ad0.png

CVE-2022-41800

我们在"etc"目录简单查看一下,在"init.d"目录下发现了httpd启动服务的httpd脚本,脚本注明为apache server并且配置文件的位置为"/etc/httpd/conf/httpd.conf"。

c34a5fd8-723a-11ed-8abf-dac502259ad0.png

查看一下配置文件,我们发现httpd接受请求,并将请求转发到不同端口的服务上完成对应的处理。下图中AuthPAM开启,说明调用了httpd的某个".so" 文件进行预先的认证,并且将所有向 /mgmt 发送的请求都转发到了 "http://localhost:8100/mgmt/"。

c377ff6a-723a-11ed-8abf-dac502259ad0.png

在16.1.0的官方文档中,简单翻阅我们得知所有REST API的uri中都是含有 "mgmt" 的。

c3e607d0-723a-11ed-8abf-dac502259ad0.png

查看一下8100端口的服务,发现有java服务在监听

c41158ea-723a-11ed-8abf-dac502259ad0.png

查看一下pid信息,发现java的"-classpath"参数后为"usr/share/java/rest"和"usr/share/java/rest/libs"目录下的所有jar包,且"--port"参数为8100。

c43d0756-723a-11ed-8abf-dac502259ad0.png

如果要动态调试java程序,我们可以修改"etc/bigstart/scripts/restjavad",在jvm_options后附加"-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"选项,并且使用Idea配置好ip、port后进行远程调试。

注意:防火墙默认策略为禁止,动态调试需要放行调试端口

c483d960-723a-11ed-8abf-dac502259ad0.png

RestServerServlet 是整个 iControle REST 的入口,在其"service"方法中"RestServerServlet" 异步执行,注册了一个 "ReadListener"。而且会在处理请求时,为每一个请求创建了一个 "RestOperation",并且后续处理将以回调的方式执行。

c4bc0e02-723a-11ed-8abf-dac502259ad0.png

这里会检测请求中是否包含相关认证,并将其设置到 "RestOperation" 中。

c4dad210-723a-11ed-8abf-dac502259ad0.png

调用setIdentityFromBasicAuth方法后,并且basic认证的value不为空便会进入setIdentityData,在比较userName和userReference都不为空时,最后在completeEvaluatePermission中比较完成后完成身份认证过程。

c4f5167a-723a-11ed-8abf-dac502259ad0.png

随后"trySendInProcess" 中会根据请求端口来寻找相关的 "RestWorker" 。在 findWorker() 方法中,将以请求路径为查询条件,匹配 RestServer 的 pathToWarkerMap 。之后便会执行 worker.onRequest() 方法,将worker添加到 RestServer.readyWorkerSet 中。后面会以该 Set 为消费者队列,并执行各个worker。

c50fe284-723a-11ed-8abf-dac502259ad0.png

"RestServer" 中主要工作是维护队列,并执行相关的worker。入口点为其构造方法:

c53d6a92-723a-11ed-8abf-dac502259ad0.png

processQueueRequests后面运行到 "callDerivedRestMethod" 方法,这里便会调用对应worker的处理方法并完成对应的链调用。

c56f6a24-723a-11ed-8abf-dac502259ad0.png

在官方文档中,有开发编写worker的例子,流程如下,在worker中我们发现WORKER_URI_PATH为uri中/mgmt/"后面的的地址。

c592449a-723a-11ed-8abf-dac502259ad0.png

根据"WORKER_URI_PATH"字符串,我们可以简单搜索一下系统中的worker,结果如下图所示。这里WORKER_URI_PATH为"shared/iapp/rpm-spec-creator"就是生成spec文件的worker

c5cef19c-723a-11ed-8abf-dac502259ad0.png

打开"iAppRpmSpecFileCreatorWorker.js"worker的文件,发现加载了"../infrastructure/specFileCreator"模块,并使用SpecWriter变量调用,随后new了一个specWriter

c600fb56-723a-11ed-8abf-dac502259ad0.png

java中的onPost方法传进来的restOperation,先getBody获取内容,并且调用_validate进行判断,随后使用specWriter.render进行格式化,最后调用getFs().writeFile生成".spec"文件

c62c4c66-723a-11ed-8abf-dac502259ad0.png

生成spec文件的名字如下。

c6611810-723a-11ed-8abf-dac502259ad0.png

_validate对传进来的内容进行判断,如判断body是否为空,header是否存在"application/json",取出specFileData的json内容并进行判断,判断是否有name、summary、version、release、description、srcBasePath字符等等。这里便是漏洞点,漏洞成因便是没有对用户传来的json数据进行判断,导致攻击者可以通过" "特殊字符进行绕过。

c6811890-723a-11ed-8abf-dac502259ad0.png

在进行格式化时,使用specFileCreator.js模块。这里使用了doT.js模板,模板path为"./resources"。doT.js 灵感来源于搜寻基于 V8 和 Node.js ,强调性能,最快速最简洁的 JavaScript 模板函数。它在 Node.js 和浏览器两端都彰显出卓越的性能。下图中specFileData调用specTemplate格式化json数据

c6cc6750-723a-11ed-8abf-dac502259ad0.png

doT.js模板如下,当攻击者传来的数据"description"后面跟着" "是,spec文件就变得攻击者可控,可随意添加恶意数据,如调用"%check 'command'"执行系统命令。

c6ffe094-723a-11ed-8abf-dac502259ad0.png

当我们再次通过rest api进行build-package 时,就会执行spec文件中的恶意命令

c732629e-723a-11ed-8abf-dac502259ad0.png

CVE-2022-41622

CVE-2022-41622为CSRF漏洞,CSRF漏洞的成因是网站的已认证通过信息在浏览器中一段时间内不会过期,以后只要是访问这个网站,会默认用你已经通过的认证信息来进行,所以不用再次登录。如果攻击者发送了构造好的CSRF脚本或包含CSRF脚本的链接,管理者点击后可能会执行恶意操作(比如是添加账号、获取信息等)。

漏洞程序为 "/iControl/iControlPortal.cgi",并且该程序为suid权限。

c765e2e0-723a-11ed-8abf-dac502259ad0.png

csrf漏洞本身的成因比较简单,没有对Content-Type以及Referer进行验证,以及Token机制不完善。

c78037c6-723a-11ed-8abf-dac502259ad0.png

下面说一下漏洞利用。在前面我们已经分析了CVE-2022-41800漏洞,这里的CVE-2022-41622与前面的利用过程类似,这里只不过是利用soap api进行发送soap请求。当我们在http中用soap方式发送xml数据去调用一个服务时,我们只知道通用的http协议的传参方式还是不够的,我们仍然需要知道目标服务的接口文档。在soap中每个服务都有的接口文档就是一个用wsdl规范编写的wsdl文档,当程序接收到soap请求后根据wsdl文档进行解析执行。

c7b0b00e-723a-11ed-8abf-dac502259ad0.png

下图为添加用户请求的wsdl文件为"Management.UserManagement.wsdl"

c7d5ad0a-723a-11ed-8abf-dac502259ad0.png

这样我们在pre-auth的情况下就可以发送创建用户的请求来创建用户,当然我们也可以构造其他的请求(如上传文件)

c824660c-723a-11ed-8abf-dac502259ad0.png

漏洞复现

CVE-2022-41800

使用rest api调用rpm-spec-creator创建spec文件并查看。

c8ab8286-723a-11ed-8abf-dac502259ad0.png

使用"nc -lvp 4444"命令监听4444端口

c8e6c8fa-723a-11ed-8abf-dac502259ad0.png

使用rest api调用build-package 构建package包裹。

c90a381c-723a-11ed-8abf-dac502259ad0.png

此时已经获到shell,并且是root权限。

c93b0fc8-723a-11ed-8abf-dac502259ad0.png

CVE-2022-41622

将csrf.html目录使用python启动http服务

c97bacb8-723a-11ed-8abf-dac502259ad0.png

假设管理员使用账号密码登录BIG-IP web管理页面,此时点击了我们启动http服务的链接,链接自动跳转到"https://192.168.141.152/iControl/iControlportal.cgi"并提交soap请求

c9a60c74-723a-11ed-8abf-dac502259ad0.png

用户已经添加成功

c9c98186-723a-11ed-8abf-dac502259ad0.png

使用我们设置好的用户名和密码进行登录。

c9e10c2a-723a-11ed-8abf-dac502259ad0.png

总结

这一小节,我们简单分析了F5设备的俩个pre-auth漏洞,了解了rpm注入和csrf漏洞产生原因。并且在此过程中我们简单学习F5设备中 soap接口和rest接口的区别以及利用。

蛇矛实验室成立于2020年,致力于安全研究、攻防解决方案、靶场对标场景仿真复现及技战法设计与输出等相关方向。团队核心成员均由从事安全行业10余年经验的安全专家组成,团队目前成员涉及红蓝对抗、渗透测试、逆向破解、病毒分析、工控安全以及免杀等相关领域。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1235

    浏览量

    68439
  • 物联网
    +关注

    关注

    2866

    文章

    41549

    浏览量

    358131
  • IP
    IP
    +关注

    关注

    5

    文章

    1399

    浏览量

    148262
  • 漏洞
    +关注

    关注

    0

    文章

    192

    浏览量

    15111

原文标题:物联网安全从零开始-BIG-IP CVE漏洞分析

文章出处:【微信号:蛇矛实验室,微信公众号:蛇矛实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    从零开始学电路基础》(从零开始学电子技术丛书)

    从零开始学电路基础》(从零开始学电子技术丛书)下载地址如下http://www.verycd.com/topics/2798785/[从零开始学电路基础].刘建清.扫描版.pdf[从零开始
    发表于 06-05 23:12

    labview从零开始

    怎么从零开始啊,哪位大神给个意见
    发表于 07-10 10:29

    电子设计从零开始

    ` 电子设计从零开始`
    发表于 08-05 22:25

    从零开始学习电路

    从零开始学习电路
    发表于 06-02 19:27

    直击联网安全问题:机智云与斗象科技建物联网安全实验室

    2016年12月28日,在上海国际会议中心举办的Freebuf互联网安全创新大会(FIT 2017)上,全球领先的专业联网开发和云服务平台机智云与上海斗象科技(
    发表于 12-30 14:25

    安全浏览器竟然也被查出高危漏洞?开源安全问题不容忽视

    , apk, ipk, iso, bin, dll,dmg, pkg等多种二进制文件进行扫描,不仅能定位开源漏洞并提供CVE编号和修补方案,还能分析出所使用的开源组件清单,据说使用的是国际上律师事务所
    发表于 09-05 14:26

    漏洞真实影响分析,终结网络安全的“狼来了”困境

    资产实际情况的漏洞真实影响分析功能,帮助用户从海量漏洞中找到真实有风险的漏洞,为用户的漏洞修复优先级决策提供支持,协助
    发表于 12-25 15:18

    联网安全那些事,你知多少?

    弱环节,黑客先是入侵智能鱼缸,进入赌场内部网络,然后进行扫描,发现漏洞后进入网络中的其他地方,最终神不知鬼不觉地将赌场数据窃取。三、联网安全需求及个人防范措施1.信息的机密性一定保密
    发表于 10-29 14:51

    平台安全架构对联网安全的影响

    能源设施、车联网等基础设施,也包括网络摄像头和智能照明等低成本设备。安全漏洞联网互联设备带来诸多问题。机密信息泄露、个人数据被盗、联网
    发表于 07-22 07:41

    从零开始学电子》丛书全套网盘分享

    从零开始学电子丛书】从零开始学电子元器件识别与检测技术链接:https://pan.baidu.com/s/1hBdNAFXv-WN_vgjQMIICXQ提取码:tsh1【从零开始学电子丛书
    发表于 06-28 18:45

    开发人员和嵌入式系统设计人员如何使用JWT关闭联网设备的安全漏洞

    本文将介绍联网设备安全威胁,并介绍目前用于应对该威胁的设备。它将确定安全漏洞以及开发人员和嵌入式系统设计人员如何使用JWT关闭它们。
    发表于 06-16 06:17

    开源鸿蒙 OpenHarmony 获得 CVE 通用漏洞披露编号颁发资质

    披露计划)建立,由来自世界各地的 IT 供应商、安全公司和安全研究组织组成。相关者可以通过唯一的 CVE编码在漏洞数据库或安全工具中快速地找
    发表于 08-17 11:34

    STM32Cube工具的log4j漏洞CVE-2021-44228和CVE-2021-45046有何影响?

    STM32Cube工具的log4j漏洞CVE-2021-44228和CVE-2021-45046有何影响?
    发表于 12-07 07:02

    国家信息安全漏洞共享平台收录两个 Windows 系统 TCP/IP 高危漏洞,微软已修复

    2月份,国家信息安全漏洞共享平台(CNVD)收录了两个微软 Windows 操作系统 TCP/IP 高危漏洞(CNVD-2021-10528,对应 CVE
    的头像 发表于 02-18 18:01 3279次阅读

    IP知识百科之CVE

    CVE(Common Vulnerabilities and Exposures)的全称是公共漏洞和暴露,是公开披露的网络安全漏洞列表。IT人员、安全研究人员查阅
    的头像 发表于 09-16 09:20 2784次阅读