To będzie bardzo krótki ale za to konkretny wpis. ;]
Chciałbym przedstawić ciekawą możliwość, którą daje protokół ssh o której pewnie nie każdy wie.
Rozważmy następującą sytuację:
Mamy dwa hosty - A i B. Komputer A znajduje się w sieci wewnętrznej za maskaradą, komputer B jest w sieci publicznej. Do wykonania poniższych operacji nie potrzebujemy konta administratora. Chcemy z komputera B zalogować się na shella komputera A. Sytuacja odwrotna jest oczywiście trywialna. Jak jednak dostać się do shella komputera znajdującego się w sieci prywatnej?
Rozwiązanie:
user@A:~$ ssh -NR 3333:localhost:22 user@B
W ten sposób ustanawiamy połączenie w trybie odwrotnego shella(-R), przełącznik -N służy do tego by nie otwierać shella w trybie interaktywnym. To połączenie będzie nam służyło jedynie do ustawienia ścieżki zwrotnej. Jak wiadomo nie możemy bez dodatkowych operacji połączyć się z hostem w sieci prywatnej. Pierwszy numer portu to port wejściowy komputera A(kiedy nie mamy roota musi być wyższy niż 1024), drugi to oczywiście port SSH.
user@B:~$ ssh user@localhost -p 3333
Z hostem w sieci wewnętrznej łączymy się tak jak powyżej. Przełącznik -p wskazuje port ten sam który ustawiliśmy wcześniej.
Jeżeli przeszkadza nam ciągłe wpisywanie haseł możemy skorzystać z kluczy RSA. Wtedy możemy nawet dołączyć pierwsze polecenie do skryptów startowych hosta A.
Zagadnienie to nie jest zbyt skomplikowane ale na wszelki wypadek opiszę je w następnej notce.
Źródło: http://www.plenz.com/reverseshell
czwartek, 27 maja 2010
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz