Common Exploiting Problems
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Ao enviar um exploit para um servidor remoto que chama system('/bin/sh')
por exemplo, isso será executado no processo do servidor, e /bin/sh
esperará entrada do stdin (FD: 0
) e imprimirá a saída no stdout e stderr (FDs 1
e 2
). Portanto, o atacante não poderá interagir com o shell.
Uma maneira de corrigir isso é supor que quando o servidor foi iniciado, ele criou o FD número 3
(para escuta) e que então, sua conexão estará no FD número 4
. Portanto, é possível usar a syscall dup2
para duplicar o stdin (FD 0) e o stdout (FD 1) no FD 4 (o da conexão do atacante) para que seja viável contatar o shell uma vez que ele seja executado.
Note que o socat já transfere stdin
e stdout
para o socket. No entanto, o modo pty
inclui caracteres DELETE. Portanto, se você enviar um \x7f
( DELETE
-) ele deletará o caractere anterior do seu exploit.
Para contornar isso, o caractere de escape \x16
deve ser precedido a qualquer \x7f
enviado.
Aqui você pode encontrar um exemplo desse comportamento.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)