« poprzedni punkt | następny punkt » |
Od początku swego istnienia Windows NT/W2K postrzegany jest jako system rozdający darmowe informacje wszystkim ciekawskim. Wynika to z wykorzystywania protokołów przesyłania danych CIFS/SMB (Common Internet File System/ Server Message Block) i NetBIOS.
Do zbierania informacji wykorzystywany jest często pakiet Windows NT Resource Kit, zwany z tego powodu Windows NT Hacking Kit. Zawiera on kolekcję narzędzi, które są bardzo pomocne dla administratora systemu, ale mogą być również wykorzystane przez agresorów do zdobywania cennych informacji.
Wymienione poprzednio protokoły wykorzystują porty 135¸ 139, oraz 445 w Windows 2000. Pierwszym krokiem podczas zdalnego korzystania z tych interfejsów jest utworzenie nieautoryzowanego połączenia z systemem. Używa się w tym celu tzw. polecenia pustej sesji, np:
net use \\192.168.1.2\IPC$ "" /user:""
Powoduje to połączenie z ukrytym zasobem komunikacyjnym IPC$ jako anonimowy użytkownik z pustym hasłem. Zasób ten jest używany do komunikacji między procesowej i z racji swojego przeznaczenia umożliwia zewnętrznym procesom utworzenie anonimowego połączenia. Po stworzeniu takiej anonimowej sesji, tester nie będzie miał co prawda praw dostępu do zasobów, ale będzie mógł zidentyfikować udostępnione zasoby i użytkowników na testowanym komputerze. Większość technik korzysta z tej charakterystycznej luki w zabezpieczeniach.
Nazwy NetBIOS w standardowej postaci mają długość 16 znaków. Ostatni 16 znak określa rodzaj zasobu lub usługę związaną z nazwą. Niektóre przyrostki NetBIOS przedstawiono w tabeli na Rys. 1. Na Rys. 2¸ 4 pokazano przykłady enumeracji systemu Windows z wykorzystaniem różnych programów.
Rys. 1. Przyrostki NetBIOS
Rys. 2. Enumeracja przy pomocy programu NBTSTAT
Rys. 3. Enumeracja przy pomocy programu SRVCHECK
Rys. 4. Enumeracja przy pomocy programu RMTSHARE
Ponieważ puste sesje wymagają dostępu do portu 139, więc najprostszą metodą ich powstrzymania jest filtrowanie ruchu związanego z NetBIOS. Można również wyłączyć usługi Alerter i Messenger. Można również wykorzystać tzw. poprawkę RestrictAnonymous. Polega ona na umieszczeniu w kluczu HKLM\SYSTEM\CurrentControlSet\Control\LSA następującej wartości:
Nazwa wartości: RestrictAnonymous
Typ danych: REG_DWORD
Wartość: 2
System Windows może również udostępniać informacje podobne jak przy enumeracji NetBIOS, jeżeli zostanie na nim uruchomiony agent SNMP. Standardowo SNMP nie jest instalowany. W SNMP, serwerem jest system zarządzający klientem, agent. Jedyną operacją jaką może zainicjować agent jest pułapka, czyli uzyskanie informacji o jakimś zdarzeniu. Pozostałe operacje inicjowane są przez serwer. Jedynym zabezpieczeniem przesyłanych danych jest prymitywne uwierzytelnienie. Polega ono na przynależności do tzw. wspólnot i znajomości nazwy wspólnoty. Aby przechwycić informacje przesyłane przy pomocy SNMP wystarczy znać nazwę wspólnoty. Nazwą standardową jest PUBLIC.
Informacje o monitorowanych obiektach przechowywane są w hierarchicznej bazie MIB (Management Information Base). Dzięki temu serwer wie o co może spytać agentów i w jakim formacie otrzyma odpowiedź (RFC 1213). Typowe, możliwe do uzyskania informacje to:
Obrona przed tego typu działaniem może polegać na:
Przestrzeń nazw Active Directory bazuje na DNS. Klienci dzięki rekordowi SRV (opisanemu w RFC 2052) mogą lokalizować w sieci serwery poszczególnych usług. Intruz może uzyskać informacje o usługach poprzez transfer strefy (np. program nslookup). Symbole przykładowych usług to:
gc._tcp | katalog globalny (port 3268) |
_kerberos._tcp | kontroler domeny wykorzystujący Kerberosa (port 88) |
_ldap._tcp | serwer LDAP (port 389) |
Zwykle duża część pracy związanej z uzyskaniem dostępu do konta, to zdobycie nazwy użytkownika. Ponieważ większość użytkowników stosuje łatwe hasła, więc często jest to prawie cały wysiłek z tym związany.
SID to identyfikator zabezpieczeń przypisywany systemowi podczas instalacji. Znając SID systemu można sprawdzić praktycznie każde konto i grupę użytkowników w tym systemie. Identyfikator użytkownik zawiera dodatkowy (ostatni) człon tzw. RID, czyli identyfikator względny. Dla kont i grup wbudowanych jest on ustalony: Administrator (500), Guest (501), konta lokalne lub domenowe (1000, 1001, 1002, itd.). Przeciwdziałanie enumeracji kont realizuje się jak w przypadku przeciwdziałania zapytaniom NetBIOS. Innym sposobem jest wyłączenie usług Alerter i Messenger.
Rys. 5. Enumeracja SID
Informację w czasie enumeracji można również realizować poprzez łączenie się ze zdalnymi aplikacjami i obserwowanie zwracanych przez nie danych. Nazywamy to przechwytywaniem etykiet. Najprostsza metoda to nawiązanie połączenia przez telnet ze znanym portem wybranego na cel serwera. W razie potrzeby należy wcisnąć kilka razy Enter.
Obrona wymaga dużo pracy ze strony administratora. Należy sporządzić listę aplikacji, które muszą funkcjonować a następnie znaleźć odpowiednie dla nich metody wyłączenia pokazywania informacji o ich producencie, wersji, itp. Co pewien czas należy dokonywać skanowania aby upewnić się, że niepożądane informacje faktycznie nie są udostępniane.
Informację można również uzyskać poprzez łączenie się ze zdalnymi aplikacjami i obserwowanie zwracanych przez nie danych. Nazywamy to przechwytywaniem etykiet lub pozyskiwaniem banerów. Najprostsza metoda to nawiązanie połączenia przez telnet ze znanym portem wybranego na cel serwera. W razie potrzeby należy wcisnąć kilka razy Enter.
Obrona wymaga dużo pracy ze strony administratora. Należy sporządzić listę aplikacji, które muszą funkcjonować a następnie znaleźć odpowiednie dla nich metody wyłączenia pokazywania informacji o ich producencie, wersji, itp. Co pewien czas należy dokonywać skanowania aby upewnić się, że niepożądane informacje faktycznie nie są udostępniane.
c:\telnet www.testowa.com 80
HTTP/1.0 400 Bad Request
Server: Netscape-Commerce/1.12
Your browser sent a non-HTTP compliant message
« poprzedni punkt | następny punkt » |