编辑TCC.db以绕过本机上的“'Foo.app'要访问控件'Bar.app'”


15

我广泛使用Apple Events来控制机器上的各种应用程序。在Mojave中引入的新安全提示正在崩溃

在此处输入图片说明

在以前的macOS版本中,一旦授予某个应用“控制您的计算机”的权限,它便能够将Apple事件发送到您计算机上的任何其他应用。在Mojave中,必须为每个受控制的应用程序手动授予一次此权限。

用户授予访问权限后,他们的选择将存储在两个sqlite数据库之一中:

  1. ~/Library/Application Support/com.apple.TCC/TCC.db
  2. /Library/Application Support/com.apple.TCC/TCC.db

    • 请注意,#2仅对root用户可见。
    • 请注意,系统完整性保护已禁用。

是否可以直接编辑这些sqlite数据库以自动授予权限并绕过这些安全提示?


@ user3439894谢谢,我的机器上已经禁用了SIP。看起来python程序与Mojave的新“自动化”保护不兼容。
Wowfunhappy

是什么将Apple Events发送到各种应用程序(例如,您有多少个Foo.app和您有多少个Bar.app,并且矩阵稀疏或密集?)?您是否可以采用不超过您控制的3台机器的扩展解决方案(或此时需要资金)?
bmike

@bmike我的Applescripts中有诸如“退出应用程序(要退出的最前端应用程序的路径为文本)之类的行”,因此Bar.app可以是任何已安装的应用程序。全部都在一台机器上。
Wowfunhappy

获得这一切的方式一气呵成:tell app "Finder" to open every application file in the entire contents of (path to applications folder) as alias list。然后repeat with A in the result... ignoring application responses... quit the application named A... end ignoring... end repeat。这会很痛苦,但是就像撕开创可贴一样。
CJK

Answers:


7

即使您禁用了SIP,Apple也不再支持直接访问TCC.db数据库,因为他们的政策是保护用户免受那些希望跟踪您在网上进行的所有事情的大公司的侵害,并且过去这种无提示的绕过操作无需询问用户权限。但是,即使在Mojave中,也有一种方法可以避免这种情况,但有一个问题:仅当给定的计算机注册了MDM程序时,该方法才有效。要了解有关MDM程序的更多信息,请点击此处

为了绕过几台计算机,您可以使用GitHub上tccprofile.py可用的python脚本。

这里可以找到关于可以做什么和不能做什么的深入讨论。

据我所知,这是绕过Mojave以后要求用户许可的唯一方法。


1
为自己的个人脚本获取MDM配置文件确实不切实际。禁用SIP后,究竟是什么使我无法编辑数据库?我知道不能直接关闭系统本身,但是没有SIP,我应该可以在计算机上编辑任何文件,包括存储所有白名单的数据库。
Wowfunhappy

1
显然,Apple通过使用私有API guarded_open_np更改了访问该数据库的方式。我已经看到一些俄罗斯黑客试图用IDA Pro对该API进行反向工程的文章,但到目前为止还没有取得很大的成功。
jvarela

无论Apple通常如何编辑白名单,它都似乎是标准的sqlite数据库,这一事实可以证明,它可以在数据库编辑器中打开和读取。如果还有其他原因导致无法直接编辑和替换文件(例如,如果macOS存储了数据库的校验和,并且该校验和本身由Apple加密),那么我想对此进行清晰,全面的解释在你的答案!谢谢。
Wowfunhappy

1
+1,但我不信任博客。我们可以从该网站中获取内容并直接引用它,或者将其添加到驱动器中吗?
JBis

2

我发现这是为了删除条目。

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db “删除访问权限,如客户端“ %appnamehere%

appnamehere应用程序名称中出现的“ ” 替换为“ 应用程序”列表中显示的名称(保留%符号)。


2
这样会将应用程序从数据库中删除,而不添加权限,对吗?我尝试(添加或删除)时似乎没有执行任何操作。
Wowfunhappy

1
在Catalina中,您莫名其妙地甚至看不到该文件为root ... Error: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database file,如果我尝试以lsroot身份访问该目录,我会得到ls: : Operation not permitted
迈克尔·

@Michael您能TCC.db在Catalina 上阅读吗?我也有同样的问题,甚至无法lscom.apple.TCC目录中执行
WallTearer

1
@WallTearer是的,我必须在系统偏好设置中的安全性和隐私权下,对Terminal和/或/ bin / bash启用对文件系统的完全访问权限
Michael

@迈克尔酷,谢谢!同时,我还阅读了以下文章,提出了类似的建议以启用“全盘访问” -blog.kolide.com/macos-catalina-osquery-a6753dc3c35c最后,我授予了对iTerm2的访问权限,并能够使用tccutil读取安全设置。 PY实用像sudo tccutil --listgithub.com/jacobsalmela/tccutil
WallTearer

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.