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

4.2 KiB
Raw Blame History

Einherjar Evi

AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

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 noktalarını kendisine işaret etmek için işaretçileri ayarlayın
  • Bir parçadan diğerine bir tane eksik olacak şekilde yanlışlıkla geçin ve önceki kullanımda değişiklik yapın
  • Yanlışlıkla yanlış kullanılan parçanın prev_size'ına kendisi ile sahte parça arasındaki farkı gösterin
  • Sahte parça boyutu da kontrol noktalarını 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 yanlışlık kullanılarak prev in use biti temizlenir ve C parçasının tahsis edildiği yer ile önce oluşturulan sahte A parçası arasındaki farkla prev_size verisi üzerine yazılır
  • Bu prev_size ve sahte parçadaki boyut aynı olmalıdır kontrol noktalarını atlamak için.
  • Sonra, 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çayı kapsayacak yeni bir parça D oluşturulur
  • Einherjar Evi burada biter
  • Bu, hızlı bin saldırısı ile devam ettirilebilir:
  • B'yi serbest bırakarak hızlı bine ekleyin
  • B'nin fdsi üzerine yazılarak hedef adresi hedefleyen D parçasını (çünkü içinde B bulunmaktadır) işaret eder
  • Sonra, 2 malloc yapılır ve ikincisi hedef adresi tahsis edecek

Referanslar ve diğer örnekler