diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md
index fd1cea502..f905ef304 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md
@@ -1,50 +1,52 @@
-# macOS文件系统技巧
+# macOS FS 技巧
-☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥
+☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
-* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
-* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](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 repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
+* 如果您在**网络安全公司**工作,想在**HackTricks**中看到您的**公司广告**,或者想要获取**PEASS最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
+* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)系列[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
+* 获取[**官方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)**。**
+* **通过向** [**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
-## POSIX权限组合
+## POSIX 权限组合
**目录**中的权限:
-* **读取** - 你可以**枚举**目录条目
-* **写入** - 你可以**删除/写入**目录中的文件
-* **执行** - 你被**允许遍历**目录 - 如果你没有这个权限,你无法访问其中的任何文件,或者任何子目录中的文件。
+* **读取** - 您可以**列举**目录条目
+* **写入** - 您可以在目录中**删除/写入** **文件**,并且可以**删除空文件夹**。
+* 但是您**无法删除/修改非空文件夹**,除非您对其有写入权限。
+* 您**无法修改文件夹的名称**,除非您拥有它。
+* **执行** - 您被**允许遍历**目录 - 如果您没有这个权限,您无法访问其中的任何文件,或任何子目录中的文件。
### 危险组合
-如何覆盖由root拥有的文件/文件夹,但是:
+**如何覆盖由root拥有的文件/文件夹**,但:
* 路径中的一个父**目录所有者**是用户
-* 路径中的一个父**目录所有者**是具有**写入权限**的**用户组**
-* 一个用户**组**对**文件**具有**写入**权限
+* 路径中的一个父**目录所有者**是拥有**写入权限**的**用户组**
+* 一个用户**组**对**文件**有**写入**权限
-使用上述任何组合,攻击者可以通过在预期路径中**注入**一个**符号/硬链接**来获得特权任意写入。
+有了以上任何一种组合,攻击者可以**注入**一个**符号/硬链接**到预期路径,以获得特权的任意写入。
-### 文件夹根目录 R+X 特殊情况
+### 文件夹root R+X特殊情况
-如果一个**目录**中有**只有root具有R+X访问权限**的文件,那么其他人是**无法访问**这些文件的。因此,如果存在一个漏洞,允许将一个由用户可读但由于该**限制**而无法读取的文件从这个文件夹**移动到另一个文件夹**,则可以滥用该漏洞来读取这些文件。
+如果一个**目录**中有文件,**只有root有R+X权限**,那么其他人**无法访问**这些文件。因此,如果存在一个漏洞允许**移动用户可读的文件**,但由于该**限制**而无法读取的文件,从这个文件夹**移动到另一个文件夹**,可能会被滥用来读取这些文件。
-示例:[https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions)
+示例在:[https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions)
## 符号链接 / 硬链接
-如果一个特权进程正在写入**文件**,该文件可能由**权限较低的用户**控制,或者可能由权限较低的用户**先前创建**。用户可以通过符号链接或硬链接将其指向另一个文件,特权进程将在该文件上写入。
+如果一个特权进程正在向**文件**写入数据,而这个文件可能被**低权限用户控制**,或者可能被低权限用户**预先创建**。用户可以通过符号链接或硬链接**指向另一个文件**,特权进程将在该文件上写入。
-在其他部分中查看攻击者可以**滥用任意写入来提升权限**的地方。
+在其他部分检查攻击者如何**滥用任意写入来提升权限**。
## .fileloc
-具有**`.fileloc`**扩展名的文件可以指向其他应用程序或二进制文件,因此当打开它们时,将执行该应用程序/二进制文件。\
+带有**`.fileloc`**扩展名的文件可以指向其他应用程序或二进制文件,所以当它们被打开时,将执行该应用程序/二进制文件。\
示例:
```xml
@@ -60,19 +62,19 @@
```
## 任意文件描述符
-如果你能让一个进程以高权限打开一个文件或文件夹,你可以滥用 `crontab` 来使用 `EDITOR=exploit.py` 打开 `/etc/sudoers.d` 中的一个文件,这样 `exploit.py` 将获取到 `/etc/sudoers` 中文件的文件描述符并滥用它。
+如果你能让一个**进程以高权限打开一个文件或文件夹**,你可以滥用**`crontab`**,通过设置**`EDITOR=exploit.py`**来打开`/etc/sudoers.d`中的文件,这样`exploit.py`就能获取到`/etc/sudoers`文件内的文件描述符,并滥用它。
例如:[https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098)
-## 避免隔离 xattrs 的技巧
+## 绕过隔离属性技巧
-### 删除它
+### 移除它
```bash
xattr -d com.apple.quarantine /path/to/file_or_app
```
### uchg / uchange / uimmutable 标志
-如果一个文件/文件夹具有这个不可变属性,就无法在其上放置 xattr。
+如果一个文件/文件夹具有这个不可变属性,将无法在其上添加 xattr
```bash
echo asd > /tmp/asd
chflags uchg /tmp/asd # "chflags uchange /tmp/asd" or "chflags uimmutable /tmp/asd"
@@ -84,7 +86,7 @@ ls -lO /tmp/asd
```
### defvfs 挂载
-**devfs** 挂载**不支持 xattr**,更多信息请参考 [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html)
+**devfs** 挂载**不支持 xattr**,更多信息见 [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html)
```bash
mkdir /tmp/mnt
mount_devfs -o noowners none "/tmp/mnt"
@@ -93,9 +95,9 @@ mkdir /tmp/mnt/lol
xattr -w com.apple.quarantine "" /tmp/mnt/lol
xattr: [Errno 1] Operation not permitted: '/tmp/mnt/lol'
```
-### 写入扩展属性访问控制列表(ACL)
+### writeextattr ACL
-此ACL防止向文件添加`xattrs`。
+此ACL防止向文件添加`xattrs`
```bash
rm -rf /tmp/test*
echo test >/tmp/test
@@ -118,13 +120,13 @@ ls -le /tmp/test
```
### **com.apple.acl.text xattr + AppleDouble**
-**AppleDouble**文件格式会复制包括ACEs在内的文件。
+**AppleDouble** 文件格式会复制文件及其访问控制条目(ACEs)。
-在[**源代码**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html)中,可以看到存储在名为**`com.apple.acl.text`**的xattr中的ACL文本表示将被设置为解压后文件的ACL。因此,如果您将应用程序压缩为使用**AppleDouble**文件格式的zip文件,并且该ACL阻止其他xattr写入它...则隔离xattr不会设置到应用程序中:
+在[**源代码**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html)中可以看到,存储在名为 **`com.apple.acl.text`** 的 xattr 内的 ACL 文本表示将被设置为解压缩文件的 ACL。因此,如果你将一个应用程序压缩成带有防止其他 xattrs 被写入的 ACL 的 **AppleDouble** 文件格式的 zip 文件...隔离 xattr 没有被设置到应用程序中:
-有关更多信息,请查看[**原始报告**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)。
+查看[**原始报告**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)获取更多信息。
-要复制此操作,首先需要获取正确的acl字符串:
+要复制这个我们首先需要获取正确的 acl 字符串:
```bash
# Everything will be happening here
mkdir /tmp/temp_xattrs
@@ -142,9 +144,9 @@ ditto -c -k del test.zip
ditto -x -k --rsrc test.zip .
ls -le test
```
-(请注意,即使这样做,沙盒也会在此之前写入隔离的xattr)
+(请注意,即使这样做,沙盒在之前也会写入隔离 xattr)
-虽然不是必需的,但我还是把它放在这里以防万一:
+虽然不是必须的,但我还是保留在这里,以防万一:
{% content-ref url="macos-xattr-acls-extra-stuff.md" %}
[macos-xattr-acls-extra-stuff.md](macos-xattr-acls-extra-stuff.md)
@@ -152,9 +154,9 @@ ls -le test
## 绕过代码签名
-Bundle包含文件**`_CodeSignature/CodeResources`**,其中包含**bundle**中每个**文件**的**哈希值**。请注意,CodeResources的哈希值也**嵌入在可执行文件**中,因此我们不能对其进行更改。
+包含文件 **`_CodeSignature/CodeResources`** 的包,其中包含了包内每个**文件**的**哈希值**。注意,CodeResources 的哈希值也被**嵌入到可执行文件中**,所以我们也不能干扰它。
-然而,有一些文件的签名不会被检查,这些文件在plist中具有omit键,例如:
+然而,有些文件的签名不会被检查,这些文件在 plist 中有 omit 键,例如:
```xml
...
@@ -198,18 +200,28 @@ Bundle包含文件**`_CodeSignature/CodeResources`**,其中包含**bundle**中
...
```
-可以使用以下命令行计算资源的签名:
+```bash
+codesign -d --verbose=4 /path/to/resource
+```
+{% endcode %}
+
+这可以通过命令行界面计算资源的签名:
{% code overflow="wrap" %}
```bash
+codesign -d --verbose=4 /path/to/resource
+```
+{% endcode %}
+```bash
openssl dgst -binary -sha1 /System/Cryptexes/App/System/Applications/Safari.app/Contents/Resources/AppIcon.icns | openssl base64
```
-## 挂载DMG
+{% endcode %}
-用户可以挂载自定义的DMG,甚至可以覆盖一些现有的文件夹。以下是创建包含自定义内容的自定义DMG包的方法:
+## 挂载 dmg 文件
-```overflow="wrap"
-```
+即使在一些现有文件夹之上,用户也可以挂载一个自定义的 dmg 文件。以下是您如何创建一个带有自定义内容的自定义 dmg 包:
+
+{% code overflow="wrap" %}
```bash
# Create the volume
hdiutil create /private/tmp/tmp.dmg -size 2m -ov -volname CustomVolName -fs APFS 1>/dev/null
@@ -234,15 +246,15 @@ hdiutil create -srcfolder justsome.app justsome.dmg
## 任意写入
-### 定期的 sh 脚本
+### 定期 sh 脚本
-如果你的脚本可以被解释为一个 **shell 脚本**,你可以覆盖 **`/etc/periodic/daily/999.local`** shell 脚本,该脚本将每天触发一次。
+如果你的脚本可以被解释为一个**shell 脚本**,你可以覆盖**`/etc/periodic/daily/999.local`** shell 脚本,它将每天被触发。
-你可以使用以下命令**伪造**执行该脚本:**`sudo periodic daily`**
+你可以用以下命令**伪造**这个脚本的执行:**`sudo periodic daily`**
### 守护进程
-编写一个任意的 **LaunchDaemon**,比如 **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`**,其中包含一个执行任意脚本的 plist 文件,例如:
+写一个任意的**LaunchDaemon**,如**`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`**,它执行一个任意脚本,例如:
```xml
@@ -259,17 +271,18 @@ hdiutil create -srcfolder justsome.app justsome.dmg
```
-只需生成脚本`/Applications/Scripts/privesc.sh`,其中包含您想以root身份运行的**命令**。
+```markdown
+只需生成脚本 `/Applications/Scripts/privesc.sh` 并写入您希望以 root 身份运行的**命令**。
-### Sudoers文件
+### Sudoers 文件
-如果您具有**任意写入权限**,可以在**`/etc/sudoers.d/`**文件夹中创建一个文件,授予自己**sudo**权限。
+如果您具有**任意写入**权限,您可以在 **`/etc/sudoers.d/`** 文件夹内创建一个文件,为自己授予 **sudo** 权限。
-### PATH文件
+### PATH 文件
-文件**`/etc/paths`**是填充PATH环境变量的主要位置之一。您必须是root才能覆盖它,但如果来自**特权进程**的脚本正在执行一些**没有完整路径的命令**,您可能可以通过修改此文件来**劫持**它。
+文件 **`/etc/paths`** 是填充 PATH 环境变量的主要位置之一。您必须是 root 才能覆盖它,但如果一个**特权进程**的脚本正在执行某些**没有完整路径的命令**,您可能可以通过修改此文件来**劫持**它。
-您还可以在**`/etc/paths.d`**中编写文件,以将新文件夹加载到`PATH`环境变量中。
+ 您还可以在 **`/etc/paths.d`** 中写入文件,将新文件夹加载到 `PATH` 环境变量中。
## 参考资料
@@ -279,10 +292,11 @@ hdiutil create -srcfolder justsome.app justsome.dmg
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-* 您在**网络安全公司**工作吗?您想在HackTricks中看到您的**公司广告**吗?或者您想获得最新版本的PEASS或下载PDF格式的HackTricks吗?请查看[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
-* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
-* 获取[**官方PEASS和HackTricks衣物**](https://peass.creator-spring.com)
-* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](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 repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
+* 您在**网络安全公司**工作吗? 您想在 **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 & 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)**。**
+* 通过向 [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) 和 [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来**分享您的黑客技巧**。
+```
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
index d6d236d1a..cb421594c 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
@@ -4,9 +4,9 @@
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-* 如果您在**网络安全公司**工作,想在**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 & 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)**。**
* **通过向**[**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
@@ -40,11 +40,11 @@ ps -ef | grep tcc
* 系统范围的数据库位于 **`/Library/Application Support/com.apple.TCC/TCC.db`**。
* 该数据库受到 **SIP 保护**,因此只有 SIP 绕过才能写入它。
-* 用户 TCC 数据库 **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** 用于每个用户的偏好设置。
-* 该数据库受保护,因此只有具有高级 TCC 权限的进程(如完全磁盘访问)才能写入它(但它不受 SIP 保护)。
+* 针对每个用户偏好设置的用户 TCC 数据库 **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`**。
+* 该数据库受保护,因此只有具有高级 TCC 权限(如完全磁盘访问)的进程才能写入它(但它不受 SIP 保护)。
{% hint style="warning" %}
-上述数据库也**受 TCC 保护以限制读取访问**。因此,除非是来自具有 TCC 权限的进程,否则您**无法读取**您的常规用户 TCC 数据库。
+上述数据库也**受 TCC 保护以限制读取访问**。因此,除非是来自具有 TCC 权限的进程,否则您**无法读取**常规用户的 TCC 数据库。
然而,请记住,具有这些高权限的进程(如 **FDA** 或 **`kTCCServiceEndpointSecurityClient`**)将能够写入用户的 TCC 数据库。
{% endhint %}
@@ -59,7 +59,7 @@ ps -ef | grep tcc
{% endhint %}
{% hint style="info" %}
-**通知中心 UI** 可以在系统 TCC 数据库中进行**更改**:
+**通知中心 UI** 可以对系统 TCC 数据库进行**更改**:
{% code overflow="wrap" %}
```bash
@@ -123,7 +123,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
{% endtabs %}
{% hint style="success" %}
-检查这两个数据库,你可以检查应用程序已允许、已禁止或没有的权限(它会请求权限)。
+检查这两个数据库,您可以检查应用程序已允许、已禁止或没有的权限(它将请求权限)。
{% endhint %}
* **`service`** 是 TCC **权限**的字符串表示形式
@@ -171,7 +171,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
```
-
+
* **`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)
@@ -196,7 +196,7 @@ echo "X'$REQ_HEX'"
您还可以在 `系统偏好设置 --> 安全性与隐私 --> 隐私 --> 文件与文件夹` 中检查**已授予应用程序的权限**。
{% hint style="success" %}
-用户 _可以_ 使用 **`tccutil`** **删除或查询规则**。
+用户_可以_使用 **`tccutil`** **删除或查询规则**。
{% endhint %}
#### 重置 TCC 权限
@@ -234,9 +234,9 @@ csreq -t -r /tmp/telegram_csreq.bin
应用程序**不仅需要** **请求**并已被**授予访问**某些资源的权限,它们还需要**具有相关的权限**。\
例如,**Telegram** 有权限 `com.apple.security.device.camera` 来请求**访问摄像头**。一个**没有**这个**权限的应用程序将无法**访问摄像头(用户甚至不会被询问权限)。
-然而,对于应用程序来说,要**访问**某些用户文件夹,如 `~/Desktop`、`~/Downloads` 和 `~/Documents`,它们**不需要**具有任何特定的**权限**。系统将透明地处理访问并在需要时**提示用户**。
+然而,对于应用程序来说,要**访问**某些**用户文件夹**,如 `~/Desktop`、`~/Downloads` 和 `~/Documents`,它们**不需要**具有任何特定的**权限**。系统将透明地处理访问并在需要时**提示用户**。
-苹果的应用程序**不会生成提示**。它们在其**权限**列表中包含**预先授予的权利**,这意味着它们将**永远不会生成弹出窗口**,**也不**会出现在任何**TCC 数据库中**。例如:
+苹果的应用程序**不会生成提示**。它们包含在其**权限**列表中的**预先授予的权利**,这意味着它们将**永远不会生成弹出窗口**,**也不会**出现在任何**TCC 数据库中**。例如:
```bash
codesign -dv --entitlements :- /System/Applications/Calendar.app
[...]
@@ -258,12 +258,12 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
### 敏感的未受保护地方
* $HOME(本身)
-* $HOME/.ssh、$HOME/.aws 等
+* $HOME/.ssh, $HOME/.aws 等
* /tmp
### 用户意图 / com.apple.macl
-如前所述,可以通过将文件拖放到应用程序上来**授予应用程序对文件的访问权限**。这种访问不会在任何TCC数据库中指定,而是作为文件的**扩展属性**。此属性将**存储允许应用程序的UUID**:
+如前所述,可以通过将文件拖放到应用程序上来**授予应用程序对文件的访问权限**。这种访问不会在任何TCC数据库中指定,而是作为文件的**扩展** **属性**。此属性将**存储**允许应用程序的UUID:
```bash
xattr Desktop/private.txt
com.apple.macl
@@ -279,18 +279,18 @@ otool -l /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal| gr
uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
```
{% hint style="info" %}
-值得注意的是,**`com.apple.macl`** 属性是由 **Sandbox** 管理,而不是 tccd。
+值得注意的是,**`com.apple.macl`** 属性是由 **Sandbox** 管理的,而不是 tccd。
另外请注意,如果您将允许计算机中某个应用的 UUID 的文件移动到另一台计算机,因为相同的应用将有不同的 UIDs,它不会授予那个应用访问权限。
{% 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
-如果您在某个时刻设法获得了对 TCC 数据库的写入权限,您可以使用类似以下的方法来添加一个条目(移除注释):
+如果您在某个时刻设法获得了对 TCC 数据库的写入权限,您可以使用类似以下的方法添加一个条目(移除注释):
@@ -336,16 +336,16 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
```
-### 自动化到FDA\*
+### 自动化 (Finder) 到 FDA\*
-TCC中自动化权限的名称是:**`kTCCServiceAppleEvents`**\
-这个特定的TCC权限还指出了可以在TCC数据库中管理的**应用程序**(所以权限并不允许管理所有内容)。
+TCC 权限的自动化权限名称是:**`kTCCServiceAppleEvents`**\
+这个特定的 TCC 权限还表明了可以在 TCC 数据库中管理的**应用程序**(所以权限并不是允许管理所有东西)。
-**Finder**是一个**总是拥有FDA**的应用程序(即使它没有出现在UI中),所以如果你拥有对它的**自动化**权限,你可以滥用它的权限来**让它执行一些操作**。\
-在这种情况下,你的应用程序将需要对**`com.apple.Finder`**的**`kTCCServiceAppleEvents`**权限。
+**Finder** 是一个**始终拥有 FDA** 的应用程序(即使它没有出现在 UI 中),所以如果你拥有对它的**自动化**权限,你可以滥用它的权限来**让它执行一些操作**。\
+在这种情况下,你的应用程序需要对 **`com.apple.Finder`** 的 **`kTCCServiceAppleEvents`** 权限。
{% tabs %}
-{% tab title="窃取用户的TCC.db" %}
+{% tab title="窃取用户的 TCC.db" %}
```applescript
# This AppleScript will copy the system TCC database into /tmp
osascript<
-同样的情况发生在 **Script Editor 应用程序**,它可以控制 Finder,但使用 AppleScript 你不能强制它执行脚本。
+同样的情况也发生在**Script Editor app,** 它可以控制Finder,但使用AppleScript你不能强制它执行脚本。
-### 自动化 + 辅助功能(**`kTCCServicePostEvent`**)到 FDA\*
+### 自动化 (SE) 到某些TCC
-在 **`System Events`** 上的自动化 + 辅助功能(**`kTCCServicePostEvent`**)允许向进程发送 **按键指令**。通过这种方式,你可以滥用 Finder 来更改用户的 TCC.db 或者给任意应用程序授权 FDA(尽管这样做可能会提示输入密码)。
+系统事件可以创建文件夹操作,而文件夹操作可以访问一些TCC文件夹,因此可以使用如下脚本来滥用这种行为:
+```bash
+# Create script to execute with the action
+cat > "/tmp/script.js" <