macOS Dirty NIB

AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları:

Teknik hakkında daha fazla ayrıntı için orijinal yayına bakın: https://blog.xpnsec.com/dirtynib/**. İşte bir özet:

NIB dosyaları, Apple'ın geliştirme ekosisteminin bir parçası olarak uygulamalardaki UI öğelerini ve etkileşimlerini tanımlamak için kullanılır. Pencereler ve düğmeler gibi seri nesneleri içerir ve çalışma zamanında yüklenir. Apple, NIB dosyalarının devam eden kullanımına rağmen, daha kapsamlı bir UI akış görselleştirmesi için Artık Storyboard'ları önermektedir.

NIB Dosyalarıyla İlgili Güvenlik Endişeleri

NIB dosyalarının bir güvenlik riski olabileceğini unutmamak önemlidir. Bunlar, keyfi komutları yürütebilir ve bir uygulamadaki NIB dosyalarının değiştirilmesi, Gatekeeper'ın uygulamayı yürütmesini engellemez, bu da ciddi bir tehdit oluşturur.

Kirli NIB Enjeksiyon Süreci

Bir NIB Dosyası Oluşturma ve Ayarlama

  1. Başlangıç Ayarları:

  • XCode kullanarak yeni bir NIB dosyası oluşturun.

  • Arayüze bir Nesne ekleyin ve sınıfını NSAppleScript olarak ayarlayın.

  • Başlangıç source özelliğini Kullanıcı Tanımlı Çalışma Zamanı Öznitelikleri aracılığıyla yapılandırın.

  1. Kod Yürütme Aracı:

  • Ayarlar, AppleScript'in isteğe bağlı olarak çalıştırılmasını sağlar.

  • Apple Script nesnesini etkinleştirmek için bir düğme entegre edin ve özellikle executeAndReturnError: seçicisini tetikleyin.

  1. Test:

  • Test amaçlı basit bir Apple Script:

set theDialogText to "PWND"
display dialog theDialogText
  • XCode hata ayıklayıcısında çalıştırarak ve düğmeye tıklayarak test edin.

Bir Uygulamayı Hedefleme (Örnek: Pages)

  1. Hazelik:

  • Hedef uygulamayı (örneğin, Pages) ayrı bir dizine (örneğin, /tmp/) kopyalayın.

  • Gatekeeper sorunlarını atlamak ve önbelleğe almak için uygulamayı başlatın.

  1. NIB Dosyasını Üzerine Yazma:

  • Varolan bir NIB dosyasını (örneğin, About Panel NIB) oluşturulan DirtyNIB dosyasıyla değiştirin.

  1. Yürütme:

  • Uygulamayla etkileşime geçerek (örneğin, About menü öğesini seçerek) yürütmeyi tetikleyin.

Kanıt: Kullanıcı Verilerine Erişim

  • AppleScript'i değiştirerek, kullanıcının izni olmaksızın fotoğraflar gibi kullanıcı verilerine erişebilir ve çıkarabilirsiniz.

Örnek Kod: Zararlı .xib Dosyası

Başlatma Kısıtlamalarıyla İlgilenme

  • Başlatma Kısıtlamaları, beklenmeyen konumlardan (örneğin, /tmp) uygulama yürütmesini engeller.

  • Başlatma Kısıtlamaları tarafından korunmayan uygulamaları belirlemek ve NIB dosyası enjeksiyonu için hedef almak mümkündür.

Ek macOS Korumaları

macOS Sonoma'dan itibaren, App paketleri içindeki değişiklikler kısıtlanmıştır. Ancak, önceki yöntemler şunları içerir:

  1. Uygulamayı farklı bir konuma (örneğin, /tmp/) kopyalama.

  2. Uygulama paketi içindeki dizinleri yeniden adlandırarak başlangıç korumalarını atlatma.

  3. Uygulamayı Gatekeeper ile kaydetmek için çalıştırdıktan sonra, uygulama paketini (örneğin, MainMenu.nib'i Dirty.nib ile değiştirme) değiştirme.

  4. Dizinleri yeniden adlandırma ve enjekte edilen NIB dosyasını yürütmek için uygulamayı yeniden çalıştırma.

Not: Son macOS güncellemeleri, Gatekeeper önbelleğinde dosya değişikliklerini engelleyerek bu saldırıyı etkisiz hale getirmiştir.

Last updated