CVE-2019-11815:Linux kernel破绽 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

CVE-2019-11815:Linux kernel破绽

申博_安全预警 申博 119次浏览 未收录 0个评论

Linux kernel中存在破绽黑白经常见的,由于有Linux kernel有约莫2600万行代码,单2018年就新添加了338万行,删除251万行代码。代码的量和复杂性说清楚明了个中一定存在破绽。

2019年5月8日,破绽数据库NVD(National Vulnerability Database)宣布了CVE-2019-11815——Linux kernel破绽的概况,其CVSS 3.0评分为8.1。破绽的概况包罗收集进击向量,不须要权限和治理级的代码实行,CIA影响的评分都是high。除进击向量、所需权限外,CIA等都影响着CVSS的评分。

CVSS 3基准评分的一个局部就是进击复杂性,CVE-2019-11815破绽的进击复杂性也是high。也就是说胜利进击须要特定的场景,而这类场景每每很难获得。依据CVSS 3.0规范,评级意味着胜利的进击须要依托进击者的掌握之外的前提,而且胜利的进击须要投入大批精神和预备历程以到达进击所需的前提。

下面剖析该破绽以诠释为何该评分规范从技术上是正确的,尤其是将进击复杂度评级归入斟酌今后,并不能真正代表对企业和用户的风险。

破绽剖析

NVD对该破绽的形貌为Linux kernel 5.0.8之前版本的net/rds/tcp.c中的rds_tcp_kill_sock存在的题目,个中存在合作前提致使的与net namespace cleanup相干的UAF。这是从代码角度对该破绽举行的正确形貌,然则缺少一些症结信息能够会致使我们对TCP发作警示。

该破绽的第一个主要组件是Reliable Datagram Sockets (RDS,牢靠数据报套接字)这是一个Oracle开辟的socket接口和协定,许可单个传输socket向分歧终端发送和吸收大批数据。该破绽实际上是TCP被用作底层传输协定时RDS的破绽:RDS头部的运用数据会经由过程TCP封装和发送,端口是16385,然后解封装并通报给RDS socket。除Oracle的文档和维基百科的引见,没有关于RDS的更多信息。协定的隐约性加上原有的当地权限提拔破绽,致使很多Linux宣布版都将与RDS相干的kernel模块加入了黑名单。这就减少了该破绽带来的潜伏伤害。

若是rds和rds_tcp kernel模块启用?

若是rds和rds_tcp kernel模块启用会怎样呢?在TCP上运用RDS时,底层的TCP传输完整是由kernel来治理的。也就是说,当客户端建立了新的RDS socket时,kernel会在tcp_connect.c的中翻开TCP socket,rds_tcp_conn_path_connect()是由threads.c中的worker线程函数 rds_connect_worker()挪用的。

CVE-2019-11815:Linux kernel破绽

图1. threads.c中的rds_connect_worker()挪用rds_tcp_conn_path_connect()

当TCP客户端socket延续衔接失利该破绽的RDS局部就会涌现。若是TCP connect()衔接失利,就会挪用函数rds_tcp_restore_callbacks(),并设置rds_tcp_connection 构造中的t_sock 指针为NULL,这是一个完整公道的行动。

CVE-2019-11815:Linux kernel破绽

图2. rds_tcp_conn_path_connect()挪用rds_tcp_restore_callbacks()

 CVE-2019-11815:Linux kernel破绽

图3. t_sock设置rds_tcp_restore_callbacks()为NULL

剥丝抽茧,层层破解!看我如何一步步绕过防火墙直至获取你的支付卡信息

