Common Binary Exploitation Protections & Bypasses
Last updated
Last updated
Μάθετε & εξασκηθείτε στο Hacking του AWS:Εκπαίδευση HackTricks AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο Hacking του GCP: Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)
Τα αρχεία Core είναι ένας τύπος αρχείου που δημιουργείται από ένα λειτουργικό σύστημα όταν ένας διεργασία καταρρέει. Αυτά τα αρχεία καταγράφουν την εικόνα μνήμης της διεργασίας που κατέρρευσε στη στιγμή της τερματισμού της, συμπεριλαμβανομένης της μνήμης της διεργασίας, των καταχωρητών και της κατάστασης του μετρητή προγράμματος, μεταξύ άλλων λεπτομερειών. Αυτή η στιγμιότυπη εικόνα μπορεί να είναι εξαιρετικά χρήσιμη για την αποσφαλμάτωση και την κατανόηση του λόγου για τον οποίο συνέβη ο κρατικός τερματισμός.
Από προεπιλογή, πολλά συστήματα περιορίζουν το μέγεθος των αρχείων core σε 0 (δηλαδή δεν δημιουργούν αρχεία core) για να εξοικονομήσουν χώρο στο δίσκο. Για να ενεργοποιήσετε τη δημιουργία αρχείων core, μπορείτε να χρησιμοποιήσετε την εντολή ulimit
(σε κέλυφος bash ή παρόμοια κέλυφη) ή να ρυθμίσετε ρυθμίσεις σε επίπεδο συστήματος.
Χρησιμοποιώντας το ulimit: Η εντολή ulimit -c unlimited
επιτρέπει στην τρέχουσα συνεδρία κελύφους να δημιουργεί αρχεία core με απεριόριστο μέγεθος. Αυτό είναι χρήσιμο για συνεδρίες αποσφαλμάτωσης αλλά δεν είναι μόνιμο σε επανεκκινήσεις ή νέες συνεδρίες.
Μόνιμη Διαμόρφωση: Για μια πιο μόνιμη λύση, μπορείτε να επεξεργαστείτε το αρχείο /etc/security/limits.conf
για να περιλαμβάνει μια γραμμή όπως * soft core unlimited
, η οποία επιτρέπει σε όλους τους χρήστες να δημιουργούν αρχεία πυρήνα με απεριόριστο μέγεθος χωρίς την ανάγκη να ορίζουν χειροκίνητα το ulimit στις συνεδρίες τους.
Για να αναλύσετε ένα αρχείο core, μπορείτε να χρησιμοποιήσετε εργαλεία αποσφαλμάτωσης όπως το GDB (ο GNU Debugger). Υποθέτοντας ότι έχετε ένα εκτελέσιμο αρχείο που παρήγαγε ένα core dump και το αρχείο core έχει το όνομα core_file
, μπορείτε να ξεκινήσετε την ανάλυση με:
Αυτή η εντολή φορτώνει το εκτελέσιμο αρχείο και τον πυρήνα στο GDB, επιτρέποντάς σας να επιθεωρήσετε την κατάσταση του προγράμματος στη στιγμή του κρασαρίσματος. Μπορείτε να χρησιμοποιήσετε εντολές GDB για να εξερευνήσετε το stack, να εξετάσετε μεταβλητές και να κατανοήσετε τον λόγο του κρασαρίσματος.