r02b.doc

(723 KB) Pobierz
Helion

 

Rozdział 2. ¨ Hakowanie systemu                            161

Ataki na Windows 95/98

Każdy haker wie, że nie istnieje coś takiego jak ochrona danych w systemie operacyjnym Windows 95, gdyż taka możliwość nie została przewidziana przez firmę Microsoft. Co prawda istnieje system haseł, ale nie jest on specjalnie funkcjonalny. Brakuje również mechanizmów sprawdzania dostępu do plików czy innych zasobów systemu. Z pomocą intruzom przychodzi ponadto WinAPI, w którym aż roi się od funkcji umożliwiających wykorzystanie systemu „niezgodnie z jego przeznaczeniem”. System ten nie powinien zatem być traktowany jako „system do wszystkiego” i jeżeli już zostanie podłączony do Sieci, należy się liczyć z ewentualnym niebezpieczeństwem.

WinAPI

Wiele luk w systemie bezpieczeństwa związanych jest z samym systemem operacyjnym i, aby zrozumieć ich zasadę, należy w minimalnym chociaż stopniu przyswoić sobie działanie WinAPI (Windows Application Programming Interface).

Wszystkie obiekty graficzne widziane na ekranie, takie jak: przyciski, pola tekstowe, listy wyboru itp. są przez system traktowane tak samo — każdy taki obiekt jest oddzielnym oknem, które podlega pewnym zależnościom, a okna z kolei mają właściwości określające kolor, czcionkę, wygląd i rożne inne cechy charakterystyczne dla klasy danych okienek. Każde okno ma również zdefiniowane procedury obsługi wiadomości pochodzących z systemu, bądź to od użytkownika czy innej aplikacji. „Wiadomości stanowią bowiem bardzo sprytny mechanizm systemu powiadamiania jego komponentów o tym, że zaistniało jakieś zdarzenie np. użytkownik wpisał text do okienka klasy TextEdit (okienko tekstowe), system wysłał do kolejki wiadomości polecenie SetText (ustaw tekst) w momencie, gdy okienko „obsłuży” wszystkie wiadomości w kolejce i „dojdzie” do SetText, w polu tekstowym zostanie wyświetlona wartość wpisana przez użytkownika. Teraz należałoby zadadać kolejne pytanie — czemu służą kolejki wiadomości? Odpowiedź wydaje się prosta — są one po to, by okienko „wiedziało”, które rzeczy ma obsługiwać i w jakiej kolejności. WinAPI udostępnia funkcje, które pozwalają podglądać kolejki wiadomości dla dowolnego okienka, udostępnia również funkcje służące do odczytywania właściwości okienek oraz wartości tych właściwości (np. okienko tekstowe Edit ma właściwość typu Text, która jest wyświetlana i stanowi odwzorowanie tego, co wpisał użytkownik; jest ono identyfikowane za pomocą uchwytu, swoistego identyfikatorem w skali systemu.

I znów nasuwa się pytanie — jaki sens ma wprowadzenie dodatkowych zasad obsługi, skoro tekst okna tekstowego zawsze jest widoczny? I znów odpowiedź okaże się prosta. Istnieje bowiem bardzo sprytna właściwość okienek tekstowych — PasswdChar. Jeśli jest ona odpowiednio ustawiona, to okienko zamiast wyświetlać właściwość Text, pokaże znaczki *** (w ilości odpowiedniej do ilości liter w Text). Jest to możliwość doskonale znana ze wszystkich programów, w których trzeba wprowadzić hasło. Stanowi jednak pozorną ochronę, gdyż właściwość Text dalej zawiera prawidłowy napis (np. hasło użytkownika).

Dobrze jest pamiętać także o tym, że wszystkie funkcje mogą być wykonywane przez dowolny program.

Narzędzia

Do hakowania Windowsa wykorzystać można wiele narzędzi, np.:

¨     WinSight [Windows and messages viewer] — aplikacja dostarczana
z produktami firmy Borland (obecnie Inprise), która pozwala między innymi podglądać wiadomości wysyłane do docelowych okien;

¨     Tunel — prosty programik tunelujący transmisję TCP/IP; dodatkową opcję stanowi możliwość podglądania całej transmisji w konsolowym okienku;

¨     FS [Fake Server] — program, który udaje serwer dowolnej usługi; został napisany w celu testowania protokołów Sieciowych i ich klientów,
ale doskonale może posłużyć jako sniffer haseł programów pocztowych,
gdyż ma możliwość podglądu i logowania transmisji;

¨     Listen — program, którego jedyną funkcją jest nasłuchiwanie prowadzone na danym porcie i informowanie użytkownika o próbach połączenia; może służyć do monitorowania portu 139 i chronić przed sławetnym WinNukiem;

¨     DUP [Dial-up passwd] — programik, który używając funkcji WinAPI „wyciąga” hasła służące do łączenia się z Internetem;

¨     PortScanner — służy do skanowania portów zdalnego hosta, pozwala określić, które usługi (i w jakich wersjach) są dostępne na serwerze;

¨     ICQThief — „podszywa” się pod serwer ICQ i pokazuje hasło ofiary; winspy.dll to biblioteka, która „podszywa” się pod winsock.dll (obsługa TCP/IP) i pozwala śledzić wszystkie odwołania wraz z parametrami;

¨     Netstat — standardowy program do sprawdzania połączeń dołączony
do systemu.

Programy, takie jak: Tunel, FS, Listen i DUP, można pobrać z Internetu np. ze strony http://dione.ids.pl/~jan.

Ataki lokalne

Ataki na hasła w programach pocztowych i FTP

W tym przypadku bardzo często mamy do czynienia z brakiem wyobraźni programistów. Do takiego wniosku nieodwołalnie prowadzi fakt, że hasła tych programów przeważnie da się albo rozkodować, albo wykorzystać bez rozkodowywania, ponieważ najczęściej są zapisywane w rejestrze w formie zaszyfrowanej (często używa się do tego słabych algorytmów) lub w plikach konfiguracyjnych. Najprostszą metodą na ich użycie jest zdobycie pliku konfiguracyjnego lub fragmentu rejestru
z odpowiednim kluczem i umieszczenie go na dysku twardym własnego komputera (w skonstruowanej uprzednio konfiguracji softwarowej) dokładnie w tym miejscu, z którego został pobrany. Sprawi to, że program „potraktuje” dany wpis jak swój własny i sam zajmie się rozkodowaniem odpowiednich danych. Jeśli z jakichś powodów ta metoda okaże się niemożliwa do zastosowania, haker może rozkodować hasło znajdujące się w rejestrze lub pliku (udało się już złamać hasła do WS_Ftp, IEMail, Netscape, Cute_FTP). Powód jest prosty — słaby algorytm kodowania.

Usługa Dial-up

WinAPI zawiera funkcje przystosowane do obsługi połączenia z Internetem poprzez modem telefoniczny. Wśród nich znajdują się również takie, za pomocą których można ustawić bądź pobrać ustawienia parametrów połączenia.

Funkcja:

DWORD RasGetEntryDialParams (

LPTSTR lpszPhonebook,                                         

LPRASDIALPARAMS lprasdialparams,             

LPBOOL lpfPassword                                         

pozwala każdemu programowi na pobranie informacji o konkretnym połączeniu
(z hasłem włącznie). Na działaniu tej funkcji opiera się program Dial-up. Co istotne — hasło nie jest w żaden sposób kodowane!

Sniffing wiadomości

Każdy szanujący się adept sztuki hakerskiej wie, że możliwe jest ustawienie tak zwanych procedur HOOK, do których będą przekazywane wiadomości skierowane do danego okienkam, co pozwala na podgląd różnych jego parametrów oraz na napisanie ciekawych programów-narzędzi (np. można w ten sposób znajdować okna, które dopiero co zostały zamknięte lub otwarte). Haker robi to w następujący sposób:

¨     Włącza WinSight;

¨     W menu Spy ustawia opcję Follow focus;

¨     W menu Messages ustawia opcję All windows;

¨     W oknie Messages/Options ustawia tylko opcję Window;

¨     W oknie Messages/Processes zaznacza tylko te procesy, które go interesują.

Po kliknięciu okienka, w którym jest zamaskowany tekst (w postaci ******),
w pierwszej części okna WinSighta pokazują się właściwości tego okienka wraz
z tekstem w postaci jawnej, a jeśli klikniemy dwukrotnie tę pozycję, pokaże się okno
z dokładnymi właściwościami okienka. Wtedy widać, że właściwość Password ustawiona jest na true.

W dolnej części okna można śledzić wiadomości, jakie są wysyłane do okienka docelowego. Po kliknięciu okienka tekstowego — jeśli okno macierzyste jest okienkiem dialogowym — zostaje wysyłana wiadomość „WM_GETDLGCODE, która zwraca m.in. wartość tekstu w okienku. Nie jest to oczywiście jedyna wiadomość, którą da się wykorzystać w ten sposób. I hakerzy ciągle eksperymentują.

Autorun

To bardzo ciekawy wynalazek firmy z Redmont. Jeśli na dysku CD-ROM umieścimy plik autorun.inf, który będzie zawierał tekst:

[autorun]

OPEN=NAZWA_PROGRAMU.EXE

to od razu po włożeniu CD zainstaluje się program NAZWA_PROGRAMU.EXE, który niesie ze sobą potencjalne zagrożenie. Na dodatek może on „ukryć się” w systemie, tak aby użytkownik nie mógł go zauważyć nawet po naciśnięciu Ctrl+Alt+Del. Szczególnie trzeba uważać na płyty z pirackim oprogramowaniem, które powyższy trik mogą wykorzystywać.

Wykradanie rejestru systemowego

Do operacji wykonywanych na rejestrze służy program Regit, który zaopatrzony jest w bardzo ciekawe opcje. Może on zostać uruchomiony bez pokazywania okienka. Parametr ,-e’ służy tu do eksportowania rejestru bądź jego części do pliku .reg (jest to plik tekstowy).

Polecenie:

regedit —e c:\1.reg HKEY_CURRENT_USER\Software

utworzy plik 1.reg w katalogu głównym dysku C zawierający klucz HKEY_ CURRENT_USER\ Software. W zależności od ilości zainstalowanego oprogramowania plik ten będzie zawierał od kilkuset kilobajtów do kilku megabajtów, a po kompresji może mieć rozmiar idealny do przesłania przez Internet.

Ciekawe klucze w rejestrze

Autostart — [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run].

Wszystkie polecenia, które zostaną tu umieszczone będą wykonane podczas startu.

Ustawienia programów — [HKEY_CURRENT_USER\Software] — mieszczą konfiguracja, hasła, numery seryjne itp.

Sposoby wykorzystania rejestru

Jeśli haker posiada fragment czyjegoś rejestru i chce korzystać z jakiegoś hasła to, aby uniknąć konieczności zbędnego rozkodowywania haseł, może zaimportować odpowiednie klucze z utworzonego na komputerze ofiary pliku .reg. Docelowy program potraktuje to jako oryginalną konfigurację.

Podglądanie transmisji pakietów w Sieci

Jeśli haker zamierza podejrzeć transmisję prowadzoną między dwoma hostami, to może to zrobić na trzy różne sposoby :

1.  Przechwycić odwołania do biblioteki winsock.dll;

2.  Przepuścić całą transmisję przez naszą aplikację;

3.  Śledzić to, co jest przesyłane za pomocą kabla.

O ile trzecia metoda łączy się z ingerencją w sterowniki, o tyle pierwsza i druga
z powodzeniem pozwalają się wykonać (nie trzeba chyba przypominać, że transmisja w protokołach SMTP, NNTP, FTP, HTTP itp. nie jest kodowana). Więc wszystkie hasła czy loginy mogą być łatwo podglądane.

WinSpy

Podszywa się pod bibliotekę winsock.dll i loguje wszystkie odwołania do niej łacznie z parametrami przekazywanymi do odpowiednich funkcji. Jest to o tyle dobry program, że można za jego pomocą prześledzić dokładnie, co „robią” aplikacje z otwartym socketem, można również monitorować transmisję UDP.

Tunel

Prosty programik, który służy hakerowi do przekazywania transmisji z jednego socketa do drugiego. Może on np. „przepuścić” przez niego sesję IRC albo sesję POP3, żeby poznać hasło wysyłane do serwera (do odpowiedniego działania tego programu niezbędny jest jeszcze serwer, do którego można by przekierowywać transmisję).

FS

Fake Server jak sama nazwa wskazuje „udaje” serwer dowolnej usługi. Wystarczy, że w pliku konfiguracyjnym haker wpisze schemat protokołu (w formacie request-reply) np. POP3, a połączy się z nim programem-klientem. Cała transmisja może być logowana.

Windows 95/98 a konie trojańskie

Konie trojańskie działające w systemie operacyjnym Windows 95 to temat bardzo obszerny, gdyż codziennie powstają nowe, niebezpieczne i coraz to bardziej zaawansowane programy. Dlaczego? Odpowiedź jest prosta:

„... potęga tego systemu jest wprost proporcjonalna do ilości użytkowników na świecie. Kiedyś konie trojańskie były przeważnie prymitywnymi bombami logicznymi lub zwykłymi programami destrukcyjnymi, teraz istnieją takie, które w środowisku uniksowym zwykło nazywać się «backdorami»”.

Mechanizmy, które oferuje sam system bardzo sprzyjają działaniu takich programów. Można np. zupełnie ukryć proces, przekształcić go w „niezabijalny”, uruchomić program przy starcie systemu bez wiedzy użytkownika czy wreszcie otworzyć na jakimś porcie serwer usługi Telnet, który będzie służył napasatnikowi do zdalnego kontrolowania naszej maszyny. Znanymi przykładami zaawansowanych koni trojańskich są BO (Back Orifice) i BOWL. Umożliwiają one sterowanie systemem Windows poprzez Sieć. Rozprzestrzenianiu się koni trojańskich służą wszelkiego rodzaju serwisy sharewarowe i gazety komputerowe zachwycające się każdym produktem rodzimych programistów. Powszechnie wiadomo, że łatwo jest przemycić w takim programie trojana.

Ataki poprzez Sieć

Nie istnieje  zbyt dużo rodzajów ataków możliwych do przeprowadzenia z Sieci. Przeważnie są to proste ataki typu DoS (Deniale of Service). Aby w ogóle było możliwe do wykonania jakiekolwiek działanie skierowane z Sieci na komputer zaopatrzony w system Windows, musi on mieć zainstalowane dodatkowe oprogramowanie np. BO albo BOWLA. Ostatnio pojawiły się exploity wykorzystujące znany z Uniksa „buffer overflow”, które pozwalają nawet na uruchomienie odpowiedniego programu poprzez Sieć.

Ataki DoS na Windows 95/98

Ataki DoS są klasycznym przykładem ataku przeprowadzanego z Sieci przeciwko systemowi Windows. Nie są one zbyt groźne, gdyż co najwyżej spowodować mogą utratę danych w aktualnie używanych aplikacjach (są szczególnie niebezpieczne dla serwerów). Klasyczne DoS-y, na które jest podatny Windows to Winnuke, Teardrop, Teardrop2, Synflood, Syndrop, PingOfDeath, Nestea, Nestea2, Hanson, Smurf, Click i w zasadzie wszystki te, których działanie polega na modyfikowaniu nagłówków IP.

Hasła i Sieć

ICQ

Dobrze wszystkim znany i rozpowszechniony ICQ ma bardzo niedopracowany algorytm transmisji, która odbywa się przez sockety datagramowe (UDP). Na początku sesji klient-serwer do tego drugiego jest wysyłane hasło w postaci tekstu (atak hakera polega na tym, że na swoim komputerze ustawia on program ICQThief, który będzie czekał na połączenie i przechwytywał hasło.

Ws_Ftp

Starsze wersje Ws_FTP razem z plikami uploadowały na serwer specjalny plik konfiguracyjny, w którym między innymi zapisane było hasło użytkownika. Na szczęście ten rażący błąd został szybko zlikwidowany i dziś już nie występuje. Należy dodać, że WS_FTP jest najpopularniejszym klientem tej usługi.

ActiveX i Java

Kontrolki ActiveX, które można stosować na stronach WWW obsługiwane są m.in. przez Internet Explorera, ponieważ nie istnieje tutaj w zasadzie technologia sandbox (piaskownica) znana z JVM (Java Virtual Machine). Programy zapisane w tym formacie mają dostęp do wszystkich zasobów komputera — chroni przed nimi jedynie pełne wyłączenie obsługi tej technologii w przeglądarce.

Teoretycznie wszystkie używane na stronach WWW kontrolki ActiveX powinny mieć certyfikat autentyczności. Jednak nawet gdy go nie posiadają, można je uruchomić, a jedynym zabezpieczeniem przed hakerami będzie ostrzeżenie ze strony przeglądarki o wątpliwym pochodzeniu danego komponentu (w Sieci można znaleźć tzw. „evil ActiveX” ewentualnie „RadioActiveX”, czyli kontrolki, które robią różne „ciekawe” rzeczy z naszym systemem). Inaczej sprawa wygląda z appletami Javy — tutaj dzięki „piaskownicy” można kontrolować to, co applet może, a do czego nie ma prawa wykonać. Poza tym JVM narzuca pewne ograniczenia i byłoby to bardzo bezpieczne rozwiązanie, gdyby nie błędy występujące kodach.

Błędy Internet Explorera

Jakiś czas temu (wraz z wprowadzeniem wersji 3.0) wiele się mówiło o błędach IE. Wraz z każdą kolejną wersją, która pojawiała się na rynku, programiści z całego świata oraz hakerzy mieli coraz więcej rozrywki w odnajdywaniu luk bezpieczeństwa. W tej chwili nawet wersja 5.0 jest podatna na poważne błędy, co jest o tyle niebezpieczne, że program Outlook Express wykorzystuje biblioteki IE do wyświetlania wiadomości i listów zapisanych w formacie HTML.

O ile na stronę WWW haker musi ofiarę „ściągnąć” tak, aby obejrzała jego odp...

Zgłoś jeśli naruszono regulamin