macOS Dirty NIB
Last updated
Last updated
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Teknik hakkında daha fazla detay için orijinal gönderiyi kontrol edin: https://blog.xpnsec.com/dirtynib/ ve https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/ . İşte bir özet:
Nib (NeXT Interface Builder'ın kısaltması) dosyaları, Apple'ın geliştirme ekosisteminin bir parçası olarak, uygulamalardaki UI öğelerini ve etkileşimlerini tanımlamak için tasarlanmıştır. Pencereler ve düğmeler gibi serileştirilmiş nesneleri kapsar ve çalışma zamanında yüklenir. Sürekli kullanımlarına rağmen, Apple artık daha kapsamlı UI akış görselleştirmesi için Storyboard'ları önermektedir.
Ana Nib dosyası, uygulamanın Info.plist
dosyasında NSMainNibFile
değerinde referans alınır ve uygulamanın main
fonksiyonunda yürütülen NSApplicationMain
fonksiyonu tarafından yüklenir.
Başlangıç Ayarı:
XCode kullanarak yeni bir NIB dosyası oluşturun.
Arayüze bir Nesne ekleyin, sınıfını NSAppleScript
olarak ayarlayın.
Başlangıç source
özelliğini Kullanıcı Tanımlı Çalışma Zamanı Özellikleri aracılığıyla yapılandırın.
Kod Yürütme Aleti:
Kurulum, AppleScript'in talep üzerine çalıştırılmasını sağlar.
Apple Script
nesnesini etkinleştirmek için bir düğme entegre edin, özellikle executeAndReturnError:
seçicisini tetikleyin.
Test Etme:
Test amaçlı basit bir Apple Script:
XCode hata ayıklayıcısında çalıştırarak ve düğmeye tıklayarak test edin.
Hazırlık:
Hedef uygulamayı (örneğin, Pages) ayrı bir dizine (örneğin, /tmp/
) kopyalayın.
Gatekeeper sorunlarını aşmak ve önbelleğe almak için uygulamayı başlatın.
NIB Dosyasını Üzerine Yazma:
Mevcut bir NIB dosyasını (örneğin, Hakkında Panel NIB) oluşturulan DirtyNIB dosyasıyla değiştirin.
Yürütme:
Uygulama ile etkileşimde bulunarak yürütmeyi tetikleyin (örneğin, Hakkında
menü öğesini seçerek).
Kullanıcı izni olmadan fotoğraflar gibi kullanıcı verilerine erişmek ve çıkarmak için AppleScript'i değiştirin.
Rastgele kod yürütmeyi gösteren kötü amaçlı bir .xib dosyası örneğine erişin ve gözden geçirin.
https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/ adresinde kirli bir nib oluşturma üzerine bir eğitim bulabilirsiniz.
Başlatma Kısıtlamaları, uygulama yürütmesini beklenmedik yerlerden (örneğin, /tmp
) engeller.
NIB dosyası enjeksiyonu için hedeflenebilecek Başlatma Kısıtlamaları ile korunmayan uygulamaları tanımlamak mümkündür.
macOS Sonoma'dan itibaren, Uygulama paketleri içindeki değişiklikler kısıtlanmıştır. Ancak, önceki yöntemler şunları içeriyordu:
Uygulamayı farklı bir konuma (örneğin, /tmp/
) kopyalamak.
İlk korumaları aşmak için uygulama paketindeki dizinleri yeniden adlandırmak.
Uygulamayı Gatekeeper ile kaydetmek için çalıştırdıktan sonra, uygulama paketini değiştirmek (örneğin, MainMenu.nib'i Dirty.nib ile değiştirmek).
Dizinleri geri yeniden adlandırmak ve enjeksiyon yapılan NIB dosyasını yürütmek için uygulamayı yeniden çalıştırmak.
Not: Son macOS güncellemeleri, Gatekeeper önbelleklemesinden sonra uygulama paketleri içinde dosya değişikliklerini engelleyerek bu istismarı etkisiz hale getirmiştir.
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)