macOS Authorizations DB & Authd
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
/var/db/auth.db
konumunda bulunan veritabanı, hassas işlemleri gerçekleştirmek için izinleri saklamak amacıyla kullanılan bir veritabanıdır. Bu işlemler tamamen kullanıcı alanında gerçekleştirilir ve genellikle belirli bir eylemi gerçekleştirmek için çağıran istemcinin yetkilendirilip yetkilendirilmediğini kontrol etmesi gereken XPC hizmetleri tarafından kullanılır.
Başlangıçta bu veritabanı, /System/Library/Security/authorization.plist
içeriğinden oluşturulur. Daha sonra bazı hizmetler, bu veritabanına diğer izinleri eklemek veya mevcut verileri değiştirmek için ekleme yapabilir.
Kurallar, veritabanındaki rules
tablosunda saklanır ve aşağıdaki sütunları içerir:
id: Her kural için benzersiz bir tanımlayıcı, otomatik olarak artan ve birincil anahtar olarak hizmet eder.
name: Yetkilendirme sisteminde kuralı tanımlamak ve referans vermek için kullanılan kuralın benzersiz adı.
type: Kuralın türünü belirtir, yetkilendirme mantığını tanımlamak için 1 veya 2 değerleriyle sınırlıdır.
class: Kuralı belirli bir sınıfa kategorize eder, pozitif bir tam sayı olmasını sağlar.
"allow" izin vermek için, "deny" reddetmek için, "user" eğer grup özelliği erişime izin veren bir grup gösteriyorsa, "rule" bir dizide yerine getirilmesi gereken bir kuralı belirtir, "evaluate-mechanisms" ardından /System/Library/CoreServices/SecurityAgentPlugins/
veya /Library/Security//SecurityAgentPlugins içindeki bir paket adını veya yerleşik olanları içeren bir mechanisms
dizisi gelir.
group: Grup tabanlı yetkilendirme için kural ile ilişkili kullanıcı grubunu belirtir.
kofn: Toplam sayıdan kaç alt kuralın karşılanması gerektiğini belirleyen "k-of-n" parametresini temsil eder.
timeout: Kural tarafından verilen yetkilendirmenin süresinin dolmadan önceki süreyi tanımlar.
flags: Kuralın davranışını ve özelliklerini değiştiren çeşitli bayrakları içerir.
tries: Güvenliği artırmak için izin verilen yetkilendirme denemelerinin sayısını sınırlar.
version: Kuralın sürümünü sürüm kontrolü ve güncellemeler için takip eder.
created: Kuralın oluşturulduğu zaman damgasını kaydeder, denetim amaçları için.
modified: Kurala yapılan son değişikliğin zaman damgasını saklar.
hash: Kuralın bütünlüğünü sağlamak ve müdahaleyi tespit etmek için kuralın bir hash değerini tutar.
identifier: Kuralın dış referansları için benzersiz bir dize tanımlayıcı, örneğin bir UUID sağlar.
requirement: Kuralın belirli yetkilendirme gereksinimlerini ve mekanizmalarını tanımlayan serileştirilmiş verileri içerir.
comment: Belgelendirme ve açıklık için kural hakkında insan tarafından okunabilir bir açıklama veya yorum sunar.
Ayrıca https://www.dssw.co.uk/reference/authorization-rights/authenticate-admin-nonshared/ adresinde authenticate-admin-nonshared
ifadesinin anlamını görmek mümkündür:
Bu, istemcilerin hassas eylemleri gerçekleştirmesi için yetkilendirme taleplerini alacak bir daemon'dur. XPCServices/
klasörü içinde tanımlanmış bir XPC servisi olarak çalışır ve günlüklerini /var/log/authd.log
dosyasına yazar.
Ayrıca, güvenlik aracını kullanarak birçok Security.framework
API'sini test etmek mümkündür. Örneğin, AuthorizationExecuteWithPrivileges
çalıştırarak: security execute-with-privileges /bin/ls
Bu, /usr/libexec/security_authtrampoline /bin/ls
'yi root olarak fork ve exec edecektir; bu da ls'yi root olarak çalıştırmak için bir izin istemi gösterecektir:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)