Poniższa notka będzie jeszcze krótsza od poprzedniej ;>
Teraz do rzeczy. Tworzenie kluczy to dość prosty proces.
Przebiega następująco:
Wchodzimy do katalogu .ssh w naszym katalogu domowym i wpisujemy:
ssh-keygen
Generator zapyta najpierw o nazwę pliku,do którego zostanie zapisany klucz. Domyślnie będzie to id_rsa(klucz prywatny), jeśli chcemy zmienić nazwę pliku wpisujemy coś, jeśli nie wystarczy ENTER. Klucz publiczny będzie nazywać się prawie tak samo - dodatkowo posiada rozszerzenie "pub". Kolejnym krokiem jest wpisanie hasła(dwukrotnie), przy czym nie jest ono konieczne(jeżeli nie chcemy hasła wystarczy ENTER). W ten sposób utworzyliśmy klucz.
Teraz jeśli chcemy móc logować się na zdalnego hosta za pomocą klucza powinniśmy wysłać na niego nasz klucz publiczny(id_rsa.pub).
Na zdalnym hoście kopiujemy ten plik do katalogu .ssh(plikowi możemy zmienić nazwę - to nie ma znaczenia) i wykonujemy:
cat id_rsa.pub >> authorized_keys
(id_rsa.pub to oczywiście nasz plik z kluczem publicznym)
Od tej pory możemy bezpiecznie logować się na nasze konto shellowe.
piątek, 28 maja 2010
czwartek, 27 maja 2010
Reverse Shell
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
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
Subskrybuj:
Posty (Atom)