Podręcznik hakera, część druga

Jak "wyłożyć" Windows NT

Jak "wyłożyć" Windows NT

Kiedy dostałem od redakcji CYBERA zlecenie na napisanie tekstu o tym jak włamywać się do Windows NT miałem mieszane uczucia. Z jednej strony opanowanych mam wiele sztuczek, które pomagają uzyskać pewne uprawnienia w systemie nie będąc samemu uprawnionym do ich posiadania, a z drugiej strony jako administrator kilku serwerów Windows NT nie jestem zainteresowany tym aby zdradzać metody uzyskania tych praw szerokiemu gronu czytelników.

Niemniej jednak nikomu nie zaszkodzę jeśli podam generalne wytyczne dotyczące kroków jakie należy wykonać przy dokonywaniu "włamów" do Windows NT oraz jeśli obalę kilka mitów.

Przede wszystkim pragnę wyjaśnić jedną kwestię: za efektywne włamanie uważam taki ciąg działań, w wyniku którego nieautoryzowany użytkownik uzyskuje dostęp do danych przechowywanych na serwerze Windows NT. Za włamanie nie uważam umiejętności zdalnego wyłożenia systemu na serwerze NT, choć z pewnością należy uznać to za naruszenie bezpieczeństwa.

Cel

Aby osiągnąć cel, czyli uzyskać zdalny dostęp do plików przechowywanych na serwerze Windows NT, należy najpierw uzyskać odpowiednie prawa dostępu takie jakie mają poszczególni użytkownicy (lecz to nie daje nam pełnej władzy w systemie) lub najlepiej prawa administratora (gdyż jego władza jest niemalże nieograniczona).

Standardowo zainstalowany serwer Windows NT pozostawia wiele luk w bezpieczeństwie systemu. Przede wszystkim nie wprowadza on ograniczenia dla ilości niepomyślnych prób logowania. Ponadto umożliwia jednemu użytkownikowi logowanie na kilku komputerach na raz. Dzięki temu początkujący hacker znający identyfikator (login) dowolnego użytkownika może praktycznie bez ograniczeń próbować zgadywać przypisane mu hasło. Oczywiście jest to metoda mało efektywna. Czasami hasło (szczególnie gdy próbujemy włamywać się na konto kobiety) jest bardzo proste (czasami identyczne jak identyfikator) a czasami bardzo trudne co powoduje, że na sprawdzenie wszystkich możliwych kombinacji znaków metodą manualną potrzeba kilkaset lat.

Jednak ogólne założenia metodologii są dobre - trzeba poznać tak wiele haseł użytkowników posiadających swoje konta w danej domenie Windows NT jak to tylko możliwe. Wszystkie hasła przechowywane są gdzieś w systemie. Oczywiście nie w postaci jawnej lecz zaszyfrowanej. Co więcej, zaszyfrowane są one w taki sposób, że odszyfrowanie ich jest praktycznie niemożliwe. Jak więc przebiega proces logowania użytkownika do systemu i skąd system wie, że użytkownik posługuje się właściwym hasłem?

Podczas logowania użytkownik wpisuje hasło, które kodowane jest według określonego algorytmu i dopiero zakodowana postać tego hasła porównywana jest z zapisem znajdującym się w pliku z zaszyfrowanymi hasłami przechowywanym w systemie Windows NT. Jeśli porównywane ciągi znaków (reprezentujące zaszyfrowane hasło) są takie same to użytkownik wpuszczany jest do systemu. W przeciwnym wypadku ponownie proszony jest o wpisanie hasła.

Jeśliby więc włamywacz wszedł w posiadanie pliku, według którego Windows NT przeprowadza autoryzację użytkowników, to przy pomocy prostych programów narzędziowych mógłby przeprowadzać taką symulowaną operację logowania praktycznie nieograniczoną ilość razy w zaciszu domowym.

W Internecie dostępnych jest wiele programów, które wielokrotnie przeprowadzają operację logowania zastępując użytkownika przy wymyślaniu haseł. Jednym z takich najbardziej nagłośnionych w ostatnim czasie narzędzie jest pakiet L0phtcrack zawierający dwie aplikacje umożliwiające wykonanie procesu kodowania pracujące w DOS-ie i Windows NT.

