Package(.pkg)
https://en.wikipedia.org/wiki/Package_(macOS)
该包是 Apple 操作系统使用的常见文件系统抽象。它是一个目录,可能包含表示保留的组织状态的文件或对象的层次结构。包会像 Finder 应用程序中的单个文件一样显示给用户,以避免用户更改。
分析工具
Suspicious Package — An app for inspecting macOS Installer packages[1]
使用 go1.21.5.darwin-arm64.pkg 作为演示
-
•
Package Info
:显示安装包概述,包括将安装的项目数量、安装大小、开发人员 ID 以及是否已签名、有效或已过期,运行了多少个安装脚本,以及下载的位置和时间。 -
•
All Files
:这些文件中将到达哪些文件以及它们将去往何处,包括特定文件的权限。 -
•
All Scripts
:preinstall
,postinstall
这些脚本分别是安装前和安装后执行的脚本,一般是用来调整权限或执行清理功能的 bash 脚本。
Package 存在的暴露面
-
• 安装时需要
root
权限。 -
• 全量替换或者修改
/*
(All Files
) 目录或者文件。 -
• 审计
preinstall
/postinstall
脚本内容。
漏洞案例
-
• CVE-2023-25394 通过 TOCTOU 漏洞,替换其App更新包,利用 LaunchDaemon 进程的 root 权限,从而达到提权。https://danrevah.github.io/2023/05/03/CVE-2023-25394-VideoStream-LPE/
-
• CVE-2022-42841 https://sector7.computest.nl/post/2023-01-xar/
其他
-
• TOCTOU time of check, time of use (TOCTOU)漏洞,意思是某个值被check一次,就再也没有check过,以后再用。
引用链接
[1]
Suspicious Package — An app for inspecting macOS Installer packages: https://mothersruin.com/software/SuspiciousPackage/
原文始发于微信公众号(凹陷外壳):Break Package(.pkg)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论