前言 此文章介绍了以窃取数据为目标的完整渗透过程,作者首先通过enum4linux对域环境进行信息收集,整理出用户名字典后,然后暴力破解SMB。获得了一个域账号权限后,再使用 Kerberoasting技术获取到域管理员权限,最后通过域管理员下发组策略的方式获取到包含目标数据系统的权限。 一步步绕过Windows域中的防火墙获取支付卡敏感数据 本文详细介绍了如何绕过防火墙以获取对持卡人数据环境(cardholder data environment,CDE)的访问权限,并最终提取支付卡数据。 如果你要存储、传输或处理支付卡数据,那么就必须要确保支付卡数据在你的内部网络中保持高度安全,内部网络环境必须符合PCI数据安全标准(PCI-DSS)。当然,如果你的内部网络进行了分段,则不必让整个内部网络都符合PCI规范,只需让分段出的处理支付卡数据的环境符合PCI数据安全标准。而分段,即隔离出CDE,通常是利用防火墙来实现的。 在以下所讲解的示例中,所有敏感信息都做过修改,本文我们所进行渗透测试的支付卡公司,拥有很庞大的内部网络,所有IP都在10.0.0.0/8范围内。不过,为了保护支付卡的数据安全,它们的IP被特意进行了分段,和其他网络隔离,数据位于单独的192.168.0.0/16范围内。 CDE主要由接受电

该破绽的第二个主要组件是收集定名空间(network namespaces)。Network namespaces斟酌为给定的定名空间运用零丁的接口和路由表,一般来说全部操作系统都回同享雷同的接口和路由表。Docker如许的平台也运用这个定名空间功能来为容器供应收集断绝。

RDS-TCP socket在 rds_tcp_init()中初始化后,就会挪用network namespaces 函数register_pernet_device() ,通报一个指针给pernet_operations构造rds_tcp_net_ops,个中含有初始化后和退出函数在收集定名空间初始化、移除或socket运动时实行。

CVE-2019-11815:Linux kernel破绽

图4. 挪用register_pernet_device()来注册收集定名空间装备

图5. rds_tcp_exit_net()作为收集定名空间装备的退出函数

退出函数 rds_tcp_exit_net()会挪用rds_tcp_kill_sock(),用来实行RDS-TCP socket分歧局部的消灭。该历程的一局部就是消灭衔接列表的建立tmp_list。

每次衔接都邑做的个中一个搜检是检察TCP socket运用的t_sock指针是不是为null,若是为空,t_tcp_node就不会加入到cleanup list中。因而,对这些节点也不会挪用rds_conn_destroy() ,个中一些cleanup也不实行。

图6. 若是t_sock为NULL就跳过rds_tcp_kill_sock()

更主要的是rds_connect_worker()线程并非住手,会继承实验从新衔接。末了,底层的收集构造会就开释,这也是定名空间清算的一局部,也能够会继承被运转的rds_connect_worker()运用,触发UAF破绽。从技术上来说,该破绽能够形貌为不须要特权,若是胜利应用能够致使治理级代码实行。

修复要领也很简单:系统治理员只须要确保有破绽的模块禁用就能够了,或装置更新的kernel。

CVE-2019-11815的真正风险

CVE-2019-11815怎样能力被进击者应用呢?潜伏的受害者首先要加载拉黑的rds和rds_tcp模块,若是不加载,那末以后的步调也就不能够了。由于TCP connect()只要RDS-TCP客户端实行而不是服务器,因而若是进击者发现了目的,就会使目的衔接进击者掌握的统一收集定名空间中的RDS-TCP socket。

进击者的下一个事情就是运用底层的TCP衔接发作失利,同时清算目的用户的收集定名空间,这是一个长途进击者没有时机实行的义务。由于合作前提是很难应用的,而且须要大批的实验。

将这些前提都斟酌进去的话,该破绽在不经由认证被长途应用的能够性险些为0。固然也有异常小的时机能够被用作当地权限提拔,但这请求拉黑的rds和rds_tcp模块是加载的。

虽然该破绽的CVSS评分从技术上将是正确的,然则用户依然须要意想到进击发作的能够性是依据依据的复杂性和进击所需的前提肯定的。大多数Linux服务器在长途情况下是不受该破绽影响的。


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明CVE-2019-11815:Linux kernel破绽
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址