Отредактируйте TCC.db, чтобы обойти «Foo.app» хочет получить доступ к элементу управления «Bar.app» »на своей машине


15

Я широко использую Apple Events для управления различными приложениями на моей машине. Новые подсказки безопасности, введенные в Мохаве, наносят урон .

введите описание изображения здесь

В предыдущих версиях macOS, когда приложение получало разрешение на «управление вашим компьютером», оно могло отправлять события Apple любому другому приложению на вашем компьютере. В Мохаве это разрешение должно быть предоставлено вручную один раз для каждого контролируемого приложения.

Как только пользователь предоставляет доступ, его выбор сохраняется в одной из двух баз данных 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 "Automation".
Wowfunhappy

Что отправляет Apple Events в различные приложения (например, сколько у вас Foo.app и сколько у вас Bar.app и является ли матрица разреженной или плотной?)? У вас все в порядке с решением, которое не масштабирует последние 3 машины, которые вы контролируете (или требует средств на данный момент)?
bmike

@bmike Мои яблочные скрипты имеют строки типа «указать приложению (путь к первому приложению в виде текста) выйти», поэтому 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

Ответы:


7

Прямой доступ к базе данных TCC.db больше не поддерживается Apple, даже если вы отключите SIP из-за своей политики защиты пользователей от крупных компаний, которые любят отслеживать все, что вы делаете в Интернете, а также использовали этот скрытый обход, не спрашивая разрешение пользователям. Однако даже в Мохаве есть способ обойти это, но с подвохом: это работает только в том случае, если данный компьютер зарегистрирован в программе MDM . Чтобы узнать больше о программе MDM, зайдите сюда .

Чтобы обойти это для нескольких компьютеров, вы можете использовать скрипт Python, tccprofile.pyдоступный на GitHub .

Подробное обсуждение того, что вы можете и не можете делать, можно найти здесь .

Насколько я знаю, это единственный способ обойти необходимость запрашивать разрешение пользователя у Мохаве и далее.


1
Получить профиль MDM для моих личных сценариев непрактично. С отключенным SIP, что именно мешает мне редактировать базу данных? Я понимаю, что сама система не может быть отключена напрямую, но без SIP я смогу редактировать любой файл на моем компьютере, включая базу данных, в которой хранятся все белые списки.
Wowfunhappy

1
Очевидно, Apple изменила способ доступа к этой базе данных с помощью частного API guarded_open_np. Я уже видел сообщения о том, как русские хакеры пытались реконструировать этот API с помощью IDA Pro, но пока без особого успеха.
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
В Каталине вы необъяснимо не можете даже увидеть файл как root ... Error: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database fileи если я попытаюсь перейти lsв каталог как root, я получу ls: : Operation not permitted.
Майкл

@ Майкл, ты умеешь читать TCC.dbо Каталине? У меня такая же проблема, даже не могу сделать lsв com.apple.TCCкаталоге
WallTearer

1
@WallTearer Да, я должен включить полный доступ к файловой системе для Терминала и / или / bin / bash под защитой и конфиденциальностью в Системных настройках
Майкл

@ Майкл круто, спасибо! В то же время я также читал следующую статью с аналогичным предложением включить полный доступ к диску - blog.kolide.com/macos-catalina-osquery-a6753dc3c35c В конце концов я предоставил доступ к iTerm2 и смог прочитать настройки безопасности с помощью tccutil. Как утилита py sudo tccutil --list( github.com/jacobsalmela/tccutil )
WallTearer

0

SIP не поддерживает каталог библиотеки. Таким образом, это означает, что вы можете записывать в файл TCC.db через терминал некоторые команды.

Вот ссылка: О SIP


Файлы TCC.db защищены SIP, хотя их каталоги не защищены. Мне все равно - мне бы очень хотелось узнать, какие команды позволят мне создавать приложения из белого списка.
Wowfunhappy

apple.stackexchange.com/questions/362865/… эта ссылка может помочь вашему запросу
Coder123
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.