House of Einherjar
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c adresinden örneği kontrol edin
Ya da https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation adresinden (tcache'i doldurmanız gerekebilir)
Hedef, neredeyse herhangi bir belirli adreste bellek ayırmaktır.
Bir parça ayırmak istediğimizde sahte bir parça oluşturun:
Akıl sağlığı kontrollerini atlatmak için işaretçileri kendisine işaret edecek şekilde ayarlayın
PREV_INUSE
bayrağını değiştirmek için bir parçadan diğerine bir null baytı ile bir bayt taşması
Null ile kötüye kullanılan parçanın prev_size
'sinde kendisi ile sahte parça arasındaki farkı belirtin
Sahte parça boyutu da akıl sağlığı kontrollerini atlatmak için aynı boyutta ayarlanmış olmalıdır
Bu parçaları oluşturmak için bir heap leak'e ihtiyacınız olacak.
A
sahte parçası, saldırgan tarafından kontrol edilen bir parça içinde oluşturulur ve fd
ve bk
ile orijinal parçaya işaret eder, böylece korumaları atlatır
2 başka parça (B
ve C
) ayrılır
B
parçasındaki bir bayt taşmasını kötüye kullanarak prev in use
biti temizlenir ve prev_size
verisi, C
parçasının ayrıldığı yer ile daha önce oluşturulan sahte A
parçası arasındaki fark ile üzerine yazılır
Bu prev_size
ve sahte parça A
'daki boyut aynı olmalıdır ki kontrolleri atlatabilsin.
Sonra, tcache doldurulur
Sonra, C
serbest bırakılır, böylece sahte parça A
ile birleştirilir
Sonra, sahte A
parçasında başlayacak ve B
parçasını kaplayacak yeni bir parça D
oluşturulur
Einherjar Evi burada sona erer
Bu, hızlı bin saldırısı veya Tcache zehirlemesi ile devam edilebilir:
B
'yi serbest bırakın ve hızlı bin / Tcache'e ekleyin
B
'nin fd
'si, hedef adrese işaret edecek şekilde üzerine yazılır ve D
parçasını kötüye kullanır (çünkü içinde B
'yi barındırır)
Sonra, 2 malloc yapılır ve ikincisi hedef adresi ayıracaktır
İşaretçileri serbest bıraktıktan sonra null hale gelmezler, bu nedenle verilerine erişmek hala mümkündür. Bu nedenle, bir parça düzensiz binaya yerleştirilir ve içerdiği işaretçileri sızdırılır (libc leak) ve ardından yeni bir heap düzensiz binaya yerleştirilir ve aldığı işaretçiden bir heap adresi sızdırılır.
strtok
'da null-bayt taşma hatası.
Overlapping chunks durumu elde etmek için Einherjar Evi'ni kullanın ve Tcache zehirlemesi ile keyfi yazma ilkesine ulaşın.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)