搜索此博客

2017年11月28日星期二

【漏洞分析】Linux内核XFRM权限提升漏洞分析预警(CVE–2017–16939)

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
【漏洞分析】Linux内核XFRM权限提升漏洞分析预警(CVE�C2017�C16939)  阅读原文»

2017-11-27 18:14:19 阅读:5119次 收藏 来源: 安全客 作者:360CERT

enter image description here


0x00 背景介绍


2017年11月24日, OSS社区披露了一个由独立安全研究员Mohamed Ghannam发现的一处存在于Linux 内核Netlink socket子系统(XFRM)的漏洞,漏洞编号CVE-2017-16939

360CERT经过实际验证,确认该漏洞确实存在,但poc作者认为存在UAF漏洞,存在提权的可能性,而我们认为并没有UAF,只是使用未初始化链表造成的crash(空指针引用),并且使用的内存已经被初始化了,实际上无法提前布局,不能进一步利用达到提权的目的。


0x01 漏洞概述


Netlink 是一种特殊的 socket,它是一种在内核与用户间进行双向数据传输的一种方式,用户态应用使用标准的 socket API 就可以使用 Netlink 提供的强大功能,内核态需要使用专门的内核 API 来使用 Netlink。

XFRM是 Linux 2.6 内核为安全处理引入的一个可扩展功能框架,用来在数据包经过路由路径的过程中对其进行修改。

漏洞原因是:在调用xfrm_dump_policy_done函数之前,如果不事先调用xfrm_dump_policy,会导致链表没有被初始化,造成空指针引用,产生崩溃。官方修正的补丁添加了xfrm_dump_policy_start函数,确保调用done之前会进行初始化。


0x02 漏洞攻击面影响


1. 影响版本

影响Linux Kernel 2.6.28~4.14之间的版本

影响版本链接:

http://www.securityfocus.com/bid/101954 

2. 修复版本

漏洞已被作为1137b5e("ipsec:修复异常xfrm策略转储崩溃"补丁)的一部分解决,在4.14-rc7版本中被修复。


0x03 漏洞详情


1. 技术细节

在函数 static int netlink_dump(struct sock *sk) 中:

(/net/netlink/af_netlink.c)

enter image description here

在上面的代码中,我们可以看到当sk->sk_rcvbuf小于等于sk_rmem_alloc(注意我们可以通过stockpot控制sk->sk_rcvbuf)时,netlink_dump()检查失败,它跳转到函数的结尾并退出,但是cb_running的值不会更改为false。

所以当 atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf 时,不应调用 cb->done(cb),且nlk->cb_running 应设为 false。否则在 static void netlink_sock_destruct(struct sock *sk) 函数中:

enter image description here

该函数会在close(socketfd)时触发。该函数检测到 nlk->cb_running 不为 false,就会调用 done() 函数,即 xfrm_dump_policy_done(),导致 crash。

enter image description here

2. poc的验证分析

原作者 poc 中的执行流程如下:

(1) do_setsockopt() :改小 sk->sk_rcvbuf 值

(2)send_msg(fd,&p->msg):

第一次发送时,atomic_read(&sk->sk_rmem_alloc) = 0 < sk->sk_rcvbuf,发送之后,sk->sk_rmem_alloc 累加,结果在第一次发送后:

atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf

(3)send_msg(fd,&p->msg):

【技术分享】一篇文章精通PowerShell Empire 2.3(上)  阅读原文»

2017-11-27 19:14:10 阅读:7496次 收藏 来源: 安全客 作者:shuteer


http://pic1.hackdig.com/pp/214a8a6035b31e2495d6d890f5a69a03d2c127c75d3c3953c832636fc070c7a4e50e11d99b6d4bd510d0bcfd2e2c5f29.jpg


作者:shuteer

预估稿费:700RMB

(本篇文章享受双倍稿费 活动链接请点击此处

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


0×00 引言


作为360安全的忠实读者和作者,360这次搞活动肯定是要捧场的,至于为什么选择写Empire,是因为Empire在域渗透方面的功能实在是太强大,很多人只是用来生成免杀,未免有点大材小用。而且网上了一直没有一个系统的教程,特别是版本更新到2.X以后,有些使用方法发生了改变,甚至连官网的介绍都没有更新。因为该工具的使用要求搭建域环境,大概写了四五天,期间有在外网VPS上操作的,也有在内网操作的,所以在这个方面不要太较真,只要研究其方法即可。

除了基本的安装,使用以外,在模块方面主要分成生成木马,信息收集,提权,横向渗透以及后门五个方面来写,目录如下。

0×01.Empire简介

0×02.Empire的基本操作

       1.安装

       2.设置监听

0×03.生成木马

       1.dll

       2.launcher

       3.launcher_vbs

       4.launcher_bat

       5.macro

       6.Ducky

0×04.连接代理及基本使用

0×05. 信息收集

       1.屏幕截图

       2.键盘记录

       3.剪贴板记录

       4.查找共享

阅读更多内容

没有评论: