Common Exploiting Problems
FD in Sfruttamento Remoto
Quando si invia un exploit a un server remoto che chiama system('/bin/sh')
ad esempio, questo verrà eseguito nel processo del server e /bin/sh
si aspetterà input da stdin (FD: 0
) e stamperà l'output in stdout e stderr (FD 1
e 2
). Quindi l'attaccante non potrà interagire con la shell.
Un modo per risolvere questo problema è supporre che quando il server è stato avviato ha creato il numero FD 3
(per l'ascolto) e che poi, la connessione avverrà nel numero FD 4
. Pertanto, è possibile utilizzare la syscall dup2
per duplicare lo stdin (FD 0) e lo stdout (FD 1) nel FD 4 (quello della connessione dell'attaccante) in modo da rendere possibile contattare la shell una volta eseguita.
Socat & pty
Si noti che socat trasferisce già stdin
e stdout
al socket. Tuttavia, la modalità pty
include i caratteri DELETE. Quindi, se invii un \x7f
(DELETE
), cancellerà il carattere precedente del tuo exploit.
Per aggirare questo problema, il carattere di escape \x16
deve essere anteposto a qualsiasi \x7f
inviato.
Last updated