macOS Tehlikeli Yetkiler & TCC izinleri
Reading time: 6 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
warning
com.apple
ile başlayan yetkilerin üçüncü taraflara sunulmadığını, yalnızca Apple'ın bunları verebileceğini unutmayın.
Yüksek
com.apple.rootless.install.heritable
Yetki com.apple.rootless.install.heritable
, SIP'yi atlamaya izin verir. Daha fazla bilgi için bunu kontrol edin.
com.apple.rootless.install
Yetki com.apple.rootless.install
, SIP'yi atlamaya izin verir. Daha fazla bilgi için bunu kontrol edin.
com.apple.system-task-ports
(önceden task_for_pid-allow
olarak adlandırılıyordu)
Bu yetki, çekirdek hariç herhangi bir süreç için görev portunu almayı sağlar. Daha fazla bilgi için bunu kontrol edin.
com.apple.security.get-task-allow
Bu yetki, com.apple.security.cs.debugger
yetkisine sahip diğer süreçlerin, bu yetkiye sahip ikili dosya tarafından çalıştırılan sürecin görev portunu almasına ve kod enjekte etmesine izin verir. Daha fazla bilgi için bunu kontrol edin.
com.apple.security.cs.debugger
Hata Ayıklama Aracı Yetkisine sahip uygulamalar, task_for_pid()
çağrısı yaparak, Get Task Allow
yetkisi true
olarak ayarlanmış imzasız ve üçüncü taraf uygulamalar için geçerli bir görev portu alabilir. Ancak, hata ayıklama aracı yetkisi olsa bile, bir hata ayıklayıcı Get Task Allow
yetkisine sahip olmayan süreçlerin görev portlarını alamaz ve bu nedenle Sistem Bütünlüğü Koruması tarafından korunur. Daha fazla bilgi için bunu kontrol edin.
com.apple.security.cs.disable-library-validation
Bu yetki, Apple tarafından imzalanmamış veya ana yürütücü ile aynı Takım Kimliği ile imzalanmamış çerçeveleri, eklentileri veya kütüphaneleri yüklemeye izin verir, bu nedenle bir saldırgan bazı keyfi kütüphane yüklemelerini kötüye kullanarak kod enjekte edebilir. Daha fazla bilgi için bunu kontrol edin.
com.apple.private.security.clear-library-validation
Bu yetki, com.apple.security.cs.disable-library-validation
ile çok benzer, ancak doğrudan kütüphane doğrulamasını devre dışı bırakmak yerine, sürecin bunu devre dışı bırakmak için bir csops
sistem çağrısı yapmasına izin verir.
Daha fazla bilgi için bunu kontrol edin.
com.apple.security.cs.allow-dyld-environment-variables
Bu yetki, kütüphaneleri ve kodu enjekte etmek için kullanılabilecek DYLD ortam değişkenlerini kullanmaya izin verir. Daha fazla bilgi için bunu kontrol edin.
com.apple.private.tcc.manager
veya com.apple.rootless.storage
.TCC
Bu bloga göre ve bu bloga göre, bu yetkiler TCC veritabanını değiştirmeye izin verir.
system.install.apple-software
ve system.install.apple-software.standar-user
Bu yetkiler, kullanıcıdan izin istemeden yazılım yüklemeye izin verir, bu da yetki yükseltme için faydalı olabilir.
com.apple.private.security.kext-management
Bir çekirdek uzantısını yüklemek için çekirdekten talepte bulunmak için gereken yetki.
com.apple.private.icloud-account-access
Yetki com.apple.private.icloud-account-access
, com.apple.iCloudHelper
XPC servisi ile iletişim kurmayı sağlar ve bu da iCloud token'ları sağlar.
iMovie ve Garageband bu yetkiye sahipti.
Bu yetkiden icloud token'ları almak için istismar hakkında daha fazla bilgi için konuşmayı kontrol edin: #OBTS v5.0: "Mac'inizde Olan, Apple'ın iCloud'unda Kalır?!" - Wojciech Regula
com.apple.private.tcc.manager.check-by-audit-token
TODO: Bunun neye izin verdiğini bilmiyorum
com.apple.private.apfs.revert-to-snapshot
TODO: bu raporda bu, bir yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabileceği belirtiliyor. Bunu nasıl yaptığını biliyorsanız bir PR gönderin lütfen!
com.apple.private.apfs.create-sealed-snapshot
TODO: bu raporda bu, bir yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabileceği belirtiliyor. Bunu nasıl yaptığını biliyorsanız bir PR gönderin lütfen!
keychain-access-groups
Bu yetki, uygulamanın erişim sağladığı anahtar zinciri gruplarını listeler:
<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>
kTCCServiceSystemPolicyAllFiles
Tam Disk Erişimi izinlerini verir, sahip olabileceğiniz TCC'nin en yüksek izinlerinden biridir.
kTCCServiceAppleEvents
Uygulamaya, görevleri otomatikleştirmek için yaygın olarak kullanılan diğer uygulamalara olaylar göndermesine izin verir. Diğer uygulamaları kontrol ederek, bu diğer uygulamalara verilen izinleri kötüye kullanabilir.
Kullanıcıdan şifresini istemelerini sağlamak gibi:
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'
Or making them perform keyfi eylemler.
kTCCServiceEndpointSecurityClient
Kullanıcının TCC veritabanını yazma gibi izinler verir.
kTCCServiceSystemPolicySysAdminFiles
Kullanıcının ev dizin yolunu değiştiren NFSHomeDirectory
niteliğini değiştirmeye izin verir ve böylece TCC'yi bypass etmeye olanak tanır.
kTCCServiceSystemPolicyAppBundles
Uygulama paketinin içindeki dosyaları değiştirmeye izin verir (app.app içinde), bu varsayılan olarak yasaktır.
Bu erişimi kimin sahip olduğunu Sistem Ayarları > Gizlilik ve Güvenlik > Uygulama Yönetimi altında kontrol etmek mümkündür.
kTCCServiceAccessibility
Bu süreç, macOS erişilebilirlik özelliklerini kötüye kullanma yeteneğine sahip olacak, bu da örneğin tuş vuruşlarını basabilmesi anlamına gelir. Böylece Finder gibi bir uygulamayı kontrol etmek için erişim talep edebilir ve bu izinle diyalogu onaylayabilir.
Orta
com.apple.security.cs.allow-jit
Bu yetki, mmap()
sistem fonksiyonuna MAP_JIT
bayrağını geçirerek yazılabilir ve çalıştırılabilir bellek oluşturmayı sağlar. Daha fazla bilgi için bunu kontrol edin.
com.apple.security.cs.allow-unsigned-executable-memory
Bu yetki, C kodunu geçersiz kılmayı veya yamanmayı sağlar, uzun süredir kullanılmayan NSCreateObjectFileImageFromMemory
(temelde güvensizdir) veya DVDPlayback çerçevesini kullanmayı sağlar. Daha fazla bilgi için bunu kontrol edin.
caution
Bu yetkiyi dahil etmek, uygulamanızı bellek-güvensiz kod dillerindeki yaygın güvenlik açıklarına maruz bırakır. Uygulamanızın bu istisnaya ihtiyaç duyup duymadığını dikkatlice değerlendirin.
com.apple.security.cs.disable-executable-page-protection
Bu yetki, disk üzerindeki kendi çalıştırılabilir dosyalarının bölümlerini değiştirmeye izin verir. Daha fazla bilgi için bunu kontrol edin.
caution
Çalıştırılabilir Bellek Koruma Yetkisini Devre Dışı Bırakmak, uygulamanızdan temel bir güvenlik korumasını kaldıran aşırı bir yetkidir ve bir saldırganın uygulamanızın çalıştırılabilir kodunu tespit edilmeden yeniden yazmasını mümkün kılar. Mümkünse daha dar yetkileri tercih edin.
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
Bu yetki, (varsayılan olarak yasak olan) bir nullfs dosya sistemini bağlamaya izin verir. Araç: mount_nullfs.
kTCCServiceAll
Bu blog yazısına göre, bu TCC izni genellikle şu şekilde bulunur:
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
Sürecin tüm TCC izinlerini istemesine izin verin.
kTCCServicePostEvent
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.