House of Rabbit
Απαιτήσεις
Ικανότητα τροποποίησης του δείκτη fd ή μεγέθους fast bin: Αυτό σημαίνει ότι μπορείτε να αλλάξετε τον προωθούμενο δείκτη ενός τμήματος στο fastbin ή το μέγεθός του.
Ικανότητα ενεργοποίησης του
malloc_consolidate
: Αυτό μπορεί να γίνει είτε με τη δέσμευση ενός μεγάλου τμήματος είτε με τη συγχώνευση του κορυφαίου τμήματος, το οποίο αναγκάζει τη συγχώνευση των τμημάτων του σωρού.
Στόχοι
Δημιουργία επικαλυπτόμενων τμημάτων: Να υπάρχει ένα τμήμα που επικαλύπτεται με ένα άλλο, επιτρέποντας περαιτέρω διαχείριση του σωρού.
Δημιουργία ψεύτικων τμημάτων: Να εξαπατήσετε τον διανεμητή ώστε να θεωρήσει ένα ψεύτικο τμήμα ως νόμιμο κατά τις λειτουργίες του σωρού.
Βήματα της επίθεσης
POC 1: Τροποποίηση του μεγέθους ενός τμήματος fast bin
Στόχος: Δημιουργία ενός επικαλυπτόμενου τμήματος με την τροποποίηση του μεγέθους ενός τμήματος fastbin.
Βήμα 1: Δέσμευση Τμημάτων
Βήμα 2: Απελευθέρωση Χύματων
Βήμα 3: Τροποποίηση Μεγέθους Χαντρών
Βήμα 4: Ενεργοποίηση της
malloc_consolidate
Η δέσμευση ενός μεγάλου κομματιού ενεργοποιεί τη λειτουργία malloc_consolidate
, συγχωνεύοντας μικρά κομμάτια στο γρήγορο bin. Το χειρισμένο μέγεθος του chunk1
προκαλεί επικάλυψη με το chunk2
.
Μετά τη συγχώνευση, το chunk1
επικαλύπτεται με το chunk2
, επιτρέποντας περαιτέρω εκμετάλλευση.
POC 2: Τροποποίηση του δείκτη fd
fd
Στόχος: Δημιουργία ψεύτικου κομματιού με τη χειρισμό του δείκτη fd
του γρήγορου bin.
Βήμα 1: Δέσμευση Κομματιών
Εξήγηση: Δεσμεύουμε δύο τμήματα, ένα μικρό και ένα μεγαλύτερο, για να ρυθμίσουμε τη στοίβα για το ψεύτικο τμήμα.
Βήμα 2: Δημιουργία ψεύτικου τμήματος
Βήμα 3: Απελευθέρωση του
chunk1
Εξήγηση: Απελευθερώνουμε το chunk1
, προσθέτοντάς το στη λίστα fastbin.
Βήμα 4: Τροποποίηση του
fd
τουchunk1
Εξήγηση: Αλλάζουμε τον προωθούμενο δείκτη (fd
) του chunk1
ώστε να δείχνει στο ψεύτικο chunk μέσα στο chunk2
.
Βήμα 5: Ενεργοποίηση της
malloc_consolidate
Η επαναδιάθεση ενός μεγάλου κομματιού ενεργοποιεί ξανά το malloc_consolidate
, το οποίο επεξεργάζεται το ψεύτικο κομμάτι.
Το ψεύτικο κομμάτι γίνεται μέρος της λίστας fastbin, καθιστώντας το ένα νόμιμο κομμάτι για περαιτέρω εκμετάλλευση.
Σύνοψη
Η τεχνική House of Rabbit περιλαμβάνει είτε την τροποποίηση του μεγέθους ενός κομματιού fast bin για τη δημιουργία επικαλυπτόμενων κομματιών είτε τη χειραγώγηση του δείκτη fd
για τη δημιουργία ψεύτικων κομματιών. Αυτό επιτρέπει στους εισβολείς να δημιουργήσουν νόμιμα κομμάτια στη στοίβα, επιτρέποντας διάφορες μορφές εκμετάλλευσης. Η κατανόηση και η εξάσκηση αυτών των βημάτων θα βελτιώσει τις δεξιότητές σας στην εκμετάλλευση της στοίβας.
Last updated