แก้ไข 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 ได้
    • โปรดทราบว่าการป้องกันความถูกต้องของระบบถูกปิดใช้งาน

เป็นไปได้ไหมที่จะแก้ไขฐานข้อมูล sqlite เหล่านี้โดยตรงเพื่อให้การอนุญาตโดยอัตโนมัติและเลี่ยงผ่านพรอมต์ความปลอดภัยเหล่านี้


@ user3439894 ขอบคุณ SIP ถูกปิดการใช้งานบนเครื่องของฉัน ดูเหมือนว่าโปรแกรมไพ ธ อนนั้นจะเข้ากันได้กับการป้องกัน "Automation" ใหม่ของ Mojave
Wowfunhappy

สิ่งที่ส่งกิจกรรมของ Apple ไปยังแอพต่างๆ (เช่นคุณมี 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มันจะเจ็บปวด แต่มันจะเหมือนกับการริพ bandaid off
CJK

คำตอบ:


7

ในการเข้าถึงฐานข้อมูล TCC.db โดยตรงไม่ได้รับการสนับสนุนจาก Apple อีกต่อไปแม้ว่าคุณจะปิดการใช้งาน SIPเนื่องจากนโยบายของพวกเขาในการปกป้องผู้ใช้จาก บริษัท ใหญ่ ๆ ที่ต้องการติดตามทุกสิ่งที่คุณทำทางออนไลน์ การอนุญาตให้แก่ผู้ใช้ อย่างไรก็ตามแม้ในโมฮาวีจะมีวิธีหลีกเลี่ยงปัญหานี้ แต่มีปัญหา: มันใช้ได้เฉพาะกับคอมพิวเตอร์ที่ลงทะเบียนในโปรแกรม MDMเท่านั้น หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรม MDM ไปที่นี่

เพื่อบายพาสนี้สำหรับคอมพิวเตอร์หลายประการที่คุณสามารถใช้สคริปต์หลามtccprofile.pyที่มีอยู่ในGitHub

การอภิปรายในเชิงลึกของสิ่งที่คุณสามารถและไม่สามารถทำสามารถพบได้ที่นี่

เท่าที่ฉันรู้นี่เป็นวิธีเดียวที่จะหลีกเลี่ยงความต้องการขออนุญาตผู้ใช้จากโมฮาวีเป็นต้นไป


1
มันใช้งานไม่ได้จริง ๆ ที่จะได้รับโปรไฟล์ MDM สำหรับสคริปต์ส่วนตัวของฉันเอง เมื่อปิดใช้งาน SIP สิ่งที่ป้องกันไม่ให้ฉันแก้ไขฐานข้อมูลคืออะไร ฉันรู้ว่าระบบนั้นไม่สามารถปิดได้โดยตรง แต่หากไม่มี SIP ฉันควรจะสามารถแก้ไขไฟล์ใด ๆ ในคอมพิวเตอร์ของฉันรวมถึงฐานข้อมูลที่เก็บรายการที่อนุญาตทั้งหมด
Wowfunhappy

1
เห็นได้ชัดว่า Apple เปลี่ยนวิธีการเข้าถึงฐานข้อมูลนี้โดยใช้ private API guarded_open_np ฉันเห็นโพสต์ของแฮ็กเกอร์ชาวรัสเซียบางคนพยายามที่จะทำวิศวกรรม API นี้ด้วย IDA Pro แต่ก็ยังไม่ประสบความสำเร็จ
jvarela

ไม่ว่าแอปเปิ้ลจะแก้ไขรายการที่อนุญาตตามปกติเป็นอย่างไรดูเหมือนว่าจะเป็นฐานข้อมูล sqlite มาตรฐานตามข้อเท็จจริงที่ว่ามันสามารถเปิดและอ่านได้ในเครื่องมือแก้ไขฐานข้อมูล หากมีเหตุผลอื่นว่าทำไมไฟล์เป็นไปไม่ได้ที่จะแก้ไขและแทนที่โดยตรง (ตัวอย่างเช่นหาก macOS เก็บ checksum ของ databse และ Checkum นั้นเข้ารหัสด้วยตัวเองโดย Apple) ฉันต้องการดูคำอธิบายที่ชัดเจนและครอบคลุมของเรื่องนี้ ในคำตอบของคุณ! ขอบคุณ.
Wowfunhappy

1
+1 แต่ฉันไม่เชื่อถือบล็อก เราสามารถนำเนื้อหาจากเว็บไซต์นั้นและอ้างถึงมันโดยตรงหรือเพิ่มลงในไดรฟ์หรืออะไรทำนองนั้น?
JBis

2

ฉันพบสิ่งนี้เพื่อลบรายการ

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db 'ลบจากการเข้าถึงที่ลูกค้าเช่น " %appnamehere%"'

แทนที่ " appnamehere" ด้วยชื่อแอพตามที่ปรากฏในรายการการเข้าถึง (เก็บเครื่องหมาย% ไว้)


2
สิ่งนี้จะลบแอพออกจากฐานข้อมูลไม่ใช่เพิ่มสิทธิ์ใช่ไหม มันไม่ได้ทำอะไรเลยเมื่อฉันลอง (เพิ่มหรือลบ)
Wowfunhappy

1
ใน Catalina คุณลึกลับไม่สามารถแม้แต่จะเห็นแฟ้มเป็นราก ... Error: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database fileและถ้าฉันพยายามที่จะไดเรกทอรีเป็นรากที่ฉันได้รับls ls: : Operation not permitted
ไมเคิล

@ Michael คุณสามารถอ่านTCC.dbCatalina ได้หรือไม่ ฉันมีปัญหาเดียวกันเช่นกันไม่สามารถทำlsในcom.apple.TCCไดเรกทอรี
WallTearer

1
@ WallTearer ใช่ฉันต้องเปิดใช้งานการเข้าถึงระบบไฟล์ไปยัง Terminal และ / หรือ / bin / bash อย่างสมบูรณ์ภายใต้ความปลอดภัยและความเป็นส่วนตัวใน System Preferences
Michael

@Michael เจ๋งขอบคุณ! ในขณะเดียวกันฉันก็อ่านบทความต่อไปนี้พร้อมคำแนะนำที่คล้ายกันเพื่อเปิดใช้งานการเข้าถึงดิสก์แบบเต็ม - blog.kolide.com/macos-catalina-osquery-a6753dc3c35cในที่สุดฉันก็อนุญาตให้เข้าถึง iTerm2 และสามารถอ่านการตั้งค่าความปลอดภัยด้วย tccutil โปรแกรมอรรถประโยชน์ py เช่นsudo tccutil --list( github.com/jacobsalmela/tccutil )
WallTearer

0

SIP ไม่รองรับไดเร็กทอรี Library ดังนั้นจึงหมายความว่าคุณยังสามารถเขียนไฟล์ TCC.db ผ่านเทอร์มินัลด้วยคำสั่งบางอย่าง

นี่คือลิงค์: เกี่ยวกับ SIP


ไฟล์ TCC.db ได้รับการคุ้มครองโดย SIP แม้ว่าไดเรกทอรีของพวกเขาจะไม่ ฉันไม่สนใจเลย - ฉันแค่อยากรู้ว่าคำสั่งใดจะให้แอปพลิเคชันที่อนุญาตพิเศษ
Wowfunhappy

apple.stackexchange.com/questions/362865/… ลิงก์นี้อาจช่วยคุณได้
Coder123
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.