Exploiting Tools
Last updated
Last updated
Μάθετε & εξασκηθείτε στο Hacking του AWS:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο Hacking του GCP: HackTricks Training GCP Red Team Expert (GRTE)
{% κώδικας υπερχείλισης = "τυλίγει" %}
Μπορείτε προαιρετικά να χρησιμοποιήσετε αυτό το fork του GEF που περιέχει πιο ενδιαφέρουσες οδηγίες.
Κατά την εντοπισμό σφαλμάτων στο GDB θα έχει ελαφρώς διαφορετικές διευθύνσεις από αυτές που χρησιμοποιούνται από το δυαδικό όταν εκτελείται. Μπορείτε να κάνετε το GDB να έχει τις ίδιες διευθύνσεις κάνοντας:
unset env LINES
unset env COLUMNS
set env _=<διαδρομή>
Βάλτε την απόλυτη διαδρομή προς το δυαδικό
Εκμεταλλευτείτε το δυαδικό χρησιμοποιώντας την ίδια απόλυτη διαδρομή
Τα PWD
και OLDPWD
πρέπει να είναι τα ίδια κατά τη χρήση του GDB και κατά την εκμετάλλευση του δυαδικοϋ
Όταν έχετε ένα δυαδικό που έχει συνδεθεί στατικά, όλες οι συναρτήσεις θα ανήκουν στο δυαδικό (και όχι σε εξωτερικές βιβλιοθήκες). Σε αυτήν την περίπτωση θα είναι δύσκολο να αναγνωρίσετε τη ροή που ακολουθεί το δυαδικό για παράδειγμα για να ζητήσει είσοδο από τον χρήστη.
Μπορείτε εύκολα να αναγνωρίσετε αυτήν τη ροή τρέχοντας το δυαδικό με το gdb μέχρι να σας ζητηθεί είσοδος. Στη συνέχεια, σταματήστε το με CTRL+C και χρησιμοποιήστε την εντολή bt
(backtrace) για να δείτε τις κληθείσες συναρτήσεις:
gdbserver --multi 0.0.0.0:23947
(στο IDA πρέπει να συμπληρώσετε τον απόλυτο δρόμο του εκτελέσιμου στη μηχανή Linux και στη μηχανή Windows)
Το Ghidra είναι πολύ χρήσιμο για να βρείτε τη μετατόπιση για ένα υπερχείλιση buffer χάρη στις πληροφορίες σχετικά με τη θέση των τοπικών μεταβλητών.
Για παράδειγμα, στο παρακάτω παράδειγμα, μια υπερχείλιση buffer στο local_bc
υποδηλώνει ότι χρειάζεστε μια μετατόπιση του 0xbc
. Επιπλέον, αν το local_10
είναι ένα canary cookie υποδηλώνει ότι για να το αντικαταστήσετε από το local_bc
υπάρχει μια μετατόπιση του 0xac
.
Να θυμάστε ότι τα πρώτα 0x08 από όπου αποθηκεύεται το RIP ανήκουν στο RBP.
Αποκτήστε κάθε opcode που εκτελείται στο πρόγραμμα.
gcc -fno-stack-protector -D_FORTIFY_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2 --> Μεταγλώττιση χωρίς προστασίες -o --> Έξοδος -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, βρείτε διεύθυνση συνάρτησης...) -Mintel --> Σύνταξη Intel -t --> Πίνακας συμβόλων -D --> Αποσυναρμολόγηση όλων (διεύθυνση στατικής μεταβλητής) -s -j .dtors --> τμήμα dtors -s -j .got --> τμήμα got -D -s -j .plt --> τμήμα plt αποσυναρμολογημένο -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
μέσα στον διακομιστή Linux και εκτελέστε το μέσα στον φάκελο που περιέχει το δυαδικό αρχείο:
Στη συνέχεια, ρυθμίστε τον εντοπιστή σφαλμάτων: Εντοπιστής (απομακρυσμένος linux) --> Επιλογές διεργασίας...:
Μάθετε & εξασκηθείτε στο Hacking του AWS:Εκπαίδευση HackTricks AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο Hacking του GCP: Εκπαίδευση HackTricks GCP Red Team Expert (GRTE)