From 5bdd32b1ad0400fb76daeb393fbf49a47708ad95 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 13 Apr 2025 14:22:28 +0000 Subject: [PATCH] Translated ['src/macos-hardening/macos-security-and-privilege-escalation --- .../macos-tcc/README.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md index 8042d79e6..a1f96e94c 100644 --- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md +++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md @@ -4,9 +4,9 @@ ## **基本信息** -**TCC (透明性、同意和控制)** 是一种安全协议,专注于规范应用程序权限。其主要作用是保护敏感功能,如 **位置服务、联系人、照片、麦克风、相机、辅助功能和完整磁盘访问**。通过在授予应用程序访问这些元素之前要求用户明确同意,TCC 增强了隐私和用户对其数据的控制。 +**TCC (透明性、同意和控制)** 是一种安全协议,专注于规范应用程序权限。其主要作用是保护敏感功能,如 **位置服务、联系人、照片、麦克风、相机、辅助功能和完整磁盘访问**。通过在授予应用程序访问这些元素之前要求明确的用户同意,TCC 增强了隐私和用户对其数据的控制。 -当应用程序请求访问受保护的功能时,用户会遇到 TCC。这通过一个提示可见,允许用户 **批准或拒绝访问**。此外,TCC 还支持用户的直接操作,例如 **将文件拖放到应用程序中**,以授予对特定文件的访问,确保应用程序仅访问明确允许的内容。 +当应用程序请求访问受保护的功能时,用户会遇到 TCC。这通过一个提示可见,允许用户 **批准或拒绝访问**。此外,TCC 还支持直接用户操作,例如 **将文件拖放到应用程序中**,以授予对特定文件的访问,确保应用程序仅访问明确允许的内容。 ![TCC 提示的示例](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855) @@ -14,7 +14,7 @@ 每个登录用户都有一个 **用户模式 tccd** 在运行,定义在 `/System/Library/LaunchAgents/com.apple.tccd.plist` 中,注册 mach 服务 `com.apple.tccd` 和 `com.apple.usernotifications.delegate.com.apple.tccd`。 -在这里可以看到 tccd 作为系统和用户运行: +在这里你可以看到 tccd 作为系统和用户运行: ```bash ps -ef | grep tcc 0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system @@ -105,7 +105,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0; > 检查两个数据库,您可以查看应用程序允许、禁止或没有的权限(它会请求权限)。 - **`service`** 是 TCC **权限** 的字符串表示 -- **`client`** 是具有权限的 **bundle ID** 或 **二进制路径** +- **`client`** 是具有权限的 **bundle ID** 或 **二进制文件路径** - **`client_type`** 指示它是 Bundle Identifier(0) 还是绝对路径(1)
@@ -186,7 +186,7 @@ tccutil reset All ``` ### TCC 签名检查 -TCC **数据库** 存储应用程序的 **Bundle ID**,但它还 **存储** **信息** 关于 **签名** 以 **确保** 请求使用权限的应用是正确的。 +TCC **数据库** 存储应用程序的 **Bundle ID**,但它还 **存储** **信息** 关于 **签名** 以 **确保** 请求使用权限的应用程序是正确的。 ```bash # From sqlite sqlite> select service, client, hex(csreq) from access where auth_value=2; @@ -199,14 +199,14 @@ csreq -t -r /tmp/telegram_csreq.bin (anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "6N38VWS5BX") and identifier "ru.keepcoder.Telegram" ``` > [!WARNING] -> 因此,使用相同名称和包 ID 的其他应用程序将无法访问授予其他应用程序的权限。 +> 因此,使用相同名称和捆绑 ID 的其他应用程序将无法访问授予其他应用程序的权限。 ### 权限与 TCC 权限 应用程序 **不仅需要** **请求** 并且已经 **获得访问** 某些资源的权限,它们还需要 **拥有相关的权限**。\ -例如 **Telegram** 拥有权限 `com.apple.security.device.camera` 来请求 **访问相机**。一个 **没有** 这个 **权限的应用程序将无法** 访问相机(用户甚至不会被询问权限)。 +例如 **Telegram** 拥有权限 `com.apple.security.device.camera` 来请求 **访问相机**。一个 **没有** 这个 **权限的应用** 将无法访问相机(用户甚至不会被询问权限)。 -然而,对于应用程序 **访问** 某些用户文件夹,如 `~/Desktop`、`~/Downloads` 和 `~/Documents`,它们 **不需要** 任何特定的 **权限**。系统将透明地处理访问并 **根据需要提示用户**。 +然而,对于应用程序 **访问** 某些用户文件夹,例如 `~/Desktop`、`~/Downloads` 和 `~/Documents`,它们 **不需要** 任何特定的 **权限**。系统将透明地处理访问并 **根据需要提示用户**。 苹果的应用程序 **不会生成提示**。它们在其 **权限** 列表中包含 **预先授予的权利**,这意味着它们 **永远不会生成弹出窗口**,**也** 不会出现在任何 **TCC 数据库** 中。例如: ```bash @@ -222,14 +222,14 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app 这将避免日历请求用户访问提醒、日历和地址簿。 > [!TIP] -> 除了一些关于权限的官方文档外,还可以找到关于权限的非官方**有趣信息在** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) +> 除了一些关于权限的官方文档外,还可以找到关于权限的非官方**有趣信息**在[**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) 一些 TCC 权限包括:kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... 没有公开的列表定义所有权限,但您可以查看这个[**已知权限列表**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service)。 ### 敏感未保护位置 - $HOME(本身) -- $HOME/.ssh, $HOME/.aws 等 +- $HOME/.ssh, $HOME/.aws, 等等 - /tmp ### 用户意图 / com.apple.macl @@ -400,7 +400,7 @@ EOD ### 自动化 (SE) 到某些 TCC -**系统事件可以创建文件夹操作,而文件夹操作可以访问一些 TCC 文件夹**(桌面、文档和下载),因此可以使用如下脚本来滥用这种行为: +**系统事件可以创建文件夹操作,而文件夹操作可以访问一些 TCC 文件夹**(桌面、文档和下载),因此可以使用以下脚本来滥用这种行为: ```bash # Create script to execute with the action cat > "/tmp/script.js" <