macOS Keychain

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

WhiteIntel, karanlık ağ destekli bir arama motorudur ve şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevler sunar.

WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:


Anahtarlık Anahtarları

  • Kullanıcı Anahtarlığı (~/Library/Keychains/login.keycahin-db), uygulama şifreleri, internet şifreleri, kullanıcı tarafından oluşturulan sertifikalar, ağ şifreleri ve kullanıcı tarafından oluşturulan genel/özel anahtarlar gibi kullanıcıya özgü kimlik bilgilerini saklamak için kullanılır.

  • Sistem Anahtarlığı (/Library/Keychains/System.keychain), WiFi şifreleri, sistem kök sertifikaları, sistem özel anahtarları ve sistem uygulama şifreleri gibi sistem genelindeki kimlik bilgilerini saklar.

Şifre Anahtarlığı Erişimi

Bu dosyalar, doğal korumaya sahip olmasalar da indirilebilirler ve şifrelerin şifresiz metinle çözülmesi için kullanıcının düz metin şifresine ihtiyaç duyarlar. Chainbreaker gibi bir araç şifre çözme için kullanılabilir.

Anahtarlık Girişleri Korumaları

ACL'ler

Anahtarlıkta her giriş, anahtarlık girişinde çeşitli işlemleri kimin yapabileceğini belirleyen Erişim Kontrol Listeleri (ACL'ler) tarafından yönetilir, bunlar şunları içerir:

  • ACLAuhtorizationExportClear: Sahibin sırrın açık metnini almasına izin verir.

  • ACLAuhtorizationExportWrapped: Sahibin sırrı başka bir sağlanan şifre ile şifrelenmiş açık metin olarak almasına izin verir.

  • ACLAuhtorizationAny: Sahibin herhangi bir işlemi gerçekleştirmesine izin verir.

ACL'ler, bu işlemleri sorunsuzca gerçekleştirebilen güvenilir uygulamaların listesi ile desteklenir. Bu şunları içerebilir:

  • Nil (izin gerekmez, herkes güvenilir)

  • Boş bir liste (hiç kimse güvenilir değil)

  • Belirli uygulamaların listesi.

Ayrıca giriş, ACLAuthorizationPartitionID anahtarını içerebilir, bu da teamid, apple ve cdhash'yi tanımlamak için kullanılır.

  • Eğer teamid belirtilmişse, giriş değerine izin vermek için kullanılan uygulamanın aynı teamid'ye sahip olması gerekir.

  • Eğer apple belirtilmişse, uygulamanın Apple tarafından imzalanmış olması gerekir.

  • Eğer cdhash belirtilmişse, uygulamanın belirli cdhash'e sahip olması gerekir.

Bir Anahtarlık Girişi Oluşturma

Anahtarlık Erişimi.app kullanılarak yeni bir giriş oluşturulduğunda, aşağıdaki kurallar geçerlidir:

  • Tüm uygulamalar şifreleyebilir.

  • Hiçbir uygulama dışa aktaramaz/şifre çözemez (kullanıcıya soru sormadan).

  • Tüm uygulamalar bütünlük kontrolünü görebilir.

  • Hiçbir uygulama ACL'leri değiştiremez.

  • PartitionID apple olarak ayarlanır.

Bir uygulama anahtarlıkta bir giriş oluşturduğunda, kurallar biraz farklıdır:

  • Tüm uygulamalar şifreleyebilir.

  • Yalnızca oluşturan uygulama (veya açıkça eklenen diğer uygulamalar) dışa aktarabilir/şifre çözebilir (kullanıcıya soru sormadan).

  • Tüm uygulamalar bütünlük kontrolünü görebilir.

  • Hiçbir uygulama ACL'leri değiştiremez.

  • PartitionID teamid:[teamID buraya] olarak ayarlanır.

Anahtarlığa Erişim

security

# Dump all metadata and decrypted secrets (a lot of pop-ups)
security dump-keychain -a -d

# Find generic password for the "Slack" account and print the secrets
security find-generic-password -a "Slack" -g

# Change the specified entrys PartitionID entry
security set-generic-password-parition-list -s "test service" -a "test acount" -S

API'ler

Anahtarlık numaralandırma ve sızdırma işlemi, bir uyarı oluşturmayacak sırların LockSmith aracı ile yapılabilir. LockSmith aracı ile yapılabilir.

Her anahtarlık girişi hakkında bilgi alın ve listelenir:

  • SecItemCopyMatching API'si her giriş hakkında bilgi verir ve kullanırken ayarlayabileceğiniz bazı özellikler bulunmaktadır:

  • kSecReturnData: Doğru ise verileri şifrelemeye çalışır (potansiyel açılır pencereleri önlemek için false olarak ayarlayın)

  • kSecReturnRef: Anahtarlık öğesine referansı da alın (daha sonra açılır pencereler olmadan şifreleyebileceğinizi gördüğünüzde true olarak ayarlayın)

  • kSecReturnAttributes: Girişler hakkında meta verileri alın

  • kSecMatchLimit: Kaç sonuç döndürüleceği

  • kSecClass: Hangi türde anahtarlık girişi

Her girişin ACL'leri alın:

  • SecAccessCopyACLList API'si ile anahtarlık öğesi için ACL'yi alabilir ve ACL'lerin listesini döndürecektir (ACLAuhtorizationExportClear ve önceki diğerleri gibi) her liste şunları içerir:

  • Açıklama

  • Güvenilen Uygulama Listesi. Bu şunlar olabilir:

  • Bir uygulama: /Applications/Slack.app

  • Bir ikili: /usr/libexec/airportd

  • Bir grup: group://AirPort

Veriyi dışa aktarın:

  • SecKeychainItemCopyContent API'si düz metni alır

  • SecItemExport API'si anahtarları ve sertifikaları dışa aktarır ancak içeriği şifreli olarak dışa aktarmak için şifreleri ayarlamak gerekebilir

Ve bir uyarı oluşturmadan bir sırrı dışa aktarabilmek için gerekenler:

  • Eğer 1'den fazla güvenilen uygulama listelenmişse:

  • Uygun yetkilendirmelere ihtiyaç vardır (Nil, veya sırra erişim yetkisi için yetkilendirme izin listesinde olmak)

  • Kod imzasının PartitionID ile eşleşmesi gerekir

  • Kod imzasının güvenilen bir uygulamanın kod imzasıyla eşleşmesi gerekir (veya doğru KeychainAccessGroup üyesi olmak)

  • Eğer tüm uygulamalar güvenilirse:

  • Uygun yetkilendirmelere ihtiyaç vardır

  • Kod imzasının PartitionID ile eşleşmesi gerekir

  • Eğer PartitionID yoksa, bu gerekli değildir

Bu nedenle, eğer 1 uygulama listelenmişse, o uygulamaya kod enjekte etmeniz gerekir.

Eğer partitionID'de apple belirtilmişse, osascript ile buna erişebilirsiniz, böylece partitionID'de apple olan tüm uygulamalara güvenen herhangi bir şey. Python bunun için de kullanılabilir.

İki ek özellik

  • Görünmez: Girişi UI Anahtarlık uygulamasından gizlemek için bir boolean bayrağıdır

  • Genel: Meta verileri saklamak için kullanılır (bu nedenle ŞİFRELENMEMİŞTİR)

  • Microsoft, hassas uç noktalara erişmek için tüm yenileme tokenlarını düz metinde saklıyordu.

Referanslar

WhiteIntel, şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından tehlikeye atılıp atılmadığını kontrol etmek için ücretsiz işlevsellikler sunan karanlık web destekli bir arama motorudur.

WhiteIntel'ın başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve ücretsiz olarak motorlarını deneyebilirsiniz:

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated