TCC.dbを編集して、自分のマシンの「 'Foo.app'がコントロール 'Bar.app'へのアクセスを要求しています」をバイパスします


15

私は自分のマシンでさまざまなアプリケーションを制御するためにApple Eventsを幅広く利用しています。モハーベで導入された新しいセキュリティプロンプトがある壊滅

ここに画像の説明を入力してください

以前のバージョンのmacOSでは、アプリに「コンピューターを制御する」権限が付与されると、Appleイベントをコンピューター上の他のアプリに送信できました。Mojaveでは、この権限は、制御されるアプリごとに1回手動で付与する必要があります。

ユーザーがアクセスを許可すると、その選択は2つの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、2018年

Apple Eventsをさまざまなアプリに送信するもの(つまり、Foo.appはいくつあり、Bar.appはいくつあるか、そしてその行列は疎か密か?)制御している3台のマシンを超えて拡張できないソリューションで大丈夫ですか(またはその時点で資金が必要です)?
bmike

@bmike私のapplescriptsには「アプリケーション(最前面のアプリケーションへのパス)を終了するように伝える」のような行があるので、Bar.appはインストールされているどのアプリケーションでもかまいません。これはすべて単一のマシン上にあります。
Wowfunhappy 2018年

一度にすべてを手に入れましょう: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データベースに直接アクセスすることは、SIPを無効にしても、Appleでサポートされなくなりました。これは、オンラインで行うすべてを追跡することを好む大企業からユーザーを保護するポリシーのため、尋ねることなくこのステルスバイパスを実行するためにも使用されますユーザーへの権限。ただし、Mojaveでもこれを回避する方法はありますが、注意点があります。これは、特定のコンピューターがMDMプログラムに登録されている場合にのみ機能します。MDMプログラムの詳細については、こちらをご覧ください

複数のコンピューターでこれを回避するためにtccprofile.pyGitHubで入手可能なpythonスクリプトを使用できます

あなたができることとできないことについての詳細な議論はここにあります

私の知る限り、これはMojave以降のユーザーの許可を求める必要を回避する唯一の方法です。


1
自分の個人用スクリプトのMDMプロファイルを取得することは実際的ではありません。SIPが無効になっている場合、データベースを編集できないのはなぜですか。システム自体を直接オフにできないことは認識していますが、SIPがなければ、すべてのホワイトリストを格納するデータベースを含め、コンピューター上のファイルを編集できるはずです。
Wowfunhappy 2018年

1
どうやら、AppleはプライベートAPI guarded_open_npを使用して、このデータベースへのアクセス方法を変更しました。私はすでに、IDA ProでこのAPIをリバースエンジニアリングしようとしているロシアのハッカーの投稿をいくつか見ましたが、今のところ大きな成功はありません。
jvarela 2018年

Appleが通常どのようにホワイトリストを編集するかに関係なく、データベースエディターで開いて読み取ることができるという事実によって証明されるように、それは標準のsqliteデータベースであるように見えます。ファイルを直接編集および置換できない別の理由がある場合(たとえば、macOSがデータベースのチェックサムを格納し、そのチェックサム自体がAppleによって暗号化されている場合)、これについての明確で包括的な説明をご覧くださいあなたの答えで!ありがとうございました。
Wowfunhappy

1
+1、しかし私はブログを信用していません。そのウェブサイトからコンテンツを取得して直接引用することも、ドライブなどに追加することもできますか?
JBis 2018年

2

エントリを削除するためにこれを見つけました。

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db '「%appnamehere%」のようなクライアントのアクセスから削除

appnamehere」を、ユーザー補助機能の一覧に表示されているアプリの名前に置き換えます(%記号はそのままにします)。


2
これは、権限を追加するのではなく、データベースからアプリを削除しますよね?私が試したとき(追加または削除)、何もしないようでした。
Wowfunhappy

1
カタリナでは、どういうわけか、ファイルをrootとして見ることすらできません... そして、私がrootとしてディレクトリにアクセスError: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database fileしようとするとls、表示されますls: : Operation not permitted
マイケル

@マイケルはTCC.dbカタリナで読むことができましたか?私も行うことができないだけでなく同じ問題を抱えているls中でcom.apple.TCC、ディレクトリ
WallTearer

1
@WallTearerはい、システム環境設定のセキュリティとプライバシーの下で、ターミナルや/ bin / bashへのファイルシステムへのフルアクセスを有効にする必要があります
Michael

@マイケルクール、ありがとう!私もフルディスクアクセス可能にするために同様の提案で次の記事を読んでいた同じ瞬間に- blog.kolide.com/macos-catalina-osquery-a6753dc3c35cを最後に、私はiTerm2へのアクセスを許可し、tccutilでセキュリティ設定を読み込むことができました。sudo tccutil --listgithub.com/jacobsalmela/tccutil)のようなpyユーティリティ
WallTearer

0

SIPはライブラリディレクトリをサポートしていません。したがって、いくつかのコマンドを使用して、ターミナルからTCC.dbファイルに書き込むことができます。

ここにリンクがあります: SIPについて


TCC.dbファイルは、ディレクトリが保護されていなくてもSIPによって保護されています。私が知っているようにちょうど非常にかかわらず、I'dを気にしないのコマンドは、私は、ホワイトリストのアプリケーションようになります。
Wowfunhappy

apple.stackexchange.com/questions/362865/… このリンクはクエリに役立つ可能性があります
Coder123
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.