Windows Exploiting (Basic Guide - OSCP lvl)
Ξεκινήστε την εγκατάσταση της υπηρεσίας SLMail
Επανεκκίνηση της υπηρεσίας SLMail
Κάθε φορά που χρειάζεται να επανεκκινήσετε την υπηρεσία SLMail μπορείτε να το κάνετε χρησιμοποιώντας την κονσόλα των Windows:
Πολύ βασικό πρότυπο εκμετάλλευσης σε Python
Αλλαγή της γραμματοσειράς στο Immunity Debugger
Πηγαίνετε σε Options >> Appearance >> Fonts >> Change(Consolas, Blod, 9) >> OK
Σύνδεση της διεργασίας στο Immunity Debugger:
File --> Attach
Και πατήστε το κουμπί START
Αποστολή του exploit και έλεγχος εάν το EIP επηρεάζεται:
Κάθε φορά που διακόπτετε την υπηρεσία, πρέπει να την επανεκκινήσετε, όπως υποδεικνύεται στην αρχή αυτής της σελίδας.
Δημιουργία ενός μοτίβου για την τροποποίηση του EIP
Το μοτίβο πρέπει να είναι τόσο μεγάλο όσο το buffer που χρησιμοποιήσατε για να διακόψετε την υπηρεσία προηγουμένως.
Αλλάξτε το buffer του exploit και ορίστε το μοτίβο και εκτελέστε το exploit.
Θα πρέπει να εμφανιστεί ένα νέο crash, αλλά με διαφορετική διεύθυνση EIP:
Ελέγξτε αν η διεύθυνση βρίσκεται στο μοτίβο σας:
Φαίνεται ότι μπορούμε να τροποποιήσουμε το EIP στη θέση 2606 του buffer.
Ελέγξτε το τροποποιώντας το buffer του exploit:
Με αυτό το buffer το EIP που κρασάρισε θα πρέπει να δείχνει στο 42424242 ("BBBB")
Φαίνεται ότι λειτουργεί.
Έλεγχος για χώρο Shellcode μέσα στο stack
600B θα πρέπει να είναι αρκετά για οποιοδήποτε ισχυρό shellcode.
Ας αλλάξουμε το buffer:
Εκκινήστε το νέο exploit και ελέγξτε το EBP και το μήκος του χρήσιμου shellcode
Μπορείτε να δείτε ότι όταν φτάσει η ευπάθεια, το EBP δείχνει στο shellcode και ότι έχουμε αρκετό χώρο για να τοποθετήσουμε ένα shellcode εδώ.
Σε αυτήν την περίπτωση έχουμε από 0x0209A128 έως 0x0209A2D6 = 430B. Αρκετό.
Έλεγχος για κακούς χαρακτήρες
Αλλάξτε ξανά το buffer:
Τα badchars ξεκινούν στο 0x01 επειδή το 0x00 σχεδόν πάντα είναι κακό.
Εκτελέστε επανειλημμένα την εκμετάλλευση με αυτό το νέο buffer διαγράφοντας τα χαρακτήρες που θεωρούνται άχρηστοι:.
Για παράδειγμα:
Σε αυτήν την περίπτωση μπορείτε να δείτε ότι δεν πρέπει να χρησιμοποιήσετε τον χαρακτήρα 0x0A (δεν αποθηκεύεται τίποτα στη μνήμη αφού ο χαρακτήρας 0x09).
Σε αυτήν την περίπτωση μπορείτε να δείτε ότι ο χαρακτήρας 0x0D αποφεύγεται:
Βρείτε ένα JMP ESP ως διεύθυνση επιστροφής
Χρησιμοποιώντας:
Θα καταχωρήσετε τους χάρτες μνήμης. Αναζητήστε κάποιο DLL που έχει:
Rebase: False
SafeSEH: False
ASLR: False
NXCompat: False
OS Dll: True
Τώρα, μέσα σε αυτή τη μνήμη θα πρέπει να βρείτε μερικά bytes JMP ESP, για να το κάνετε αυτό εκτελέστε:
Στη συνέχεια, αν βρεθεί μια διεύθυνση, επιλέξτε μία που δεν περιέχει κανένα κακό χαρακτήρα:
Σε αυτήν την περίπτωση, για παράδειγμα: _0x5f4a358f_
Δημιουργία shellcode
Εάν το exploit δεν λειτουργεί αλλά θα έπρεπε (μπορείτε να δείτε με το ImDebg ότι ο κώδικας κελύφους επιτυγχάνεται), δοκιμάστε να δημιουργήσετε άλλους κώδικες κελύφους (ο msfvenom θα δημιουργήσει διαφορετικούς κώδικες κελύφους για τις ίδιες παραμέτρους).
Προσθέστε μερικά NOPS στην αρχή του κώδικα κελύφους και χρησιμοποιήστε τον κώδικα κελύφους και τη διεύθυνση επιστροφής για να γίνει άλμα στο ESP, και ολοκληρώστε το exploit:
Υπάρχουν shellcodes που θα αντικαταστήσουν τον εαυτό τους, επομένως είναι σημαντικό να προσθέτετε πάντα μερικά NOPs πριν το shellcode
Βελτίωση του shellcode
Προσθέστε αυτές τις παραμέτρους:
Last updated