Common Exploiting Problems
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Όταν στέλνετε μια εκμετάλλευση σε έναν απομακρυσμένο διακομιστή που καλεί system('/bin/sh')
για παράδειγμα, αυτό θα εκτελείται στη διαδικασία του διακομιστή φυσικά, και το /bin/sh
θα περιμένει είσοδο από stdin (FD: 0
) και θα εκτυπώνει την έξοδο σε stdout και stderr (FDs 1
και 2
). Έτσι, ο επιτιθέμενος δεν θα μπορεί να αλληλεπιδράσει με το shell.
Ένας τρόπος για να το διορθώσετε είναι να υποθέσετε ότι όταν ο διακομιστής ξεκίνησε δημιούργησε το FD αριθμό 3
(για ακρόαση) και ότι στη συνέχεια, η σύνδεσή σας θα είναι στο FD αριθμό 4
. Επομένως, είναι δυνατόν να χρησιμοποιήσετε την syscall dup2
για να διπλασιάσετε το stdin (FD 0) και το stdout (FD 1) στο FD 4 (αυτό της σύνδεσης του επιτιθέμενου) έτσι ώστε να καταστεί εφικτή η επαφή με το shell μόλις εκτελείται.
Παράδειγμα εκμετάλλευσης από εδώ:
Σημειώστε ότι το socat ήδη μεταφέρει stdin
και stdout
στο socket. Ωστόσο, η λειτουργία pty
περιλαμβάνει χαρακτήρες DELETE. Έτσι, αν στείλετε ένα \x7f
( DELETE
-) θα διαγράψει τον προηγούμενο χαρακτήρα της εκμετάλλευσής σας.
Για να παρακαμφθεί αυτό, το χαρακτήρα διαφυγής \x16
πρέπει να προστεθεί πριν από οποιοδήποτε \x7f
σταλεί.
Εδώ μπορείτε να βρείτε ένα παράδειγμα αυτής της συμπεριφοράς.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)