W pakiecie dostępny jest także przykładowy słownik angielski zawierający przeszło 26 tysięcy słów, które wykorzystywane są w procesie odgadywania przez program haseł użytkowników. Procedura ta przebiega w taki sam sposób jak proces logowania użytkownika do sieci - program koduje po kolei wszystkie słowa z zewnętrznego pliku słownika według takiego samego algorytmu w jaki system operacyjny koduje hasła i porównuje ich zakodowaną postać z zaszyfrowanymi hasłami wszystkich użytkowników wyszczególnionych w pliku wygenerowanym przez program PWDump.

Metoda słownikowa (nazywana po angielsku dictionary attack) jest skuteczna ale nie w stu procentach. Sprawdza się ona wszędzie tam, gdzie użytkownicy używają banalnych haseł, które znajdują się także w pliku słownika (dlatego niezbędne jest posiadanie takiego pliku ze słowami typowymi dla danego języka i dlatego słowniki angielskie słabo sprawdzają się w polskich warunkach).

Bardziej skuteczną metodą ataku oferowaną przez pakiet L0phtcrack jest tzw. brute attack, czyli atak brutalny polegający na przeszukiwaniu wszystkich kombinacji haseł. W ten sposób możliwe jest znalezienie wszystkich haseł o długości do 14 znaków. Kolejna wersja L0phtcrack umożliwiać ma odnajdywanie wszystkich haseł o długości do 16 znaków.

Metoda ta w przeciwieństwie do ataku słownikowego jest stuprocentowa, tzn. pozwala odnaleźć hasła wszystkich użytkowników systemu. Jej wadą jest jednak czasochłonność.

Metoda zastosowana przez autorów L0phtcrack nie jest nowa. W identyczny sposób działa najpopularniejszy program do łamania haseł - Crack. Dostępna jest też już jego wersja dla systemu Windows NT - NTCrack opracowana przez Jonathana Wilkinsa także wykorzystująca pliki generowane przez program PWDump.

Plik z hasłami

Problemem nie jest jednak odnalezienie haseł lecz zdalne wydobycie z systemu Windows NT pliku z hasłami (przechowywane są one w specjalnej systemowej bazie danych nazwanej Security Accounts Manager). Ja nie znam prostej metody, która umożliwiałaby wykonanie tego zadania bez konieczności zalogowania się na serwerze z prawami administratora.

Niemniej jednak zdenerwowani bezskutecznością swoich ataków włamywacze-wandale mogą znacznie zaszkodzić administratorowi serwerów Windows NT. Choć nie wykradną oni prawdopodobnie haseł to mogą zdalnie bez większych trudności spowodować zawieszenie serwera Windows NT. Microsoft pozostawił w samym systemie wiele błędów, które dodatkowo ułatwiają to zadanie.

Przykładowo, włamywcz może wykonać telnet na serwer Windows NT (o ile udostępnia on taką usługę), po nawiązaniu połączenia wpisać kilka przypadkowych znaków i przerwać sesję. Z powodu błędu w programie RPCSS.EXE procesor poświęci praktycznie cały swój czas na obsługę nieaktywnej już sesji, co doprowadzi do załamania pracy systemu (znacznie spowolni on swoją pracę nie mogąc korzystać z procesora). Na serwerze Microsoftu znajduje się już poprawka (hotfix) do tego błędu.

Innym błędem zawartym w systemie była niepoprawna jego reakcja na przesłany przez sieć Internet tzw. Ping-of-death (specyficzny ping). Kiedy serwer NT otrzymywał taki pakiet to powodowało to całkowite wyłączenie TCP/IP i pociągało za sobą kompletne zatrzymanie systemu wymagające fizycznego naciśnięcia przycisku Reset serwera.

Zabezpieczanie

Istnieje jednak metoda pozwalająca zwiększyć bezpieczeństwo systemu. Przede wszystkim należy instalować wszelkie zestawy poprawek do systemu (tzw. Service Pack) oferowane przez producenta Windows NT - firmę Microsoft. Ponadto administratorzy powinni regularnie przeglądać Internet w poszukiwaniu informacji dotyczących zagrożeń związanych z użytkowaniem systemu w standardowej konfiguracji.

Strony związane z bezpieczeństwem Windows NT:

* http://www.microsoft.com/security

* http://www.ntinternals.com

* http://www.ntsecurity.com

* http://somarsoft.com/security.htm


Zobacz również