Large Bin Attack
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)
Büyük bir binin ne olduğunu öğrenmek için bu sayfayı kontrol edin:
Bins & Memory Allocationshow2heap - large bin attack sayfasında harika bir örnek bulmak mümkündür.
Temelde burada, glibc'nin en son "güncel" sürümünde (2.35) kontrol edilmediğini görebilirsiniz: P->bk_nextsize
belirli koşullar sağlandığında büyük bir bin parçasının değeri ile rastgele bir adresi değiştirmeye izin vermektedir.
Bu örnekte aşağıdaki koşulları bulabilirsiniz:
Büyük bir parça tahsis edilir
İlkinden daha küçük ama aynı indekste bir büyük parça tahsis edilir
Bin içinde öncelikli olarak yer alması gerektiğinden daha küçük olmalıdır
(Üst parçayla birleştirmeyi önlemek için bir parça oluşturulur)
Ardından, ilk büyük parça serbest bırakılır ve ondan daha büyük yeni bir parça tahsis edilir -> Chunk1 büyük bin'e gider
Sonra, ikinci büyük parça serbest bırakılır
Şimdi, zafiyet: Saldırgan chunk1->bk_nextsize
'ı [target-0x20]
olarak değiştirebilir
Ardından, chunk 2'den daha büyük bir parça tahsis edilir, böylece chunk2 büyük bin'e eklenir ve chunk1->bk_nextsize->fd_nextsize
adresi chunk2'nin adresi ile üzerine yazılır
Diğer potansiyel senaryolar da vardır, mesele büyük bin'e mevcut bir X parçasından daha küçük bir parça eklemektir, böylece bin içinde X'in öncesine yerleştirilmesi gerekir ve X'in bk_nextsize
'ını değiştirebilmemiz gerekir çünkü daha küçük parçanın adresi buraya yazılacaktır.
Bu malloc'tan ilgili kod. Adresin nasıl üzerine yazıldığını daha iyi anlamak için yorumlar eklenmiştir:
Bu, libc'nin global_max_fast
global değişkenini geçersiz kılmak için kullanılabilir ve ardından daha büyük parçalarla hızlı bin saldırısını istismar edebilir.
Bu saldırının başka harika bir açıklamasını guyinatuxedo adresinde bulabilirsiniz.
how2heap adresinde görüldüğü gibi aynı durumda büyük bin saldırısı.
Yazma primitive'i daha karmaşık, çünkü global_max_fast
burada işe yaramaz.
İstismarı tamamlamak için FSOP gereklidir.
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)