Common Exploiting Problems
FDs w Eksploatacji Zdalnej
Podczas wysyłania exploitu do zdalnego serwera, który wywołuje system('/bin/sh')
na przykład, ta operacja zostanie wykonana w procesie serwera, a /bin/sh
będzie oczekiwać danych wejściowych z stdin (FD: 0
) oraz będzie drukować wyniki w stdout i stderr (FDs 1
i 2
). W związku z tym atakujący nie będzie mógł interaktywnie korzystać z powłoki.
Sposobem na rozwiązanie tego problemu jest założenie, że gdy serwer został uruchomiony, utworzył numer FD 3
(do nasłuchiwania), a następnie Twoje połączenie będzie w numerze FD 4
. Dlatego możliwe jest użycie wywołania systemowego dup2
do zduplikowania stdin (FD 0) i stdout (FD 1) w FD 4 (tego, który jest połączony z atakującym), co umożliwi nawiązanie kontaktu z powłoką po jej wykonaniu.
Socat & pty
Należy zauważyć, że socat już przesyła stdin
i stdout
do gniazda. Jednak tryb pty
obejmuje znaki DELETE. Dlatego jeśli wyślesz \x7f
(DELETE
-) to usunie poprzedni znak twojego exploitu.
Aby ominąć to, znak ucieczki \x16
musi być poprzedzony przez każde \x7f
wysłane.
Tutaj możesz znaleźć przykład tego zachowania.
Last updated