hacktricks/binary-exploitation/libc-heap/house-of-einherjar.md

4.4 KiB
Raw Blame History

Einherjar Evi

{% hint style="success" %} AWS Hacking'i öğrenin ve uygulayın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)

HackTricks'i Destekleyin
{% endhint %}

Temel Bilgiler

Kod

Amaç

  • Hemen hemen herhangi bir belirli adreste bellek tahsis etmek.

Gereksinimler

  • Bir parça tahsis etmek istediğimizde sahte bir parça oluşturun:
  • Kontrolü atlamak için işaretçileri kendisine işaret etmesini sağlayın
  • Bir parçadan diğerine bir null bayt ile bir bayt taşması yaparak PREV_INUSE bayrağını değiştirin.
  • Yanlışlıkla kullanılan parçanın prev_size'ına kendisi ile sahte parça arasındaki farkı belirtin
  • Sahte parça boyutu da kontrolü atlamak için aynı boyutta olmalıdır
  • Bu parçaları oluşturmak için bir heap sızıntısına ihtiyacınız olacak.

Saldırı

  • Saldırgan tarafından kontrol edilen bir parçanın içine A sahte bir parça oluşturulur ve korumaları atlamak için fd ve bk ile orijinal parçaya işaret eder
  • 2 diğer parça (B ve C) tahsis edilir
  • B'deki bir hata kullanılarak prev in use biti temizlenir ve prev_size verisi, önce oluşturulan sahte A parçasının yerinden C parçasının tahsis edildiği yere kadar olan farkla değiştirilir
  • Bu prev_size ve sahte parçadaki boyut olan A aynı olmalıdır kontrolü atlamak için.
  • Ardından, tcache doldurulur
  • Sonra, C serbest bırakılır, böylece sahte parça A ile birleşir
  • Sonra, sahte A parçasında başlayacak ve B parçasını kapsayacak yeni bir parça D oluşturulur
  • Einherjar Evi burada biter
  • Bu, hızlı bin saldırısı veya Tcache zehirlenmesi ile devam ettirilebilir:
  • B'yi serbest bırakarak hızlı bin / Tcache'e ekleyin
  • B'nin fdsi üzerine yazarak, içinde B bulunan D parçasına işaret etmesini sağlayın
  • Ardından, 2 malloc yapılır ve ikincisi hedef adresi tahsis edecek

Referanslar ve diğer örnekler