Exploiting Tools
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μπορείτε προαιρετικά να χρησιμοποιήσετε αυτό το fork του GEF το οποίο περιέχει πιο ενδιαφέρουσες οδηγίες.
Ενώ κάνετε αποσφαλμάτωση, το GDB θα έχει ελαφρώς διαφορετικές διευθύνσεις από αυτές που χρησιμοποιούνται από το δυαδικό κατά την εκτέλεση. Μπορείτε να κάνετε το GDB να έχει τις ίδιες διευθύνσεις κάνοντας:
unset env LINES
unset env COLUMNS
set env _=<path>
Βάλτε την απόλυτη διαδρομή στο δυαδικό
Εκμεταλλευτείτε το δυαδικό χρησιμοποιώντας την ίδια απόλυτη διαδρομή
PWD
και OLDPWD
πρέπει να είναι οι ίδιες όταν χρησιμοποιείτε το GDB και όταν εκμεταλλεύεστε το δυαδικό
Όταν έχετε ένα στατικά συνδεδεμένο δυαδικό, όλες οι συναρτήσεις θα ανήκουν στο δυαδικό (και όχι σε εξωτερικές βιβλιοθήκες). Σε αυτή την περίπτωση, θα είναι δύσκολο να εντοπίσετε τη ροή που ακολουθεί το δυαδικό για να ζητήσει, για παράδειγμα, είσοδο από τον χρήστη.
Μπορείτε εύκολα να εντοπίσετε αυτή τη ροή τρέχοντας το δυαδικό με gdb μέχρι να σας ζητηθεί είσοδος. Στη συνέχεια, σταματήστε το με CTRL+C και χρησιμοποιήστε την εντολή bt
(backtrace) για να δείτε τις κλήσεις συναρτήσεων:
gdbserver --multi 0.0.0.0:23947
(στην IDA πρέπει να συμπληρώσετε τη απόλυτη διαδρομή του εκτελέσιμου στη μηχανή Linux και στη μηχανή Windows)
Ghidra είναι πολύ χρήσιμο για να βρείτε το offset για μια buffer overflow χάρη στις πληροφορίες σχετικά με τη θέση των τοπικών μεταβλητών.
Για παράδειγμα, στο παρακάτω παράδειγμα, μια ροή buffer στο local_bc
υποδεικνύει ότι χρειάζεστε ένα offset 0xbc
. Επιπλέον, αν το local_10
είναι ένα canary cookie, υποδεικνύει ότι για να το παρακάμψετε από το local_bc
υπάρχει ένα offset 0xac
.
&#xNAN;Remember ότι τα πρώτα 0x08 από όπου αποθηκεύεται το RIP ανήκουν στο RBP.
Get every opcode executed in the program.
gcc -fno-stack-protector -D_FORTIFY_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2 --> Συγκέντρωση χωρίς προστασίες &#xNAN;-o --> Έξοδος &#xNAN;-g --> Αποθήκευση κώδικα (το GDB θα μπορεί να το δει) echo 0 > /proc/sys/kernel/randomize_va_space --> Για να απενεργοποιήσετε το ASLR στο linux
Για να συγκεντρώσετε ένα shellcode: nasm -f elf assembly.asm --> επιστρέφει ένα ".o" ld assembly.o -o shellcodeout --> Εκτελέσιμο
-d --> Αποσυναρμολόγηση εκτελέσιμων τμημάτων (δείτε τα opcodes ενός συγκεντρωμένου shellcode, βρείτε ROP Gadgets, βρείτε διεύθυνση συνάρτησης...) &#xNAN;-Mintel --> Σύνταξη Intel &#xNAN;-t --> Πίνακας συμβόλων &#xNAN;-D --> Αποσυναρμολόγηση όλων (διεύθυνση στατικής μεταβλητής) &#xNAN;-s -j .dtors --> τμήμα dtors &#xNAN;-s -j .got --> τμήμα got -D -s -j .plt --> plt τμήμα αποσυναρμολογημένο &#xNAN;-TR --> Μετατοπίσεις ojdump -t --dynamic-relo ./exec | grep puts --> Διεύθυνση του "puts" για τροποποίηση στο GOT objdump -D ./exec | grep "VAR_NAME" --> Διεύθυνση ή στατική μεταβλητή (αυτές αποθηκεύονται στην τμήμα DATA).
Εκτελέστε ulimit -c unlimited
πριν ξεκινήσετε το πρόγραμμα μου
Εκτελέστε sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t
sudo gdb --core=<path/core> --quiet
ldd executable | grep libc.so.6 --> Διεύθυνση (αν ASLR, τότε αυτό αλλάζει κάθε φορά) for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done --> Βρόχος για να δείτε αν η διεύθυνση αλλάζει πολύ readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system --> Offset του "system" strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh --> Offset του "/bin/sh"
strace executable --> Λειτουργίες που καλούνται από το εκτελέσιμο rabin2 -i ejecutable --> Διεύθυνση όλων των λειτουργιών
Μέσα στον φάκελο IDA μπορείτε να βρείτε δυαδικά αρχεία που μπορούν να χρησιμοποιηθούν για να αποσφαλματώσετε ένα δυαδικό αρχείο μέσα σε ένα linux. Για να το κάνετε αυτό, μετακινήστε το δυαδικό αρχείο linux_server
ή linux_server64
μέσα στον απομακρυσμένο server linux και εκτελέστε το μέσα στον φάκελο που περιέχει το δυαδικό αρχείο:
Στη συνέχεια, ρυθμίστε τον αποσφαλματωτή: Debugger (linux remote) --> Επιλογές διαδικασίας...:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)