Отредактируйте 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.