Piotr Konieczny

konsultant ds. bezpieczeństwa, podróżnik,
hobbystycznie fuksiarz i gadżeciarz
szkot, prawie spadochroniarz...
nienawidzi zielonego.


« wszystkie wpisy |

Wtorek, 29 sierpnia 2006 :: 19:41:18

(Ugly) SSH via CGI (WWW)

Wystawiam skrypt, o który tak prosiliście w e-mailach po poprzednim wpisie.

Nie jest to ani piękne ,ani dopracowane rozwiązanie, ale jeśli komuś naprawdę ma, cytuję: "uratować życie" — proszę bardzo! :-) Doskonale rozumiem, że dla wielu z Wam stworzenie nawet prostego skryptu może być problemem, zwłaszcza, jeśli nie macie pojęcia o CGI/PERL.

Ugly-SSH.cgi - Command line via WWW

Weźcie proszę pod uwagę, że to, co tu obecnie przezentuję, nawet w 10% nie można określić mianem SSH via CGI. Ten skrypt to po prostu prymitywne wykonywanie podanych poleceń i przedstawienie ich wyników na stronie WWW. Mimo wszystko, mam nadzieję, że komuś się przydai w tej postaci. Osobiście, będąc odciętym od możliwości sshowania się na serwer, korzystam z tego skryptu do kontrolowania crontaba, monitorowania pracy serwera i prostej administracji. (Niech żyją aplikacje webowe ;-)

SSH via CGI: Features

Działają wszystkie podstawowe polecenia powłoki (jak cat, echo, ls, pwd, who, cp, rm, mv i inne funkcje filemanagera, etc.). Vima niestety nie odpalicie, to samo z zestawieniem połączenia ssh ze zdalnym hostem.

W mojej ocenie, początkującym skrypt nie da zbyt wielu możliwości — natomiast doświadczeni hackerzy CLI, ze znajomością komend UNIX-owych, sa w stanie zrobić z niego użytek. Narzędzia parsujące, potoki i przekierowania potrafią cuda. Dodatkowo, wiele z terminalowych komend posiada obsługę plików wsadowych *EG* (można więc napisać sobie taki plik echo "foo bar" > plik a potem go wykonać: ftp < plik).

SSH via CGI: Instalacja

1. Wgraj skrypt do katalogu na swoim serwerze (zazwyczaj public_html/cgi-bin/).
2. Zmień rozszerzenie pliku z .txt na .cgi (mv ugly-ssh.txt ugly-ssh.cgi)
3. Ustaw w skrypcie ścieżkę do PERLa (#!/sciezka/do/perla - PERL można zlokalizować wydając polecenie which perl lub whereis perl)
4. Nadaj plikowi prawa 755 (chmod 755 uglyssh.cgi).
5. Gotowe, otwórz plik w przeglądarce (http://twoj.serwer/katalog/uglyssh.cgi).

Miejcie na uwadze to, że komunikacja NIE jest szyfrowana (chyba, że ktoś uruchomi skrypt po SSL). Skrypt nie przeprowadza autoryzacji, więc KAŻDY, kto się do niego dostanie, będzie mógł bawić się serwerem z co najmniej takimi uprawnieniami, jakie posiada Wasze konto. Dlatego proponuję wrzucić do katalogu ze skryptem prosty plik .htaccess narzucający wymóg autoryzacji uzytkownika. Tak... skrypt spisuje się całkiem świetnie w roli backdoora...

Jeśli już jesteśmy przy temacie omijania blokad proxy i firewalli, trafiłem na całkiem pożyteczne narzędzie - nph-proxy. Postawiłem u siebie na serwerze i korzystam wszędzie, gdzie filtrują ruch HTTP. Działa wyśmienicie — polecam.

PS: Nowszą wersję Ugly SSH, z obsługą strumieni i emulacją terminala wystawię niebawem — póki co jest niestabilna i płata brzydkie figle.

• Następny post: Pimp your AdSense! (5 złotych rad)
• Poprzedni post: Kod źródłowy w dowolnym języku jako strona WWW (HTML)

 

Chcesz być informowany o kolejnych wpisach na ten temat?
Kanał RSS: kliknij tutaj. Subskrybcja poprzez e-mail: kliknij tutaj.

 

Tagi:

« reszta wpisów | • trackback | ‡ torturuj posta!

Komentarze:

1. Anonim Wtorek, 29 sierpnia 2006, 19:49:57
 

Wszystko fajnie, tylko czy musze pytać Philipsa o zgodę przed użyciem programu? :]]

 
2. Jajcuś Wtorek, 29 sierpnia 2006, 19:50:07
 

Po cholerę nazwałeś to "SSH" zamiast "Telnet" albo "remote shell"? To że ostrzegasz na końcu wpisu niewiele zmienia.

 
3. Piotr Konieczny Wtorek, 29 sierpnia 2006, 19:52:27
 

Anonim: Erm, licencja to oczywiście GPL, Vim mi automatycznie wkleja nagłówki. Poprawione, dzięki.

Jajcus: Bo za pare dni, to będzie ta sama aplikacja ;-) Telnet/remote shell, chyba też nie oddają tego, czym jest ten stwór...

 
4. Maciek Wtorek, 29 sierpnia 2006, 22:07:01
 

2. Zmień *rozszeżenie* pliku z .txt na .cgi (mv ugly-ssh.txt ugly-ssh.cgi)

:/

I znowu musialem wyslac komentarz dwa razy bo za pierwszym razem NIGDY nie idzie.

 
5. Krystek Wtorek, 29 sierpnia 2006, 22:10:45
 

Hmm, takie coś już jest w Javie - MindTerm http://www.mindbright.se/mindterm/

 
6. Piotr Konieczny Środa, 30 sierpnia 2006, 01:11:35
 

Krystek: niezupełnie. MindTerm, który został już przeze mnie wypróbowany wcześniej, to klient SSH.

Z dokumentacji:

The applet will always run in the users browser. This means that
all network connections will originate from the users client
machine. So a site wishing to provide SSH access via MindTerm must
both make the applet available via http and open up the ssh port.

Więc jak widzisz, nie wyszliśmy poza proxy.

 
7. Krystek Środa, 30 sierpnia 2006, 01:20:31
 

A, w takim razie to zmienia postać rzeczy. Dzięki za wyjaśnienie.

 
8. Piotr Konieczny (TOR!) Środa, 30 sierpnia 2006, 04:51:36
 

Hm, zagłębiłem się na kilkadziesiąt minut w dokumentację TOR-a, pokombinowałem, skonfigurowałem... i śmiga! :-)

Cudownie. Działa i SSH i Jabber. Mam jeszcze pewne obawy co do prywatności, ale w to zagadnienie zagłębię się później.

Heh, szkoda że oświecenie przyszło trzy dni przed opuszczeniem tego faszystowskiego miejsca...

 
9. WeeD Wtorek, 19 września 2006, 15:47:53
 

http://anyterm.org/

 

Dodaj komentarz:

Wyślij pustą wiadomość, aby śledzić komentarze przez bota.
Komentarze są własnością osób komentujących.
Właściciel bloga nie ponosi za nie odpowiedzialności.
Komentarze nie na temat będą usuwane.

Ofiara

Jeśli powyższy wpis przydał Ci się w jakiś sposób,

autorowi :-)

Czytelnicy:

« wszystkie wpisy