Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-65400 — Apple MacOS 屏幕共享任意文件读取/写入 -> RCE | Kitploit
工具/GitHubGitHub/acheong08/cve-2026-65400
权限提升持久化机制漏洞利用数据泄露后渗透利用渗透测试
GitHubacheong08/cve-2026-65400

CVE-2026-65400

Apple MacOS 屏幕共享任意文件读取/写入 -> RCE

查看仓库
22天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-65400

时隔许久,我们终于在 MacOS 上拿到一个 RCE。

最初由 @osxreverser 发现,后来由 bynar.io 进一步扩展。更多信息参见 https://blog.calif.io/p/no-country-for-old-passwords。

这主要源自 @panchocosil(嗯,其实是 Claude……)的工作,他发布了一个只读 PoC。而 @HORKimhab 的仓库看起来有点扯淡,尤其是那个 get-svn.sh 看起来像是在为后续的供应链攻击做铺垫。

不管怎样,我成功实现了写入,并由此实现了 RCE。

快速开始

root@kitploit:~
usage: exploit.py [-h] [-w LOCAL] [-m MODE] [-p PORT] [-u USER] [-r RETRIES] [-t TIMEOUT] [-o FILE] ip [path]
  • Mode:写入文件时,文件所具有的权限。比如 0644 之类的(Unix 权限)。
  • 用户默认为 root。显然你需要 root。
  • 失败是意料之中的。这个 bug 有点竞态条件问题。可以增加重试次数,但通常 20 次以内就能成功。
  • 使用 -o 将读取到的文件写入本地文件。对二进制文件很有用。
  • 端口默认为 5900。这是 VNC 的标准端口。
  • -w 用于将本地文件写入 [path]。

从读取实现 RCE?

某种程度上可行。在 MacOS 上,对目录(而不是文件)执行读取,会转储目录的原始内容(其中的每个文件)。所以无法列出文件并不是问题。

所以先做点侦察。python3 exploit.py <ip_addr> /Library/Preferences/com.apple.loginwindow.plist 可以获得已登录用户的用户名。然后,你可以读取 /User/<username>/.ssh/,并希望 SSH 也已启用(通常启用 VNC 时,SSH 也会启用)。

由于读取是以 root 身份进行且不受 TCC 限制(据我理解),你可以直接转储浏览器历史记录和(也许?)cookies。通常这就足够了。

通过写入实现 RCE。

无论哪种情况,你都可以写入 /Library/LaunchDaemons/ 并等待重启。这样你就获得了持久化。但显然,我们没耐心等,所以还有更好的办法。

通常会有一些你可以覆盖的现有记录。例如,/Library/PrivilegedHelperTools/com.microsoft.autoupdate.helper、us.zoom.ZoomDaemon 和 com.microsoft.teams.TeamsUpdaterDaemon 都是常见的已安装项。

root@kitploit:~
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AbandonProcessGroup</key>
	<true/>
	<key>Label</key>
	<string>com.microsoft.EdgeUpdater.wake.system</string>
	<key>LimitLoadToSessionType</key>
	<string>System</string>
	<key>ProgramArguments</key>
	<array>
		<string>/Library/Application Support/Microsoft/EdgeUpdater/Current/EdgeUpdater.app/Contents/MacOS/EdgeUpdater</string>
		<string>--wake-all</string>
		<string>--enable-logging</string>
		<string>--vmodule=*/components/update_client/*=2,*/chrome/updater/*=2</string>
		<string>--system</string>
	</array>
	<key>StartInterval</key>
	<integer>3600</integer>
</dict>
</plist>

可以看到,位于 /Library/Application Support/Microsoft/EdgeUpdater/Current/EdgeUpdater.app/Contents/MacOS/EdgeUpdater 的二进制文件会按设定的时间间隔运行。

然后我们可以替换那个二进制文件,甚至无需处理 launchctl,就能拿到 RCE!

有意思。

下载工具