macOS Installers Abuse
Pkg Temel Bilgiler
macOS yükleyici paketi (aynı zamanda .pkg
dosyası olarak da bilinir), macOS tarafından yazılım dağıtımı için kullanılan bir dosya formatıdır. Bu dosyalar, bir yazılım parçasının doğru bir şekilde yüklenmesi ve çalışması için gereken her şeyi içeren bir kutunun içindeymiş gibi davranır.
Paket dosyası, hedef bilgisayara yüklenecek dosya ve dizinlerin hiyerarşisini tutan bir arşivdir. Ayrıca, yapılandırma dosyalarını ayarlamak veya yazılımın eski sürümlerini temizlemek gibi yüklemeden önce ve sonra görevleri yerine getirmek için scriptler de içerebilir.
Hiyerarşi
Dağıtım (xml): Özelleştirmeler (başlık, karşılama metni…) ve script/yükleme kontrolleri
Paket Bilgisi (xml): Bilgi, yükleme gereksinimleri, yükleme yeri, çalıştırılacak scriptlerin yolları
Malzeme listesi (bom): Yüklenmesi, güncellenmesi veya kaldırılması gereken dosyaların listesi ve dosya izinleri
Yük (CPIO arşivi gzip sıkıştırılmış): Paket Bilgisi'nden
install-location
'da yüklenecek dosyalarScriptler (CPIO arşivi gzip sıkıştırılmış): Yükleme öncesi ve sonrası scriptler ve yürütme için geçici bir dizine çıkarılan daha fazla kaynak.
Sıkıştırmayı Aç
In order to visualize the contents of the installer without decompressing it manually you can also use the free tool Suspicious Package.
DMG Temel Bilgiler
DMG dosyaları, veya Apple Disk Görüntüleri, Apple'ın macOS'u tarafından disk görüntüleri için kullanılan bir dosya formatıdır. Bir DMG dosyası esasen monte edilebilir bir disk görüntüsü (kendi dosya sistemini içerir) olup, genellikle sıkıştırılmış ve bazen şifrelenmiş ham blok verileri içerir. Bir DMG dosyasını açtığınızda, macOS onu fiziksel bir disk gibi monte eder, böylece içeriğine erişebilirsiniz.
Not edin ki .dmg
yükleyicileri çok sayıda formatı destekler, geçmişte bazıları zafiyetler içerdiği için kernel kodu yürütme elde etmek için istismar edilmiştir.
Hiyerarşi
Bir DMG dosyasının hiyerarşisi içeriğe bağlı olarak farklı olabilir. Ancak, uygulama DMG'leri için genellikle bu yapıyı takip eder:
Üst Düzey: Bu, disk görüntüsünün köküdür. Genellikle uygulamayı ve muhtemelen Uygulamalar klasörüne bir bağlantı içerir.
Uygulama (.app): Bu, gerçek uygulamadır. macOS'ta, bir uygulama genellikle uygulamayı oluşturan birçok bireysel dosya ve klasörü içeren bir pakettir.
Uygulamalar Bağlantısı: Bu, macOS'taki Uygulamalar klasörüne bir kısayoldur. Bunun amacı, uygulamayı yüklemenizi kolaylaştırmaktır. Uygulama dosyasını bu kısayola sürükleyerek uygulamayı yükleyebilirsiniz.
pkg istismarı ile Privesc
Kamu dizinlerinden yürütme
Eğer bir ön veya sonrası yükleme betiği örneğin /var/tmp/Installerutil
dizininden yürütülüyorsa ve saldırgan bu betiği kontrol edebiliyorsa, her yürütüldüğünde ayrıcalıkları artırabilir. Veya başka bir benzer örnek:
AuthorizationExecuteWithPrivileges
Bu, birkaç yükleyici ve güncelleyici tarafından root olarak bir şey yürütmek için çağrılan bir kamusal işlevdir. Bu işlev, yürütülecek dosyanın yolunu parametre olarak kabul eder, ancak eğer bir saldırgan bu dosyayı değiştirebilirse, root ile yürütmesini istismar edebilir ve ayrıcalıkları artırabilir.
For more info check this talk: https://www.youtube.com/watch?v=lTOItyjTTkw
Montaj ile yürütme
Eğer bir yükleyici /tmp/fixedname/bla/bla
yoluna yazıyorsa, yükleme sürecini kötüye kullanmak için yükleme sırasında herhangi bir dosyayı değiştirmek amacıyla /tmp/fixedname üzerinde noowners ile bir montaj oluşturmak mümkündür.
Bunun bir örneği CVE-2021-26089'dur; bu, root olarak yürütme elde etmek için dönemsel bir betiği üst üste yazmayı başarmıştır. Daha fazla bilgi için konuşmaya göz atın: OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl
pkg kötü amaçlı yazılım olarak
Boş Yük
Gerçek bir yük olmadan, sadece kötü amaçlı yazılım içeren ön ve sonrası yükleme betikleri ile bir .pkg
dosyası oluşturmak mümkündür.
Dağıtım xml'inde JS
Paketin dağıtım xml dosyasına <script>
etiketleri eklemek mümkündür ve bu kod yürütülecek ve system.run
kullanarak komutlar yürütülebilir:
Arka kapılı Yükleyici
dist.xml içinde bir betik ve JS kodu kullanan kötü niyetli yükleyici
Referanslar
Last updated