PIE
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
PIE olarak derlenmiş bir ikili dosya, yani Pozisyon Bağımsız Yürütülebilir, programın her çalıştırıldığında farklı bellek konumlarında yüklenebileceği anlamına gelir, bu da sabit kodlanmış adresleri önler.
Bu ikili dosyaları istismar etmenin püf noktası, göreceli adresleri istismar etmektir—programın parçaları arasındaki ofsetler, mutlak konumlar değişse bile aynı kalır. PIE'yi atlatmak için, yalnızca bir adres sızdırmanız gerekir, genellikle yığın üzerinden format dizesi saldırıları gibi zafiyetler kullanarak. Bir adres elde ettiğinizde, diğerlerini sabit ofsetleri ile hesaplayabilirsiniz.
PIE ikili dosyalarını istismar etmede yardımcı bir ipucu, temel adreslerinin genellikle 000 ile bitmesidir çünkü bellek sayfaları rastgeleleştirme birimleri olarak 0x1000 bayt boyutundadır. Bu hizalama, bir istismar beklenildiği gibi çalışmıyorsa kritik bir kontrol olabilir, doğru temel adresin tanımlanıp tanımlanmadığını gösterir.
Ya da bunu istismarınız için kullanabilirsiniz, eğer bir adresin 0x649e1024
konumunda olduğunu sızdırırsanız, temel adresin 0x649e1000
olduğunu bilirsiniz ve buradan sadece fonksiyonların ve konumların ofsetlerini hesaplayabilirsiniz.
PIE'yi atlatmak için, yüklü ikilinin bir adresini sızdırmak gereklidir, bunun için bazı seçenekler vardır:
ASLR'yi devre dışı bırakma: ASLR devre dışı bırakıldığında, PIE ile derlenmiş bir ikili dosya her zaman aynı adreste yüklenecektir, bu nedenle PIE işe yaramayacaktır çünkü nesnelerin adresleri her zaman aynı yerde olacaktır.
Sızdırma verilmesi (kolay CTF zorluklarında yaygındır, bu örneğe bakın)
Yığındaki EBP ve EIP değerlerini doğru olanları sızdırana kadar brute-force ile denemek:
Bir rastgele okuma zafiyetini kullanarak format dizesi gibi bir adres sızdırmak (örneğin, yığından, önceki teknikte olduğu gibi) ikilinin temelini almak ve oradan ofsetleri kullanmak. Burada bir örnek bulun.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)