Common Exploiting Problems
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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) i że 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.
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.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)