Zanim jednak przejdziemy do omawiania poszczególnych narzędzi jeszcze, krótkie słowo wstępu. Programy zawarte w pakiecie nie rzadko oferują wykonanie konfiguracji na systemie zdalnym co wymaga od nas podania poświadczeń użytkownika posiadającego uprawnienia do wykonania określonego zadania. Podanie poświadczeń użytkownika będącego administratorem komputera często bywa niewystarczające i używane aplikacje zwracają informacje o braku uprawnień. Aby tę niedogodność ominąć należy wykorzystać wbudowane konto administratora, które z reguły jest wyłączone.
Aby włączyć wbudowane konto administratora i przypisać do konta hasło należy wykonać poniższe czynności (operacje oczywiście wykonujemy na komputerze, którym będziemy chcieli zarządzać zdalnie).
Otwieramy okno Uruchom (skrót Windows+R) i w polu Otwórz wpisujemy polecenie - netplwiz (można też skorzystać z konsoli mmc, bądź polecenia lusrmgr.msc).Otworzy się nam narzędzie Konta użytkowników. Narzędzie te umożliwia zarządzanie kontami oraz hasłami. Jak już jesteśmy przy tym narzędziu warto zaznaczyć, że oferuje ono włączenie opcji automatycznego logowania, tak aby nie trzeba było podawać hasła. Dane konto tradycyjnie jest chronione hasłem lecz system wykonuje procedurę automatycznego logowania. Aby włączyć logowanie automatyczne odznacz opcję Aby używać tego komputera, użytkownik musi wprowadzić nazwę użytkownika i hasło.
W następnym kroku przechodzimy na zakładkę Zaawansowane i w sekcji Zaawansowane zarządzanie użytkownikami klikamy na przycisk Zaawansowane.
Po uruchomieniu okna Użytkownicy i grupy lokalne klikamy na konto Administratora i z menu kontekstowego wybieramy Właściwości.
Na karcie Ogólne odznaczamy opcję Konto jest włączone
Następnie z powrotem przechodzimy do okna Użytkownicy i grupy lokalne klikamy na konto Administratora i z menu kontekstowego wybieramy Ustawienie hasła. Potwierdzamy komunikat przyciskiem Kontynuuj.
I w nowo otwartym oknie Ustawienie hasła dla Administrator definiujemy hasło
Aby aktywować wbudowane konto administratora można również skorzystać z CLI (tak robimy w przypadku systemu Windows 8, choć oczywiście w Windows 7 również można wykorzystać ten sposób) wydając polecenie: net user administrator /active:yes
Po wydaniu komendy konto jest aktywne, przelogowujemy się lub przełączamy użytkownika i w Panelu sterowania ustalamy hasło.
Mając aktywne wbudowane konto administratora jeszcze nie mamy pewności czy polecenia realizujące zdalną konfigurację zadziałają. Spowodowane to jest tym, że powinna być włączona usługa Rejestr zdalny. Usługę włączamy poleceniem: sc start remoteregistry bądź uruchamiamy ją z okna Usługi. Aby usługa była uruchamiana po każdym włączeniu komputera warto zmienić je tryb uruchamiania na automatyczny.
Polecenie sc start remoteregistry włączy nam daną usługę ale usługa będzie włączona tylko do czasu pracy komputera po ponownym rozruchu będzie trzeba znowu wydać polecenie (usługa rejestr zdalny jest domyślnie uruchamiana ręcznie). Aby zmienić stan uruchamiania usługi za pomocą wiersza poleceń wydaj polecenie: sc config <nazwa_usługi> start= <boot|system|auto|demand|disabled> (po znaku równości jest spacja np. sc config remoteregistry start= auto)
-
-
- boot - sterownik urządzenia ładowany przez moduł ładujący rozruchu,
- system - sterownik urządzenia uruchamiany podczas inicjowania jądra,
- auto - usługa uruchamiana automatycznie przy każdym ponownym uruchomieniu komputera i działająca, nawet jeżeli nikt nie jest zalogowany na komputerze,
- demand - usługa, którą należy uruchomić ręcznie. Jest to wartość domyślna, jeżeli nie określono parametru start=,
- disabled - usługa, której nie można uruchomić. Aby uruchomić wyłączoną usługę, należy zmienić wartość typu uruchomienia na inną.
Oczywiście stan uruchomienia usługi możemy również zmienić wykorzystując GUI a dokładniej narzędzie Usługi.
Po dokonaniu tych zmian wszystkie polecenia zdalne powinny nam działać.
W artykule w przypadku omawiania programów pozwalających na dostęp zdalnych przyjęto konwencję, że komputerem z którego jest realizowane połączenie jest komputer XXX natomiast komputerem z którym się łączymy komputer YYY. Bądź inaczej komputer YYY jest komputerem zdalnym na którym będziemy chcieli wykonać dane polecenie bądź czynność natomiast komputer XXX komputerem na którym fizycznie będziemy wydawać komendy bądź polecenia. Poświadczenia komputera zdalnego (YYY) pozwalające nam na wykonanie opisanych działań to: konto: administrator; hasło: tajnehaslo
Tak więc przechodzimy do omawiania poszczególnych narzędzi dostępnych w pakiecie Sysinternals.
AccessChk
AccessChk – jest narzędziem, które służy do przeglądania informacji o dostępie użytkownika do plików, kluczy rejestru oraz procesów
Oto niektóre z podstawowych sposobów, użycia polecenia:
folder: accesschk <nazwa folderu> - polecenie wyświetla uprawnienia dostępu dla wszystkich grup użytkowników dla danego folderu i jego podfolderów. np.: accesschk c: \dyskodczyt pokaże dostęp do folderu dyskodczyt i wszystkich podfolderów oraz plików znajdujących się w folderze. Użycie przełącznika -d spowoduje wylistowanie uprawnień do samego folderu, przełącznik -r wyświetla obiekty mające prawo tylko do odczytu natomiast użycie parametru -w spowoduje wyświetlenie obiektów mających prawo do zapisu. Przełącznik -n wyświetla obiekty do których nie mamy dostępu. Poniżej wylistowanie uprawnień do zasobów znajdujących się w lokalizacji c:\dyskodczyt jak widać grupa gr_biuro ma prawo odczyt/zapis do folderu biuro, natomiast dostęp zabroniony do folderu marketing. W przypadku grupy gr_marketing mamy sytuację odwrotną. Obie grupy mają prawo odczytu do folderu wspolne.
klucz rejestru: accesschk -k <klucz rejestru> -polecenie wyświetla uprawnienia dostępu do danej gałęzi rejestru. Na przykład użycie polecenia: accesschk -k HKLM\Software ukaże wszystkie uprawnienia dla klucza Software w gałęzi HKEY_LOCAL_MACHINE.
usługa systemu Windows: accesschk -c <nazwa usługi> - polecenie wyświetli listę użytkowników z dostępem do danej usługi. Na przykład, accesschk -c wuauserv pokazuje uprawnienia dla usługi Wuauserv (usługa Windows Update).
grupy użytkowników, sami użytkownicy: accesschk <grupa, nazwa użytkownika> <typ obiektu> - polecenie wyświetla uprawnienia do obiektu dla danego użytkownika bądź grupy. Na przykład: accesschk gr_biuro c:\dyskodczyt pokazuje poziomy dostępu dla wszystkich członków grupy gr_biuro do folderu c:\dyskodczyt i jego podfolderów. Drugi przykład (patrz rysunek poniżej) to sprawdzenie uprawnień dostępu użytkownika tadnow do folderu c:\dyskodczyt.
AccessEnum
AccessEnum jest programem, który podobnie jak AccessChk pozwoli na uzyskanie informacji, kto ma jakie uprawnienia do danego katalogu bądź do gałęzi rejestru. Aplikacja w przeciwieństwie do AccessChk pracuje w środowisku graficznym, jedyną rzeczą jaką musimy zrobić to wskazać interesującą nas lokację. Poniżej przykład w którym zostały wyświetlone uprawnienia do katalogów znajdujących się w folderze C:\Users. Nie jest tajemnicą, że w katalogu tym znajdują się foldery i pliki poszczególnych użytkowników.
I jeszcze jeden przykład (ten sam folder co w przypadku narzędzia AccessChk), jak widać dane uzyskane dzięki obu narzędziom pokrywają się ze sobą.
Komputer na którym został uruchomiony program AccessEnum pracuje w środowisku domenowym, tak więc skan katalogów uwidoczni nam SID-y użytkowników powiązanych z tym środowiskiem. Uzyskany ciąg znaków (w przykładzie S-1-5-21-4206837446-3972895442-1242411058-1103) niestety niewiele nam mówi. Aby SID powiązać z nazwą danego użytkownika należy użyć narzędzia PsGetSID (szukaj w opisie poniżej).
Uzyskane informacje możemy zapisać do pliku.
AdExplorer
AdExplorer - to zaawansowana przeglądarka a także edytor informacji zawartych w bazie Active Directory. Po uruchomieniu aplikacji pierwszą czynnością jaką musimy wykonać to podłączenie się do serwera AD. Aby wykonać tę czynność musimy podać poświadczenia uprawnionego użytkownika (czytaj administratora).
Po udanym podłączeniu mamy wgląd w informacje o każdym kontenerze (użytkownik, komputer, jednostka organizacyjna itd.) tworzącym strukturę naszej bazy AD. Mnogość prezentowanych informacji jest ogromna. Program celem ułatwienia nawigacji oferuje nam możliwość definiowania swoich ulubionych miejsc a dodatkowo program również umożliwia edycję wybranych atrybutów obiektów.
AD Explorer potrafi wykonać zrzut bazy Active Directory. Wykonywanie zrzutu i porównanie go z innym zrzutem zapewni nam zaobserwowanie zmian jakie zaszły od modyfikacji. Zrzuty można przeglądać offline czyli w trybie bez połączenia.
W celu wykonania zrzutu z menu wybieramy File należy wybrać Create snapshot. Po ustaleniu ścieżki i odczekaniu kliku sekund zrzut zostanie wykonany. Dodatkowo dostępne jest pole Description za pomocą, którego możemy dodać dodatkowe informacje np. o dacie wykonania zrzutu czy lokalizacji.
Mając wykonane dwa różne zrzuty aby wyłapać zmiany należy je załadować. W tym celu Aby porównać dwa zrzuty, na początek ładujemy pierwszy z nich. Klikamy File a następnie Connect, a następnie w polu Enter the path of a previous snapshot to load określamy ścieżkę do pliku z obrazem.
Po załadowaniu obrazu kolejnym krokiem jest wczytanie zrzutu porównawczego. Dlatego należy z menu Compare wybrać opcję Compare Snapshot. Po wprowadzeniu ścieżki do pliku należy ustalić zakres porównania. W sekcji Look at objects with these classes ustalamy typ interesujących nas kontenerów natomiast w sekcji Look for changes to these wybieramy interesujące nas atrybuty opisujące dany kontener.
Po wybraniu odpowiednich ustawień klikamy na przycisk Compare. W nowo otwartym oknie zostaną wyświetlone wszystkie zmiany. Po analizie poniższego zrzutu można stwierdzić, że użytkownik Tadeusz Nowak został skasowany.
Wykonanie zrzutu można zaplanować tak by cała procedura odbywała się automatycznie. Wystarczy do tego wykorzystać Harmonogramu zadań, a wywołanie programu następuje za pomocą dołączenia przełącznika -snapshot.
Dodatkowo mamy możliwość dodanie interesujących nas obiektów do zakładki Favorites (Ulubione – analogicznie jak w przypadku stron internetowych), zaoszczędzi nam to czasu celem odnalezienia interesującego nas obiektu. W przykładzie poniżej interesuje nas użytkownik Jan Kowalski.
Aby dodać skrót z menu wybieramy Favorites a następnie Add to Favorites.
Od tej pory gdy chcemy przejrzeć atrybuty jakie zostały przypisane do konta Jan Kowalski wystarczy, że z menu Favorites wybierzemy odpowiedni skrót.
AdRestore
AdRestore - jest narzędziem domenowym, które pozwoli nam na odzyskanie skasowanych obiektów usługi katalogowej Active Directory. Narzędzie bardzo przydaje się gdy przez przypadek skasowaliśmy obiekt co do którego takiego zamiaru nie mieliśmy. Cała procedura sprowadza się do wydania polecenia adrestore by można było przejrzeć obiekty skasowane i co do których przywrócenie może być zastosowane.
Poniżej na zrzucie w środowisku Windows Server 2008 R2 zostały skasowane dwa kontenery a mianowicie konto użytkownika Tadeusz Nowak oraz konto komputera XXX. Naszym celem będzie przywrócenie tych obiektów.
Aby przywrócić skasowane obiekty wystarczy, że narzędzie adrestore wywołamy z parametrem -r. Aby przywrócić obiekt musimy na postawione pytanie odpowiedzieć twierdząco. Jak widać poniżej proces przywracania skasowanych obiektów zakończył się sukcesem.
Autologon
Autologon – Jest programem, który automatyzuje nam operację związaną z automatycznym logowaniem. Po konfiguracji narzędzia, system Windows jest włączony i gotowy do pracy z poświadczeniami podanymi podczas konfiguracji programu. Nie trzeba mówić, że zastosowanie takiego rozwiązania w środowisku korporacyjnym jest skrajnie nieodpowiedzialne gdyż po włączeniu komputera nie trzeba już podawać żadnych poświadczeń. Natomiast w domu gdy jesteśmy jedynymi użytkownikami komputera można się skusić na wykonanie takiego „skrótu”.
Aby program zadziałał wystarczy podać nawę użytkownika, domenę (w przypadku komputera nie przypisanego do domeny podajemy nazwę komputera) i hasło użytkownika. Po podaniu niezbędnych danych wystarczy kliknąć na Enable. Od tej pory system Windows zaloguje się na skonfigurowane konto użytkownika. Cofnięcie operacji następuje po wybraniu Disable (wystarczy tylko podać nazwę użytkownika i domenę).
W przypadku konfiguracji automatycznego logowania konta korzystającego z domeny, podczas uruchomienia programu będzie trzeba podać poświadczenia administratora domeny.
Autoruns
Autoruns - Jest programem, który skutecznie zastępuje nam aplikację msconfig standardowo dostępną w naszym systemie. Zadaniem programu jest określenie programów oraz usług jakie mają być uruchamiane podczas startu systemu. Narzędzie pozwala m.in. na edycję wpisów znajdujących się w rejestrze (ale nie tylko) a tym samym ograniczenie możliwości uruchomienia danej aplikacji.
Narzędzie opisałem w wcześniejszych wpisach a więc odsyłam do lektury tych artykułów: Uruchamianie systemu Windows – czyli co zrobić gdy mamy problem z uruchomieniem oraz Zagubione hasło – moje boje z hasłami.
BgInfo
BgInfo - zadaniem programu jest wyświetlenie bezpośrednio na pulpicie bieżącej konfiguracji komputera. Po uruchomieniu aplikacji możemy zdefiniować jakie informacje mają być wyświetlane oraz dodatkowo możemy określić sposób reprezentacji tych informacji – tj. użyta czcionka oraz jej wielkość, tapeta, przezroczystość czy pozycja.
BgInfo potrafi wyświetlić następujące dane:
- model procesora, informacje o rozmiarze dysku i dostępnej ilości wolnego miejsca, ilość zainstalowanej pamięci RAM,
- poświadczenia użytkownika oraz przynależność do domeny,
- dane sieciowe: model karty sieciowej, adres IP domyślnej bramy, adresy serwerów DHCP i DNS, adres MAC oraz IP przypisane komputerowi, a także prędkość połączenia
- czas pracy komputera,
- wersja zainstalowanego systemu Windows (wraz z numerem Service Packa).
BgInfo praktycznie nie zużywa zasobów systemu ponieważ dane wyświetlane są jako mapa bitowa.
Aby aplikacja uruchamiała się wraz z startem systemu, należy umieścić ją w folderze Autostart.
CacheSet
CacheSet - program, który służy do modyfikacji dostępnego obszaru systemowej pamięci podręcznej – możliwość ustalenie jej maksymalnego oraz minimalnego rozmiaru. Program umożliwia również reset pamięci podręcznej.
ClockRes
ClockRes – Aplikacja pokazująca aktualną częstotliwość czasomierza systemowego.
Contig
Contig – narzędzie, które umożliwia defragmentację dysku. Program potrafi określić ilość wolnego miejsca oraz umiejscowienie plików zapisanych na dysku. Dzięki zdobytym informacjom narzędzie potrafi określić czy dany plik należy zoptymalizować. Contig korzysta z tych samych bibliotek co standardowy defragmentator Windows co chroni nas przed skutkami błędów jakie mogą wyniknąć w trakcie wykonywania procesu. Zaletą narzędzia jest możliwość wykonania defragmentacji tylko interesujących nas plików.
Parametr -a odpowiada za analizę pliku bądź plików.
Flaga -v odpowiada za wyświetlenie informacji na temat operacji, jakie zostały wykonane. Parametr -q włącza tzw. tryb „cichy”, zostaje wyświetlone tylko podsumowanie. Natomiast parametr -s włącza uwzględnienie plików i podkatalogów znajdujących się w interesującej nas lokacji.
Chcąc wykonać defragmentację np. katalogu c:\windows należy wydać polecenie: contig -s -q -v c:\windows
Aby wykonać defragmentację całego dysku użyj polecenia: contig -f -q -v <nazwa_dysku>
Coreinfo
Coreinfo – jest programem, którego zadaniem jest wyświetlenie informacji o posiadanym procesorze. Program przedstawia nam podstawowe dane o posiadanej jednostce wraz z zaimplementowanymi funkcjami.
Po wywołaniu program otrzymujemy wraz z grupowaniem dokładną informację o posiadanym procesorze.
Dostępne są również przełączniki, które odpowiadają wyświetleniu informacji z danej grupy tj. obsługiwane funkcje, rozmiar pamięci czy wsparcie dla wirtualizacji.
Ctrl2cap
Ctrl2cap – program jest narzędziem, które po instalacji spowoduje, że klawisz CapsLock będzie zachowywał się jak Control.
Instalacja następuje po wydaniu polecenia: ctrl2cap /install Po wydaniu polecenia niezbędny jest restart komputera.
Gdy chcemy powrócić do standardowych ustawień wystarczy, że wydamy polecenie: ctrl2cap /uninstall i zrestartujemy komputer.
DebugView
DebugView - Debugowanie jest procesem, który ma na celu doprowadzić do zredukowania błędów w oprogramowaniu a najczęściej przeprowadza się go za pomocą specjalnego oprogramowania, którego zadaniem jest wychwycenie wszystkich operacji jakie są wykonywane przez program. Narzędzie DebugView zalicza się właśnie do tego typu oprogramowania. Uruchamiając program uzyskamy wgląd w procesy jakie zachodzą podczas działania różnych programów. Narzędzie przyda się tym osobom, które tworzą własne programy i chcą sprawdzić czy przypadkiem aplikacja nie przysporzy kłopotów.
Desktops
Desktops - program po uruchomieniu daje nam możliwość utworzenia do czterech nowych wirtualnych pulpitów, rozwiązanie to na pewno jest znane osobom korzystającym z systemu Linux czy nawet Android. Microsoft Desktops przyda się, gdy na pulpicie mamy bardzo dużo ikon. By posprzątać pulpit na kolejnych wirtualnych pulpitach możemy dokonać grupowania ikon na jednym pulpicie mieć np. tylko gry, na innym programy a na kolejnym pliki. Korzystanie z programu jest bardzo proste ponieważ przełączanie pomiędzy pulpitami może odbywać się za pomocą zdefiniowanych skrótów klawiaturowych
bądź za pomocą ikony, która znajduje się w tray-u.
Disk2vhd
Disk2vhd - Narzędzie do tworzenia wirtualnych dysków VHD. Głównym zadaniem programu jest wykonanie kopii fizycznego sytemu tak aby można go było przenieść do wirtualnego środowiska. Po wykonaniu kopii fizycznych systemów, kopie te można połączyć z oprogramowaniem do wirtualizacji (Virtual PC, Hyper-V czy VirtualBox) celem np. przetestowania konfiguracji czy zachowania się nowego oprogramowania. W przypadku użycia VMware konieczna jest wcześniejsza konwersja dysku z formatu vhd do formatu vmdk. Disk2vhd korzysta z technologii VSS i wykonuje obraz z uwzględnieniem kopii migawkowej.
Wykonanie kopii sprowadza się do uruchomienia programu, wskazania dysków/partycji, których kopię będziemy wykonywać oraz wskazania lokalizacji tworzonego pliku.
Zaznaczenie opcji Use Vhdx spowoduje utworzenie kopii dysku w nowszym formacie. W stosunku do formatu VHD w formacie VXDX wprowadzone zostały znaczne udogodnienia np. zwiększono pojemność dysku (z 2 TB do 64TB). Format VHDX zapewnia również większą ochronę systemu plików poprzez ciągłe śledzenie aktualizacji w metadanych. Wprowadzono większe rozmiary bloków dla dysków dynamicznych i różnicowych, a także umożliwiono przechowywanie niestandardowych wpisów metadanych.
Gdybyś z jakiś powodów chciał posiadany dysk w formacie VHDX przekonwertować do formatu VHD (lub na odwrót) to wykorzystaj do tego polecenie: Convert-VHD <twój_dysk.vhdx> <dysk_docelowy.vhd> (co ważne polecenie wydajemy w linii poleceń PowerShell)
Poniżej przykład zamiany dysku VHD na VHDX.
Polecenie jest dostępne w systemach w których jest zainstalowane oprogramowanie Hyper-V w przeciwnym wypadku po wywołaniu polecenia otrzymasz informację o jego braku.
Możliwa jest również konwersja odwrotna czyli z nowego formatu VHDX na jego starszy odpowiednik VHD.
DiskExt
DiskExt – dzięki narzędziu uzyskamy dostęp do informacji dotyczących partycji przypisanych poszczególnym dyskom twardym oraz o ich położeniu. Program jest odpowiednikiem graficznego narzędzia Zarządzanie dyskami (ale tylko w przypadku informacji o strukturze dysku).
Diskmon
Diskmon – jest narzędziem dyskowym, którego zadaniem jest monitorowanie aktywności dysku twardego. Narzędzie w czasie rzeczywistym informuje nas o bieżącej aktywności dysku twardego. Program potrafi określić aktualnie używany sektor dysku wraz z określeniem wykonywanej operacji - czy wykonywana jest operacja odczytu czy zapisu.
Program można zminimalizować, działa wtedy w tray-u, za pomocą wyświetlanych kolorów jesteśmy informowani o aktualnym statusie - kolor zielony oznacza, że dysk wykonuje operację odczytu, kolor czerwony oznacza zapis, natomiast szary brak aktywności.
Zarejestrowane operacje można zapisać do logu. Log tworzymy po wybraniu menu polecenia File a następnie Save.
Rejestrowanie można w dowolnej chwili włączać bądź wyłączać po wybraniu opcji Capture Events umiejscowionej menu File.
DiskView
DiskView - to, nie wymagająca instalacji aplikacja, której zadaniem jest ukazanie graficznej mapy naszego dysku twardego, program ukazuje nam umiejscowienie poszczególnych plików. Diskview poinformuje nas o położeniu konkretnego pliku lub dostarczy informacji o tym jaki plik zapisany jest na danym klastrze dysku. Aplikacja przyda się użytkownikom, którzy na skutek awarii dysku będą zmuszeni do usunięcia błędnych sektorów na dysku.
Po uruchomieniu programu wybieramy interesujący nas dysk i klikamy Refresh, następuje skanowanie dysku. Po operacji skanowania za pomocą przycisków Zoom możemy przybliżać i oddalać graficzną mapę naszego dysku. Po podwójnym kliknięciu klastra uzyskamy informację o pliku, który zajmuje dany obszar dysku (zostaną zaznaczone wszystkie klastry zajmowane przez dany plik).
Po wybraniu File i następnie Statistics uzyskamy informację o ilości plików, fragmentacji oraz wolnym miejscu.
Jak wspomniałem możliwe jest również odwrócenie sytuacji czyli wskazanie interesującego nas pliku a program pokaże klastry zajmowane przez tenże plik. Plik wskazujemy po wybraniu ikony z trzema kropkami.
Interesujące dane możemy eksportować do pliku tekstowego.
Disk Usage
Disk Usage – program pracuje w linii poleceń interfejsu CLI a jego zadaniem jest raportowanie o zajętość katalogu i podkatalogów znajdujących się na dysku.
Program poinformuje nas m.in. o ścieżce katalogu, ilości podkatalogów, plików czy zajmowanym miejscu.
Wydanie polecenia sprowadza się do określenia ścieżki badanego katalogu i poziomu skanowania.
Wydania np. polecenia: du -ct -l 1 c:\ uwidoczni nam informację o wszystkich katalogach znajdujących się na dysku c:\ bez podania informacji o podkatalogach (parametr -ct użycie tabulacji a parametr -l określa katalogi znajdujące się w lokacji c:\ bez przechodzenia do podkatalogów).
A np. wydanie polecenia du -c -l 2 c:\ > export.csv spowoduje wyświetlenie informacji o katalogach znajdujących się w lokacji c:\ z uwzględnieniem podkatalogów i dodatkowo zapisaniu informacji w pliku export.csv (przy eksporcie do CSV dobrze jest użyć parametru -c gdyż dane są oddzielone przecinkami – łatwiejsza praca podczas obróbki danych np. w Excelu).
EFSDump
EFSDump – program dostarcza nam informację o użytkowniku, który ma prawo do odszyfrowania pliku/katalogu lub inaczej o użytkowniku, który dane pliki/katalogi zaszyfrował.
Składnia programu jest bardzo prosta, wystarczy podać tylko interesujący nas plik bądź katalog. Dodatkowo do dyspozycji mamy dwa przełączniki: dodanie parametru -s spowoduje wyświetlenie informacji również o podkatalogach natomiast parametr -q nie wyświetli błędów związanych z działaniem aplikacji.
Tak więc aby dowiedzieć się kto jest właścicielem zaszyfrowanego pliku/katalogu można wydać np. takie polecenie: efsdump pliki.zip Jak widać poniżej plik o nazwie pliki.zip zaszyfrował użytkownik XXX\!!!
Handle
Handle – Pewnie nieraz użytkowniku zdarzyła Ci się sytuacja w której to np. chciałeś skasować jakiś plik ale niestety niebyło to możliwe ponieważ uzyskiwałeś komunikat, że plik jest nadal w użyciu (a przecież wszystkie programy są już zamknięte). Na szczęście z opresji w przypadku wystąpienia tego typu problemu uratuje nas narzędzie handle. Narzędzie te pokaże nam tzw. obowiązujące uchwyty do obiektów czy inaczej jakich typu obiektów używają aktualnie procesy (ale nie tylko bo również informacja o kluczach rejestru, aplikacjach wraz z występującymi zależnościami).
Wywołanie samej nazwy programu wyświetli nam wszystkie dowiązania.
Przypuśćmy, że mamy plik pdf który nie możemy skasować (dla pokazania możliwości programu, plik nie można skasować ponieważ jest on otwarty w Acrobat Reader). Lokalizacja pliku c:\katalog.pdf
Za pomocą programu handle wyświetlimy wszystkie aktywne dowiązania do pliku.
Jak widać powyżej aktywne jest jedno dowiązanie skojarzone z aplikacją acrord32.exe
Aby móc skasować plik musimy za pomocą programu handle zamknąć to dowiązanie. By tego dokonać musimy podać dwa parametry a informację o tych parametrach uzyskamy z wcześniej wykonanej operacji pokazania dowiązania. Parametry te to PID procesu oraz numer zdarzenia.
Tak więc by zamknąć dowiązanie w naszym przypadku należy wydać polecenie: handle -c 1D8 -p 1604
Po potwierdzeniu operacji (należy mieć na uwadze fakt, że zamykanie w ten sposób dowiązań do aktywnych plików może spowodować nieprawidłowe działanie aplikacji) będzie można skasować plik (plik przeniesiony do kosza).
Użycie parametru -u wyświetli wszystkie dowiązania w kontekście danego użytkownika.
Hex2dec
Hex2dec - Program umożliwia konwersje liczb dziesiętnych na szesnastkowe i odwrotnie.
Tu nie ma się co rozpisywać wszystko wytłumaczy poniższy zrzut.
Junction
Junction – program pozwala utworzyć dowiązanie tak, że pliki które będą kopiowane do danego katalogu w rzeczywistości będą zapisywane w innym.
Przypuśćmy, że na dysku C mamy katalog w którym aplikacja zapisuje swoje pliki ale niestety partycja C ma ograniczoną ilość miejsca a zasoby tej partycji zostały już wyczerpane a niestety plików nie możemy skasować ani przenieść bo aplikacja jest dla nas niezbędna. Wydaje się, że sytuacja jest beznadziejna ale z pomocą przychodzi nam mały program junction ponieważ za pomocą programu utworzymy dowiązanie, które spowoduje, że pliki będą zapisywane na innej partycji na której miejsca mamy wystarczająco.
Przyjmijmy oto taki scenariusz, że katalogiem który chcemy przekierować będzie katalog c:\dokument a katalog w którym będzie zrealizowany zapis to f:\pliki
Aby wykonać przekierowanie wystarczy wydać polecenie: junction -s c:\dokument f:\pliki (parametr -s spowoduje, że uwzględniane będą również podkatalogi).
Po wydaniu polecenia zostanie utworzony „katalog” który zapis będzie przekierowywał do lokacji f:\pliki Dowiązanie istnieje tak długo póki go nie skasujemy.
Nieważne w którym katalogu dokonamy zmiany odzwierciedlenie zmian zaobserwujemy w obu lokacjach.
Co ważne przed dokonaniem przekierowania katalog, który chcemy przekierować nie może istnieć tak więc musimy zrobić kopię plików, wykasować katalog a następnie po utworzeniu dowiązania przywrócić wcześniej skasowane pliki. W przeciwnym razie otrzymamy informację o błędzie.
Informację o tym, że katalog c:\dokument nie jest prawdziwym katalogiem w normalnym znaczeniu tego słowa możemy uzyskać dzięki poleceniu dir. Po wywołaniu polecenia uzyskujemy informację o dowiązaniu oraz lokalizacji zapisu plików.
Dowiązanie kasujemy za pomocą parametru -d.
ListDLLs
ListDLLs – program pokazuje listę załadowanych w systemie plików dll.
Parametr -v dostarczy nam informacji o wersji pliku dll.
Można również wyświetlić informację o załadowanych bibliotekach DLL podając nazwę interesującego nas procesu (poniżej biblioteki powiązane z Internet Explorer).
Czy skorzystać z numeru PID (numer PID poznamy np. po wydaniu polecenia tasklist).
LoadOrder
LoadOrder – narzędzie, które pokazuje kolejność ładowanych sterowników.
LogonSessions
LogonSessions - listuje aktywne sesje logowania, pozwala na pokazanie listingu procesów dla każdej sesji.
Dodatkowo użycie przełącznika /p wylistuje uruchomione procesy w rozbiciu na każdą sesję.
MoveFile
MoveFile – jest programem, który przyda nam się gdy będziemy musieli wykonać usunięcie, przeniesienie lub zmianę nazwy pliku, który jest aktualnie w użyciu. Aby plik przenieść wystarczy, że jako parametry podamy ścieżkę do interesującego nas pliku oraz lokalizację docelową.
Po wydaniu polecenia plik canon.pdf, który jest w użyciu zostanie przeniesiony do nowej lokalizacji po restarcie systemu (narzędzie pendmoves omówione za chwilę).
Aby zmienić nazwę pliku, jako drugi parametr podajemy nową nazwę.
Przemianowanie pliku zostało zaplanowane.
Aby usunąć plik, jako drugi parametr podajemy pusty łańcuch (dwa cudzysłowy).
Oczywiście operacja zostanie wykonana po ponownym uruchomieniu komputera.
Narzędzie movefile nie rozpoznaje symboli wieloznacznych więc wykonanie zaplanowanych operacji za jednym zamachem na kilku plikach wymaga od nas wydania wielu poleceń movefile (no chyba, że napiszemy skrypt). Narzędzia można używać wobec całych katalogów.
NTFSInfo
NTFSInfo – narzędzie, które pokazuje informacje dotyczące partycji NTFS. Wywołanie programu odbywa się poprzez podanie litery dysku interesującej nas partycji.
PageDefrag
PageDefrag - program który służy do defragmentacji aktualnie używanych plików. Pozwala na defragmentację plików domyślnie niemożliwych do przeniesienia. Program potrafi wykonać defragmentację plików pamięci wirtualnej, plików rejestru czy logów dziennika zdarzeń. Aplikacja współpracuje z systemami Windows NT 4.0, Windows 2000, Windows XP i Windows Server 2003.
Po uruchomieniu programu uzyskujemy informację o stopniu defragmentacji plików, ustawiamy opcję defragmentacji przy następnym starcie systemu (jest możliwość ustawienia defragmentacji przy każdym uruchomieniu systemu) oraz określamy czas opóźnienia i klikamy na OK.
Po uruchomieniu komputera następuje defragmentacja plików.
PendMoves
PendMoves – gdy instalujemy bądź usuwamy jakąś aplikację system Windows czasem wymaga od nas ponownego uruchomienia systemu. Jednym z celów tego zabiegu jest skopiowanie czy przemianowanie a także usunięcie określonych plików tak aby dana aplikacja mogła poprawnie działać. Pliki te są zablokowane i jakakolwiek operacja na nich jest niemożliwa aż do momentu ponownego uruchomienia systemu Windows. Gdybyśmy z jakiś powodów chcieli przejrzeć listę zmian jaka nastąpi możemy do tego celu użyć programu pendmoves. Użycie programu sprowadza się tylko do wywołania jego nazwy.
Operację na tych plikach umożliwi nam wcześniej opisane narzędzie movefile.
PipeList
PipeList - wyświetla listę aktualnie utworzonych przekierowań strumieni danych.
PortMon
PortMon - jest to narzędzie, które potrafi monitorować porty COM oraz LPT (coś jak sniffer w sieciach). Za pomocą programu możemy monitorować komunikację pomiędzy komputerem a urządzeniami wykorzystującymi te interfejsy. Poniżej zrzut obrazujący komunikację pomiędzy komputerem a płytką Arduino.
ProcDump
ProcDump - jest programem umożliwiającym nam na monitorowanie aktywności uruchomionych aplikacji/procesów pod kątem wykorzystania zasobów. Program daje nam możliwość utworzenia dump-ów programów w wyniku zaistnienia określonych warunków np. określone zużycie pracy procesora czy pamięci.
Aby wykonać zrzut pamięci np. programu kalkulator należy wydać polecenie: procdump <nazwa_programu/procesu> czyli w naszym przypadku procdump calc Po wywołaniu polecenia tworzony jest plik z rozszerzeniem *.dmp zawierający nazwę procesu, datę oraz dokładny czas utworzenia zrzutu.
Zamiast użycia nazwy procesu można wykorzystać numer PID. Dołożenie parametru -ma spowoduje zrzut całej pamięci np. procdump -ma 2620 (można również skorzystać z flagi -mp zostanie wtedy utworzony dump, który będzie zawierał zapis pamięci do 512 MB tzw. miniplus).
Dołączenie dodatkowych parametrów: np. -r spowoduje utworzenie klonu pamięci w ten sposób proces tworzenia dumpa, nie przerwie działania uruchomionego programu; parametr -h spowoduje wykonanie zrzutu gdy nastąpi 5 sekundowe zawieszenie okna aplikacji natomiast z parametrem -w inicjujemy zrzut pamięci procesu/aplikacji, która nie została jeszcze uruchomiona (poczekaj).
Flaga -e jest odpowiedzialna za monitorowanie uruchomionego procesu/aplikacji, zrzut nastąpi gdy nastąpi nieoczekiwane zamknięcie.
Celem monitorowania działania aplikacji możliwe jest wykonanie kilku zrzutów aby np. zapisać dwa zrzuty pamięci w odstępie 3 sekund wydaj polecenie: procdump -s 3 -n 2 notepad
Dodatkowo można zdefiniować wykonanie zrzutu gdzie parametrem inicjującym wykonanie zrzutu będzie zużycie procesora np. polecenie: procdump -c 01 -s 3 -n 2 notepad spowoduje wykonanie dwóch zrzutów w odstępie 3 sekund przy przekroczeniu 10% zużycia procesora.
Możliwe jest jeszcze kilkanaście różnych konfiguracji ale wydaje mi się że zaprezentowane przykłady wystarczająco pokazują możliwości narzędzia. Celem poznania dodatkowych możliwości odsyłam do pomocy programu.
Process Explorer
Process Explorer – to już kolejne narzędzie z stajni Sysinternals (jedno z najbardziej znanych) a jego przeznaczeniem jest zarządzanie procesami w systemie Windows. Narzędzie zastępuje oraz znacznie zwiększa funkcjonalność systemowego Menedżera zadań. Program jest narzędziem diagnostycznym, które poinformuje nas o tym co w danej chwili jest uruchomione w systemie i dodatkowo pokaże zależności pomiędzy elementami. Narzędzie działa w trybie graficznym.
Po uruchomieniu w oknie programu zostanie wyświetlone drzewo procesów wraz z informacją o nich. Wśród wyświetlonych informacji znajdziemy dane m.in. o: nazwie procesu, identyfikatorze (PID), obciążeniu procesora (CPU), wykorzystywanej pamięci, opisie oraz informacji o podmiocie, który dany proces stworzył.
Standardowy zestaw informacji możemy rozszerzyć o dodatkowe. Wystarczy, że PPM klikniemy na kolumny i wybierzemy Select Columns. W nowo otwartym oknie wybieramy interesujące nas dane.
Oprócz przeglądania procesów aktualnie wykorzystywanego użytkownika możemy przeglądać oraz wpływać na procesy innych użytkowników, którzy są zalogowani na maszynie. Połączenie z procesami danego użytkownika realizujemy za pomocą menu wybierając Users.
Za pomocą programu bardzo łatwo można sprawdzić z jakich dowiązań do plików i z jakich bibliotek korzystany dany proces. Aby tego dokonać wystarczy skorzystać z ikony View Dlls bądź skorzystać z skrótu Ctrl+D by ukazać skojarzone biblioteki z procesem. Aby wyświetlić dowiązania do plików korzystamy z ikony View Handles bądź skrótu Ctrl+H. Na poniższej ilustracji widoczny jest fragment listy bibliotek DLL i dowiązań skojarzonych z procesem explorer.
Jednym ze sposobów komunikacji z użytkownikiem jest używanie kolorów do identyfikacji poszczególnych procesów, definicje kolorów możemy przeprowadzić po wybraniu Options a następnie Configure Colors.
Dodatkowe informacje otrzymamy po najechaniu na dany proces.
Dodatkowym atutem programu jest dostarczanie nam informacji w formie statystycznej w postaci wykresów obrazujących aktualny stan hosta (zużycie procesora, pamięci itd.)
Gdy nie mamy pojęcia jak zidentyfikować proces wystarczy, że skorzystamy z ikony „celownika” przeciągnięcie ikony na okno programu spowoduje wyświetlenie procesu w oknie aplikacji.
Do zarządzania procesami możemy użyć kilkunastu opcji, podstawowymi są: zamknięcie procesu, zamknięcie drzewa procesów, restart czy zawieszenie procesu. Wszystkie opcje możemy wybrać po kliknięciu na menu kontekstowe.
Po kliknięciu na proces i wybraniu Set Priority możemy dokonać ustawienia zmiany priorytetu.
Wybranie Create Dump umożliwi nam wykonanie zrzutu procesu. Do wyboru mamy wykonanie zrzutu pełnego czy tak zwanego minidumpu zawierającego tylko podstawowe informacje.
Kliknięcie na Set Affinity umożliwi nam określenie rdzeni procesora, które obsługują dany proces.
Opcja Window służy do przywołania okna procesu.
Ustawienia Check VirusTotal oraz Search Online pozwalają kolejno na sprawdzenie procesu pod kątem obecności szkodliwego oprogramowania oraz odszukanie dodatkowych informacji o procesie.
Bardzo dokładne dane o poszczególnych, działających procesach uzyskamy, wywołując okno Properties.Po wywołaniu okna mamy dostęp do szeregu kart na których zostały pogrupowane informacje o procesie, każda zakładka zawiera inny zestaw informacji.
I tak:
Image, na karcie tej znajdziemy podstawowe informacje o wybranym obiekcie m. in. ścieżka dostępu do pliku realizujący dany proces (sekcja Path); polecenie, które zostało wydane by dany proces utworzyć (sekcja Command line); folder procesu (sekcja Current directory), nazwę procesu nadrzędnego (sekcja Parent), konto użytkownika odpowiedzialnego za uruchomienie procesu oraz czas uruchomienia,
Perfomance – karta podzielona jest na cztery sekcje: CPU, Virtual Memory, Physical Memory, I/O oraz Handles, które dostarczają nam informacje o wykorzystywanych zasobach przez proces,
Perfomance Graph – graficzna reprezentacja wykorzystywanych zasobów,
Disk and Network – informacje statystyczne odnoszące się do wykorzystania połączeń sieciowych i dysku,
Threads – informacja o wątkach, dodatkowo możliwe jest zarządzanie,
TCP/IP – informacja na temat wykorzystywanych zasobów sieciowych m.in. zakładka informuje o wykorzystywanych portach,
Security – stan uprawnień dla poszczególnych obiektów,
Environment - zakładka pokazuje nam wykorzystywane zmienne środowiskowe zarejestrowane w danym procesie.
Ostatnią opcją na, którą chciałbym zwrócić uwagę to możliwość zastąpienia standardowego menedżera zadań, Process Explorerem. Aby wykonać tę operację wystarczy wybrać z górnego menu Options a następnie Replace Task Manager. Od tej pory po wciśnięciu skrótu Ctrl+Shift+Escape nastąpi wywołanie Process Explorera.
Process Monitor
Process Monitor – jest kolejnym narzędziem, które pozwala nam na obserwację działania procesu. Narzędzie pokaże nam informacje dotyczące interesującego nas procesu a w szczególności powiązanie procesu z systemem pliku, rejestrem, wykorzystaniem połączeń sieciowych, wątków czy zasobów.
Po uruchomieniu programu zostaniemy zasypani dość sporą ilością informacji. Dlatego aby ograniczyć ilość napływających danych możemy skorzystać z przycisków, które spowodują przefiltrowanie danych do danej aktywności.
Rejestr – w skład aktywności wchodzi tworzenie kluczy, czytanie ich, usuwanie czy odpytywanie. Poniżej przykład zmienienia ustawienia Pokaż ukryte pliki, foldery i dyski, zarejestrowania tej aktywności przez program Process Monitor oraz odszukania odpowiedniego klucza rejestru odpowiedzialnego za przechowywanie tego ustawienia.
File System - to tworzenie pliku ale także zapisywanie, usuwanie, itp. Rejestrowana aktywność odnosi się do dysków lokalnych ale również do dysków sieciowych.
Na rysunku przykład utworzenia katalogu Dokumenty, po analizie logu od razu można określić lokalizację tworzonego katalogu.
Sieć - filtr ukarze nam bieżącą aktywność sieciową m.in. źródło, cel, użyte protokoły (TCP/UDP) czy wykorzystywane porty. Program nie pokaże nam przesyłanych danych gdyż nie jest snifferem plików.
Poniżej przykład zarejestrowanych połączeń z serwerem Google.
Procesy - filtr odnoszący się do aktywność uruchamianych procesów.
Profilowanie - przechwytywane zdarzenia odnoszą się do sprawdzenia ilości czasu procesora wykorzystywanego przez każdy proces czy wykorzystania pamięci.
Dodatkowo jak wiemy czego szukać możemy zbudować własne filtry. Po wybraniu z menu Filter a następnie Filter w nowo otwartym oknie dzięki wybraniu odpowiedniego zdarzenia i porównania możemy dokładnie określić kryteria wyświetlanych aktywności. Dodatkowo definiujemy czy aktywność ta ma być uwzględniana czy pomijana.
Często używane filtry możemy zapisywać tak by można było ich użyć w przyszłości.
Dostępna również w menu Filter opcja Highlight służy do podświetlenia interesującego nas zdarzenia. Kolory podświetleń możemy definiować po wybraniu z menu Options a następnie Highlight Colors.
Program wszystkie informacje grupuje w kolumnach. Po uruchomieniu domyślne mamy włączone następujące kolumny:
-
-
- Time/Czas - dokładny czas wystąpienia zdarzenia.
- Process Name/Nazwa procesu - nazwa procesu, które wygenerowało zdarzenie. Pełna ścieżka dostępu jest dostępna w okienku po najechaniu na proces.
- PID - identyfikator procesu.
- Operation - nazwa operacji wykonanej przez dany proces.
- Path/Ścieżka – obiekt na którym została wykonana operacja. Obiektem tym może być plik, katalog czy klucz rejestru.
- Result/Wynik - wynik działania, czyli czy dana operacja zakończyła się sukcesem czy może nastąpiła odmowa dostępu lub inne nieprzewidziane działanie.
- Detail/Szczegóły - informacje dodatkowe.
Dodanie dodatkowych informacji (kolumn) do okna aplikacji następuje po wybraniu z menu Options pozycji Select Columns.
Jednym z powodów dodania dodatkowych kolumn do okna programu jest możliwość włączenia szybkiego filtrowania dla danych wyświetlanych w tych kolumnach. Szczególnie trzy dodatkowe kolumny znacznie ułatwią nam pracę:
Company name/Nazwa firmy – wyświetla zdarzenia pochodzące od procesów, których właścicielem jest dana firma. Gdy nie interesują nas zdarzenia związane z działaniem systemu możemy wyłączyć zdarzenia związane z firmą Microsoft Corporation.
Command line/Wiersz poleceń - argumenty wiersza poleceń dla procesu, które wygenerowało zdarzenie.
Parent PID/PID rodzica - przydatne przy znalezieniu procesu, który zawiera wiele procesów potomnych np. przeglądarki internetowe.
Włączenie/wyłączenie rejestrowania zdarzeń odbywa się poprze wybranie z menu File opcji Capture Events.
Gdy diagnozujemy dany problem, wszystkie przechwycone zdarzenia możemy zapisać by poddać je późniejszej analizie. Po wybraniu z menu File a następnie Save w nowo otwartym oknie możemy określić opcje zapisu. Możemy podjąć decyzję o zapisie wszystkich zdarzeń (All events) czy tych do których użyliśmy filtra (Events displayed using current filter) lub tylko tych podświetlonych (Highlighted events). Ważną decyzją jest również określenie formatu, możemy zdecydować się na domyślny format Process Monitora (*.pml) lub celem eksportu do innego programu wybrać format CSV czy XML.
Do czego przyda się nam program oprócz dokładnych informacji o tym co się dzieje w systemie? Aplikacji możemy używać do badania aktywności innych programów a w szczególności malware (uruchamiane procesy czy nawiązywane połączenia) a także np. do rozwiązywania problemów z instalacją programów czy ich niewłaściwym działaniem (przechwytywane procesy poinformują nas o tworzonych plikach czy aktywności działań przeprowadzanych na rejestrze).
PsExec
PsExec - jest jednym z najbardziej przydatnych narzędzi z całego pakietu Sysinternals, ponieważ program pozwala na uruchamianie programów na zdalnych systemach bez konieczności stosowania klienta.
Połączenie z zdalnym systemem uzyskujemy podając: nazwę komputera, nazwę uprawnionego użytkownika, hasło oraz uruchamianą aplikację. W poniższym przykładzie z komputera XXX nastąpiło połączenie z komputerem YYY z poświadczeniami konta administratora. Została uruchomiona powłoka cmd.
Od tej pory możemy sterować komputerem tak jakbyśmy przy nim siedzieli (analogicznie jak z wykorzystaniem Telnetu).
Jeśli interesuje nas tylko jakieś konkretne polecenie to zamiast uruchamiać całą powłokę cmd można nakazać wykonanie konkretnej komendy – w przykładzie poniżej polecenie whoami.
Aby zautomatyzować sobie wykonanie pewnych czynności można napisać odpowiedni skrypt a narzędzie psexec ten skrypt bądź program skopiuje na zdalny komputer i uruchomi. Poniżej przykład uruchomienia pliku wsadowego, którego zadaniem jest przekopiowanie plików pomiędzy lokacjami. Po dodaniu parametru -c należy podać ścieżkę do kopiowanego skryptu lub programu.
Dodatkowo możemy użyć parametru -f który to spowoduje skopiowanie określonego programu, nawet jeśli plik już istnieje w systemie zdalnym oraz parametru -w który ustawi katalog roboczy procesu (w stosunku do zdalnego komputera).
Konto administratora wbrew pozorom nie jest najbardziej uprawnionym kontem. Część osób nie zdaje sobie sprawy, że jest jeszcze jedno konto, które ma uprawnienia wyższe niż konto administratora. Mowa tu o koncie system. Ponieważ konto system ma bardzo wysokie uprawnienia w systemie należy korzystać z tej opcji z dużą ostrożnością.
Aby przełączyć wiersz poleceń do możliwości korzystania z konta systemowego należy użyć przełącznika -s, polecenie przyjmie postać: psexec -s cmd
Konto system często przydaje się gdy chcemy wykonać jakieś operacje naprawy komputera, który uprzednio został zainfekowany malware. Ponieważ często zdarza się że użytkownik na prawach administratora nie może wykonać określonych czynności np. kasowania określonych plików. Po podwyższeniu uprawnień operacje te już powinny być dozwolone.
PsFile
PsFile – narzędzie umożliwia nam listowanie i zamykanie otwartych plików na komputerze lokalnym bądź zdalnym przy czym należy zaznaczyć, że chodzi o pliki otwarte zdalnie.
Wywołanie polecenia psfile bez żadnych parametrów spowoduje wylistowanie otwartych plików na komputerze. Obok informacji o ścieżce pliku (a raczej katalogu w którym plik się znajduje) dowiemy się kto plik otworzył i na jakich prawach. Liczba w nawiasie kwadratowym to tzw. identyfikator, którym możemy posłużyć się gdy plik będziemy chcieli zamknąć.
Narzędzie również umożliwi nam listening plików otwartych na zdalnej maszynie.
Aby zamknąć określony plik należy użyć numeru identyfikatora (alternatywa metoda to podanie ścieżki do pliku) i dodanie parametru -c.
PsGetSid
PsGetSid – Przy okazji omawiania narzędzia AccessEnum wspomniałem o możliwości zamiany niewiele nam mówiącego ciągu znaków tzw. SID-u (ang. Security Identifier Definition) na nazwę użytkownika. Konwersji dokonamy właśnie za pomocą narzędzia PsGetSid. Numer SID jest unikalną i niepowtarzalną w obrębie systemu reprezentacją numeryczną każdego elementu zabezpieczeń (konto, komputer itd.). Składa się on z długiego ciągu cyfr znajdujących się po literze S np. S-1-5-21-1534169462-1651380828-111620651-500 Identyfikacja SID-u jest umiejętnością przydatną bo bardzo często system komunikuje się z nami właśnie poprzez podanie tego numeru np. dzienniki zdarzeń Poprawne dopasowanie np. nazwy konta do SID-u bądź vice versa uchroni nas przed pomyłkami. W systemie Windows ciężko jest znaleźć narzędzie (ja znam jedno wmic – może znacie jakieś inne???), które pozwoli nam na łatwe powiązanie SID-u z danym elementem zabezpieczeń ale na szczęście z pomocą przychodzi nam aplikacja psgetsid.
Wspomniane narzędzie wmic przydaje się gdy chcemy wyświetlić numery SID wszystkich kont.
Wywołanie samego polecenia bez żadnych parametrów uwidoczni nam SID komputera. Aby poznać SID konkretnego użytkownika należy podać jego nazwę.
Gdy podamy SID jako odpowiedź otrzymamy nazwę obiektu z którym numer jest powiązany.
Oczywiście możliwe jest również wykonanie zdalnego mapowania konto-SID bądź SID-konto. Do polecenia należy dodać nazwę i hasło uprawnionego użytkownika, który ma prawo wykonać taką operację oraz nazwę (bądź adres IP) interesującego nas komputera.
SID aktualnie zalogowanego użytkownika poznamy wydając polecenie: psgetsid %username%
Aby rozwiązać nazwy wielu komputerów ich nazwy możemy umieścić w osobnym pliku i plik ten podać na wejście programu psgetsid – polecenie: psgetsid @<scieżka_do_pliku>
I kończąc, numer SID również możemy uzyskać przeglądając gałąź rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
PsInfo
PsInfo – jest narzędziem, które oprócz systemowego systeminfo dostarczy nam informacji o komputerze.
Wywołanie samego polecenia spowoduje wyświetlenie podstawowych informacji o badanym systemie. Informacje te to m.in. wersja systemu, czas pracy sytemu czy podstawowe informacje o sprzęcie (procesor, ilość pamięci RAM czy model karty graficznej).
Wywołanie programu psinfo z parametrem -h spowoduje wyświetlenie listy zainstalowanych tzw. hotfix-ów czyli poprawek naprawiających konkretny błąd działania w aplikacji.
Użycie przełącznika -s wyświetli nam zainstalowane oprogramowanie.
Parametr -d odpowiedzialny jest za informację o dyskach.
Użycie przełącznika -c spowoduje eksport danych do formatu CSV w którym to poszczególne informacje są od siebie rozdzielone przecinkami natomiast użycie -t \t spowoduje rozdzielenie informacji znakami tabulacji.
Zebranie informacji z większej liczby komputerów może odbyć się z użyciem parametru \\* zebrane zostaną informacje z wszystkich komputerów podłączonych do domeny lub można przygotować sobie plik w którym umieścimy nazwy interesujących nas hostów.
PsList
PsList – jest zamiennikiem systemowego polecenia tasklist. Narzędzie te umożliwia przeprowadzenie większej ilości operacji niż wspomniany tasklist.
Samo wywołanie polecenia bez żadnych parametrów uwidoczni nam listę procesów wraz z informacjami o tych procesach m.in. PID procesu, priorytet, liczbie wątków czy czasie działania.
Ale stosując odpowiednie przełączniki narzędzie pokazuje swoje możliwości i tak do dyspozycji mamy:
przełącznik -d pokazujący szczegółowe informacje o procesach
oczywiście jest możliwość ograniczenia (z innymi przełącznikami też to działa) bardzo obszernej listy uzyskanych informacji do jednego konkretnego procesu. Celem wyświetlenia informacji o danym procesie wystarczy, że do polecenia dodamy nazwę interesującego nas procesu. Poniżej informacje dotyczące procesu explorer. Zamiast nazwy możemy wykorzystać PID procesu.
przełącznik -m pokaże nam informacje o pamięci zajmowanej przez procesy
przełącznik -x połączy informacje uzyskane dzięki zastosowaniu parametru -d oraz -m
przełącznik -t ukarze nam drzewo procesów
przełącznik -s uruchomi menedżer zadań, który pokaże nam w czasie rzeczywistym stan uruchomionych procesów a dodanie parametru -r określa czas odświeżania w sekundach. Przykładowe polecenie przyjmie postać: pslist -s -r 3
Narzędzie te również potrafi uzyskać informacje z komputerów zdalnych. Aby uzyskać listę procesów uruchomionych na komputerze zdalnym do polecenia należy dodać nazwę konta i hasło administratora systemu zdalnego.
Poniżej proces sprawdzenia stanu usług na komputerze zdalnym YYY – polecenie: pslist -s -r 3 \\YYY -u administrator -p tajnehaslo
Polecenie pslist nie zadziała gdy na komputerze zdalnym nie wydamy polecenia: sc start remoteregistry uruchamiające usługę rejestr zdalny.
Jeżeli nie uruchomimy usługi otrzymamy komunikat o nie odnalezieniu ścieżki sieciowej.
Aby na stałe uruchomić usługę rejestru zdalnego posłuż się poleceniem: sc config RemoteRegistry start= auto (ta spacja po znaku = jest celowa i to nie błąd)
PsKill
PsKill – narzędzie do zamykania (zabijania) procesów. Aplikacja jest rozszerzeniem systemowego polecenia taskkill. Narzędzie te świetnie współgra z poznanym wyżej pslist ponieważ informacje uzyskane dzięki temu poleceniu posłużą nam jako parametry do narzędzia pskill.
Aby zabić proces np. explorer wydaj polecenie: pskill explorer
Jak widać powyżej proces explorer został zamknięty i nie ma go na liście aktywnych procesów.
Proces można również zamknąć wykorzystując do tego PID procesu ale żeby to zrobić najpierw należy ten numer poznać ale to już czytelniku wiesz jak zrobić.
Aby zapić proces wykorzystując PID polecenie może przybrać postać: pskill 2420 (wyłączamy również proces explorer)
Użycie przełącznika -t spowoduje zamknięcie danego procesu oraz procesów zależnych. Poniżej przykład zabicie procesu Internet Explorer.
Zamknięcie procesu możemy również wykonać na komputerze zdalnym. Poniżej uzyskanie informacji o procesie iexplore na komputerze zdalnym YYY, następnie zamknięcie tegoż procesu i weryfikacja wykonanej operacji – jak widać proces został zabity.
PsLoggedOn
PsLoggedOn – aplikacja ukaże nam informacje o zalogowanych użytkownikach. Wywołanie aplikacji odbywa się poprzez wydanie polecenia: psloggedon Na komputerze XXX lokalnie jest zalogowany jeden użytkownik o nazwie !!!.
Aby sprawdzić osoby zalogowane na komputerze zdalnym do polecenia należy dodać tylko nazwę interesującego nas komputera – np. tak: psloggedon \\YYY
PsLogList
PsLogList – jest narzędziem, które pozwala nam na przeglądanie dzienników zdarzeń. Wywołanie samego polecenia wyświetli nam wszystkie zdarzenia znajdujące się w dzienniku w sekcji System.
Jeśli chcemy wyświetlić zdarzenia znajdujące się w innych sekcjach należy użyć parametrów:
-
-
- dziennik aplikacji – application,
- dziennik zabezpieczeń – security,
- dziennik ustawień – setup,
- dziennik zdarzeń przesłanych dalej – forwardedevents.
Poniżej przykład wyświetlenia dziennika zabezpieczeń.
Dzienniki zdarzeń standardowo są zapisane w lokacji - %SystemRoot%\System32\Winevt\Logs\
Parametr -h definiuje nam okres wyświetlania dziennika. Polecenie: psloglist -h 1 security wyświetli nam zdarzenia z logu zabezpieczeń, które miały miejsce do godziny temu. Natomiast przełącznik -d definiuje liczbę dni.
Dodanie parametru -i spowoduje nam przefiltrowanie zdarzeń według numeru id, np. polecenie psloglist -i 4724 security wyświetli nam zdarzenia w których podjęto próbę zresetowania hasła.
Możliwe jest dodanie wielu identyfikatorów zdarzeń (do 10), poszczególne identyfikatory oddzielamy przecinkami np. psloglist -i 4724,4634 security
Parametr -f z dopiskiem ew pokaże nam wszystkie zdarzenia, które mają status warning bądź error
Parametr -o odpowiedzialny jest za przefiltrowanie zdarzeń, które pochodzą z określonego źródła. Polecenie: psloglist -o "net*" wyświetli zdarzenia których źródło zawiera słowo net, gwiazdka oznacza, że po tym wyrazie może wystąpić dowolny ciąg znaków.
Możliwe jest również wyświetlenie logów z interesującego nas okresu parametr -a określa datę startową natomiast przełącznik -b datę końcową. Datę podajemy w formacie mm/dd/rr. Przykład poniżej pokaże wszystkie zdarzenia od 10 grudnia 2014r. do 16 grudnia 2014r. przy czym zdarzenia są wyświetlane od tego, które wystąpiło najwcześniej (od tyłu – od 16.12 do 10.12)
Możliwy jest eksport danych z dziennika do zewnętrznego pliku. Eksport dziennika wykona nam np. polecenie: psloglist -i 4724,4634 security > event
Podczas eksportu możliwe jest dodanie przełącznika -s, przełącznik spowoduje umieszczenie informacji o zdarzeniu w jednej linijce tekstu w której to poszczególne informacje są oddzielone przecinkami. Parametr -t pozwala na definicję własnego znaku, który będzie nam rozdzielał poszczególne informacje. Nie zdefiniowanie żadnego parametru spowoduje zapisanie informacji tak jak są wyświetlane na ekranie.
Tradycyjnie już, narzędzie umożliwia nam dodatkowo podgląd zdarzeń na hoście zdalnym – wyświetlenie dziennika Zabezpieczeń na komputerze YYY.
Aby zebrać informacje z wielu komputerów możliwe jest zdefiniowanie nazw tych komputerów i przekazanie ścieżki do pliku jako parametr polecenia psloglist – przełącznik @<ścieżka_do_pliku>
PsPasswd
PsPasswd – program umożliwiający nam zmianę haseł do kont. Pspasswd jest zamiennikiem systemowego polecenia net user.
Aby zmienić hasło lokalnego użytkownika wystarczy w wierszu poleceń wydać komendę: pspasswd <nazwa_konta> <nowe_hasło>. Jak widać poniżej zmiana hasła użytkownika !!! zakończyła się powodzeniem.
Aby zmienić hasło na komputerze zdalnym należy podać poświadczenia użytkownika mającego do tego prawo, nazwę konta i nowe hasło. W poniższym przykładzie nastąpiła zmiana hasła konta: admin na hasło: haslo
Możliwa jest również zmiana haseł domenowych wtedy nazwę konta musimy poprzedzić nazwą domeny np. jeśli będziemy chcieli zmienić hasło użytkownika jankow w domenie firma w poleceniu należy zapisać: firma\jankow
PsPing
PsPing - rozwija funkcjonalność tradycyjnego polecenia systemowego ping o nowe możliwości. Różnice pomiędzy standardowym poleceniem ping a narzędziem psping przedstawiają się następująco:
-
-
- oprócz standardowej opcji sprawdzania osiągalności danego hosta można za pomocą narzędzia wysłać pakiet na dowolny port TCP,
- badać opóźnienia pakietów,
- sprawdzenie przepustowości łącza,
- eksport otrzymanych wyników.
Po wydaniu polecenia psping w połączeniu z adresem IP bądź nazwą hosta wynik niewiele się różni od wydania standardowego polecenia ping, różnica jedynie można zaobserwować w czasach opóźnień, ponieważ czas ten jest podawany z większą dokładnością (do 0,01 ms).
Aby zachować ciągłość wysyłania pakietów użyj przełącznika -t (przerwanie Ctrl+C).
Użycie przełącznika -q spowoduje wykonanie szybkiego testu bez podawania wyników poszczególnych przejść, podawany jest tylko wynik zbiorczy.
Przełącznik -i powoduje ustawienie interwału czasu po jakim są wysyłane kolejne pakiety (w przykładzie poniżej 3 sekundy). Dla wykonania bardzo szybkiego sprawdzenia użyj jednocześnie parametrów: -q oraz -i 0.
Natomiast przełącznik -n pozwala na określenie liczby wysłanych pakietów (w przykładzie wysłano 8 pakietów ICMP).
Dodatkowy przełącznik -l służy do zdefiniowania rozmiaru pakietu. Wielkość podajemy w bajtach choć jest możliwość zdefiniowania wielkości w kilo oraz mega bajtach – kolejno po wprowadzonej wartości dodajemy k bądź m. Wielkość pakietu nie może przekroczyć 64000 bajtów.
Natomiast przełącznik -w określa liczbę prowadzonych interakcji.
Dodanie przełącznika -h spowoduje wygenerowanie histogramu (poniżej w przykładzie histogram wygenerowano na innej porcji danych).
Przełączniki -4 oraz -6 wymuszają zastosowanie odpowiedniej wersji protokołu IP.
Dodatkową funkcjonalnością programu jest możliwość wykonania skanowania danego portu. W razie blokowania pakietów ICMP np. przez zaporę. Skanowanie TCP umożliwi nam sprawdzenie czy dany host odpowiada. Dodatkowo program pośrednio wykryje nam działające usługi (taki prosty skaner portów). Porównując informacje z skanowania z listą znanych portów jesteśmy w stanie zidentyfikować usługę. Lista portów do porównania dostępna jest tu: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
Podczas skanowania możemy spotkać się z sytuacją w której nasze połączenie zostanie zablokowane przez zaporę czy inny system zabezpieczeń wtedy uzyskamy komunikat o przekroczeniu limitu czasu. Poniżej przykład skanowania komputera 10.0.0.2 na porcie TCP 23, ruch został zablokowany.
Gdy ruch sieciowy przejdzie inspekcję zapory lecz dana usługa na danym porcie nie odpowiada bo np. jest wyłączona uzyskamy komunikat o odrzuceniu połączenia sieciowego.
Gdy zaś port jest otwarty i usługa nasłuchująca na tym porcie działa skanowanie TCP zakończy się sukcesem.
Porównując użyty port 23 z listą znanych portów stwierdzimy, że działającą usługą jest Telnet.
Wykonując skanowanie warto jest używać portów ogólnie znanych i używanych np.
-
-
- DNS – 53
- FTP – 20 przesyłanie danych
- FTP – 21 przesyłanie poleceń
- HTTP – 80
- HTTPS – 443 (HTTP na SSL)
- IMAP – 143
- POP3 – 110
- SMTP – 25
- Telnet – 23
- SMB (udostępnianie plików i drukarek Windows) - 135 do 139
- Pulpit zdalny – 3389
Aby wykonać skanowanie wielu portów celem odkrycia tych aktywnych możesz o to użyć o to takiej pętli: for /L %i in (1,1,4000) do psping -n 1 -i 0 10.0.0.2:%i Polecenie skanuje porty od 1 do 4000 komputera 10.0.0.2 Wydanie polecenia wykryło otwarty 23 port.
Narzędzie psping może nam również posłużyć do pomiaru opóźnienia i przepustowości pomiędzy dwoma systemami. Procedura sprowadza się do uruchomienia narzędzia w trybie serwera na jednym komputerze i podłączającego się klienta na drugim komputerze. Klient dokonuje pomiaru parametrów/testu.
Na komputerze 10.0.0.2 (serwer) za pomocą polecenia: psping -s 10.0.0.2:5555 określamy adres serwera oraz portu na którym serwer będzie nasłuchiwał.
Po przejściu na komputer klienta wydajemy polecenie: psping -l 10k -n 2000 10.0.0.2:5555 nakazujące wysłać 2000 pakietów o wielkości 10 kilobajtów do serwera. Po wykonaniu testu zostanie wyświetlone podsumowanie i będzie można odczytać wartości opóźnień.
W oknie serwera możemy obserwować podłączających się klientów.
Psping standardowo wykonuje test opóźnienia korzystając z protokołu TCP ale dodając parametr -u będzie można przeprowadzić test za pomocą protokołu UDP.
Test przepustowości łącza wykonujemy poprzez dodanie parametru -b. Do wykorzystania mamy protokół TCP bądź UDP.
PsService
PsService – jest programem, który pozwala nam na administrowanie usługami w systemie Windows. Administracja ta może odbywać się na poziomie lokalnym jak i zdalnym.
Samo wywołanie polecenia PsService uwidoczni nam stan wszystkich usług.
Aby zawęzić polecenie do jakiejś jednej konkretnej usługi do polecenia należy dodać przełącznik query i dodatkowo podać nazwę interesującej nas usługi. Przy czym odwołanie może być zrealizowane z wykorzystaniem nazwy Display name bądź nazwy Service name.
Poniżej przykład odszukania usługi Windows Update z wykorzystaniem obu sposobów. W pierwszym przykładzie wykorzystano nazwę Display name
natomiast w drugim, nazwę Service name.
Dodatkowo do opcji query możemy dodać przełącznik -s który pogrupuje nam usługi według określonego kryterium. Dostępne są kryteria:
- inactive – usługi wyłączone,
Przełącznik -t dodatkowo pozwala nam pogrupować usługi działające według określonego typu. Dodanie członu driver wyświetli usługi działające w trybie sterownika.
Człon service spowoduje wyświetlenie usług systemu Windows.
Dodanie opcji interactive spowoduje wyświetlenie usług w działających w trybie procesu interaktywnego.
Dodatkowo wykorzystując przełącznik security możemy dowiedzieć się kto ma prawo do zarządzania poszczególnymi usługami.
Ale największą zaletą narzędzia jest możliwość wykorzystania programu do administracji usługami znajdującymi się na komputerach zdalnych.
Poniżej przykład sprawdzenia tej samej usługi lecz na komputerze zdalny. Do zbudowania polecenia możemy posłużyć się nazwą komputera bądź jego adresem IP.
Aby program zadziałał należy dodatkowo po parametrze -u podać nazwę użytkownika a po parametrze -p hasło.
To co należy jeszcze zaznaczyć to fakt, że do wywołania programu należy użyć konta administratora czyli konta, które z reguły jest wyłączone w przeciwnym przypadku uzyskamy informację o odmowie dostępu.
Narzędzie dodatkowo oferuje nam sterowanie usługami do wykorzystania mamy następujące polecenia:
-
-
- start – uruchomienie usługi,
- stop – zatrzymanie usługi,
- restart – zatrzymanie i uruchomienie usługi
- pause – zatrzymanie usługi,
- cont – wznowienie wstrzymanej usługi.
Aby zatrzymać usługę Windows Update użyj polecenia: psservice \\YYY -u administrator -p tajnehaslo stop wuauserv
Po sprawdzeniu na komputerze YYY stwierdzamy, że usługa Windows Update faktycznie została zatrzymana.
Ostatnia funkcjonalnością programu jest możliwość zmiany sposobu uruchomienia usługi. W tym przypadku mamy do dyspozycji opcje:
-
-
- auto – tryb automatyczny,
- demand – tryb ręczny,
- disabled – usługa wyłączona.
Zmianę trybu uruchomienia usługi zmieniamy za pomocą przełącznika setconfig.
Przykład użycia polecenia przedstawiam poniżej. Na komputerze zdalnym YYY usługa Windows Update została wyłączona, podczas ponownego uruchomienia komputera już się nie włączy. Jak widać poniżej usługa na komputerze zdalnym YYY jest włączona.
Po wydaniu polecenia: psservice \\YYY -u administrator -p tajnehaslo setconfig wuauserv disabled zmienia się stan usługi Windows Update na wyłączony.
Sprawdzenie stanu usługi Windows Update na komputerze YYY, tylko potwierdza ten fakt.
Oczywiście sterowanie uruchomieniem poszczególnych usług możemy przeprowadzać również na komputerze lokalnym.
PsShutdown
PsShutdown – narzędzie, które pozwala nam na zdefiniowanie zasad wyłączenia komputera.
Aby wyłączyć komputer lokalny należy wydać polecenie: psshutdown -s narzędzie wyłączy nam komputer na którym polecenie zostało wydane. Wyłączenie domyślnie nastąpi po 20 sekundach w tym czasie możemy się jeszcze rozmyślić – aby anulować wyłączenie wydaj polecenie psshutdown -a
Aby wyłączyć zdalny system należy posłużyć się nazwą komputera oraz poświadczeniami użytkownika mogącego wykonać taką operację.
Użycie przełącznika -k spowoduje wyłączenie systemu i zasilania (wykorzystywane w przypadku maszyn wirtualnych).
Natomiast by wykonać reset maszyny użyj przełącznika -r.
Domyślny czas 20 sekund często bywa za krótki aby użytkownik mógł zapisać swoje dane nie tracąc ich więc istnieje możliwość wydłużenia tego czasu. Za zmianę czasu odpowiada flaga -t. A dodatkowo możemy powiadomić użytkownika o fakcie restartu bądź wyłączenia maszyny, wystarczy, że dodamy przełącznik -m i zdefiniujemy komunikat.
W stan uśpienia przełączymy maszynę za pomocą parametru -d natomiast za hibernację odpowiedzialny jest przełącznik -h (uśpienie zakończone niepowodzeniem ponieważ host YYY jest wirtualną maszyną).
Jeżeli chcemy wyłączyć bądź zrestartować kilka komputerów warto ich nazwy bądź adresy IP zebrać w osobnym pliku i za pomocą parametru @<ścieżka_do_pliku> przekazać do programu wydając np. takie polecenie: psshutdown -s @komputery_do_wylaczenia.txt
Dodatkowo możemy określić parametr -e który informację o powodzie wyłączenia/zresetowania maszyny przekaże do dziennika zdarzeń – parametr ten warto używać gdy mamy do czynienia z systemami serwerowymi.
Powód zresetowania został umieszczony w dzienniku zdarzeń – Aplikacja: konserwacja (zaplanowana)
Kody definiujemy według tabeli poniżej (flaga p – zadanie zaplanowane, flaga u – zadanie niezaplanowane).
U
|
0
|
0
|
Inne zadania (niezaplanowane)
|
P
|
0
|
0
|
Inne zadania (zaplanowane)
|
U
|
1
|
1
|
Sprzęt: konserwacja (niezaplanowana)
|
P
|
1
|
1
|
Sprzęt: konserwacja (zaplanowana)
|
U
|
1
|
2
|
Sprzęt: instalacja (niezaplanowana)
|
P
|
1
|
2
|
Sprzęt: instalacja (zaplanowana)
|
U
|
2
|
2
|
System operacyjny: odzyskiwanie (zaplanowane)
|
P
|
2
|
2
|
System operacyjny: odzyskiwanie (zaplanowane)
|
P
|
2
|
3
|
System operacyjny: uaktualnienie (zaplanowane)
|
U
|
2
|
4
|
System operacyjny: ponowna konfiguracja (niezaplanowana)
|
P
|
2
|
4
|
System operacyjny: ponowna konfiguracja (zaplanowana)
|
P
|
2
|
16
|
System operacyjny: dodatek Service Pack (zaplanowany)
|
U
|
2
|
17
|
System operacyjny: poprawka (niezaplanowana)
|
P
|
2
|
17
|
System operacyjny: poprawka (zaplanowana)
|
U
|
2
|
18
|
System operacyjny: poprawka zabezpieczeń (niezaplanowana)
|
P
|
2
|
18
|
System operacyjny: poprawka zabezpieczeń (zaplanowana)
|
U
|
4
|
1
|
Aplikacja: konserwacja (niezaplanowana)
|
P
|
4
|
1
|
Aplikacja: konserwacja (zaplanowana)
|
P
|
4
|
2
|
Aplikacja: instalacja (zaplanowana)
|
U
|
4
|
5
|
Aplikacja: nie odpowiada
|
U
|
4
|
6
|
Aplikacja: niestabilna
|
U
|
5
|
19
|
Problem zabezpieczeń
|
P
|
5
|
19
|
Problem zabezpieczeń
|
U
|
5
|
20
|
Utrata połączenia sieciowego (niezaplanowana)
|
P
|
7
|
0
|
Zamknięcie starszego interfejsu API
|
Do dyspozycji mamy jeszcze przełącznik -o który wyloguje bieżącego użytkownika, przełącznik -f który przed zamknięciem/zresetowaniem wymusi zamknięcie wszystkich aplikacji oraz przełącznik -l blokujący komputer.
PsSuspend
PsSuspend – narzędzie wprowadza możliwość zatrzymywania procesów.
Zatrzymanie procesu na lokalnym komputerze zrealizujemy za pomocą polecenia: pssuspend <id_procesu> np. pssuspend 620 – w tym przypadku zostaje zatrzymany proces explorer – cała powłoka graficzna Windows jest „zamrożona”.
Wznowienie procesu wznawiamy za pomocą parametru -r.
Aby zatrzymać/wznowić proces na zdalnej maszynie określamy adres maszyny oraz podajemy dane uwierzytelniające.
RAMMap
RAMMap - jest programem graficznym umożliwiającym nam sprawdzenie jak w danym systemie wygląda gospodarka pamięcią RAM. Program umożliwia nam sprawdzenie m.in.: ilości danych przechowywanych w pamięci RAM, objętość i zawartość pliku wymiany a także ilość pamięci konsumowanej przez jądro, sterowniki urządzeń i działające aplikacje. Wreszcie program może nam również posłużyć do optymalizacji pamięci RAM.
Po uruchomieniu programu okno główne podzielone jest na kategorie:
-
-
- User Counts - okno zawiera dane liczbowe oraz wykres przedstawiający podsumowanie wykorzystania pamięci według typu usług. Dane te dotyczą pamięci prywatnej procesów, pamięci współdzielonej, tablicy pamięci, puli stronicowanej i niestronicowanej, a także AWE (Address Windowing Extensions), systemowego PTE (Page Table Entry), pamięci prywatnej sesji, pamięci pliku mapowania, pamięci stosu jądra, pamięci zamkniętej przez sterowniki oraz pamięci nieużywanej.
- Processes - ilości pamięci wykorzystywana przez procesy,
- Priority Summary - lista rozmiarów bloków pamięci o statusie priorytetu, wstrzymania lub ponownego wykorzystania
- Physical Ranges - informacje o danych zawartych w pamięci wraz z umiejscowieniem tych danych,
- Physical Pages - informacje o zakresach adresów o pamięci fizycznej,
- File Summary - zestawienie plików, które zostały załadowane do pamięci RAM wraz z informacją o ilości wykorzystywanego miejsca,
- File Details - informacja o ilości pamięci przydzielonej dla każdego z plików oraz informacja o umiejscowieniu.
Aplikacja dodatkowo posiada moduł za pomocą, którego możemy dokonać zwolnienia zasobów umiejscowionych w pamięci RAM. Zwolnienia zasobów dokonujemy po wybraniu z górnego menu pozycji Empty i wybraniu interesującego nas obszaru działań. Przy zwalnianiu zasobów należy miećna uwadze, że proces ten może doprowadzić do niestabilnej pracy systemu operacyjnego. Po wybraniu z menu opcji File i następnie Save utworzymy zrzut wygenerowanych przez narzędzie informacji.
RegDelNull
RegDelNull - Program konsolowy pozwalający na usuwanie kluczy rejestru z wartościami NULL.
RegJump
RegJump - Otwiera edytor rejestru z parametrem podanej ścieżki.
RootkitRevealer
RootkitRevealer - to już kolejne narzędzie ze stajni Sysinternals lecz tym razem jego przeznaczeniem jest wykrycie potencjalnie niebezpiecznego oprogramowania typu rootkit. Terminu tego używamy do opisu techniki stosowanej przez malware czyli całości oprogramowania, którego jedynym celem jest wyrządzenie szkód, zdobycie poufnych informacji czy przejęcie kontroli nad systemem. Działalność rootkita jest prowadzona w ukryciu i co ciekawe sam rootkit nie jest celem samym w sobie ponieważ jego głównym zadaniem jest ukrycie przed naszymi oczyma innych narzędzi.
„Do wykrywania rootkitów stosuje się najczęściej technikę porównania krzyżowego (ang. cross-checking), w którym porównujemy listę plików w katalogu zwróconą przez API systemu operacyjnego oraz odczytaną bezpośrednio z systemu plików. Analogicznie weryfikuje się rejestr w Windows (wynik z API oraz bezpośrednio z pliku rejestru). W zdrowym systemie oba wyniki powinny być identyczne, rekordy istniejące na drugiej liście, a nie zwrócone przez API, są prawdopodobnie ukrywane przez rootkit.
Inna metoda to porównywanie kodu programów binarnych lub bibliotek dynamicznych (DLL) na dysku oraz po załadowaniu ich do pamięci operacyjnej. W części przypadków modyfikacja kodu wykonywalnego w pamięci operacyjnej jest wynikiem działania rootkita (metoda "System Virginity") – źródło: http://pl.wikipedia.org/wiki/Rootkit”.
Program RootkitRevealer korzysta z pierwszej metody.
Po uruchomieniu programu wybieramy Scan, następuje sprawdzenie systemu.
Po uruchomieniu skanowania wyniki na bieżąco będą pokazywane w głównym oknie programu. Wyniki są pogrupowane w kolumnach:
-
-
- Patch – ścieżka do odszukanego elementu,
- Timestamp – data i godzina,
- Size – rozmiar elementu.
- Description – opis zdarzenia.
Interpretacja wyników skanowania jest trudna i często okaże się że wykryte elementy są fałszywym alarmem. Pole na które powinniśmy zwrócić uwagę to pole Description, które w przybliżeniu poinformuje nas o znaczeniu odkrytych elementów.
Poniżej krótki opis możliwych komunikatów.
Hidden from Windows API – obiekt niewidoczny z poziomu w Windows API. Otrzymując taki opis należy zwrócić uwagę na obiekt, gdyż jest to najczęstsza metoda, którą posługują się rootkity (lecz nie należy zakładać, ze stu procentową pewnością gdyż zdarzają się wyjątki).
Access is Denied – brak dostępu do obiektu, najprawdopodobniej aplikacja/program dany element wykorzystuje, sprawdź działające procesy w tle i te nie używane zamknij.
Security mismatch – niedopasowanie związane z typem nałożonych zabezpieczeń.
Visible in Windows API, MFT, but not in directory index / Visible in Windows API, directory index, but not in MFT / Visible in directory index, but not Windows API or MFT / Visible in Windows API, but not in MFT or directory index – komunikaty związane z systemem plików NTFS. Wpisy te najczęściej są wynikiem tworzenia dodatkowych plików podczas przeprowadzania procesu skanowania.
Type mismatch between Windows API and raw hive data – niedopasowanie rzeczywistego wpisu znajdującego się w rejestrze a tym przekazywanego do API.
Windows API length not consistent with raw hive data – niedopasowanie odnoszące się do przeinaczania rozmiaru wartości rejestru tak, aby jego wartość nie była widoczna dla Windows API.
Data mismatch between Windows API and raw hive data – niezgodność polegająca na zmianie wartości rejestru podczas przeprowadzania procesu skanowania, błąd najczęściej jest wynikiem działających procesów/programów w tle np. program antywirusowy.
Key name contains embedded nulls – klucz rejestru, który jest tzw. ciągiem NULL, oznacza to że klucz nie jest widoczny z poziomu edytora rejestru natomiast jest on przekazywany do systemu.
RootkitRevealer oferuje nam również wywołanie procesu skanowania z wykorzystaniem CLI.
Parametry jakimi możemy się posłużyć to:
-a – uruchomienie automatycznego skanowania, program jest wyłączany po zakończeniu.,
-c – przekazanie wyników skanowania jako CSV,
-m – włączenie pokazywania meta danych,
-r – skanuj lecz pomiń rejestr systemu.
Aby uruchomić skanowanie z poziomu CLI do polecenia należy dodać cel skanowania tak więc przykładowe polecenie skanujące katalog Windows przyjmie postać: rootkitrevealer -a c:\windows
SDelete
SDelete - bezpiecznie usuwa pliki i foldery oraz pozwala na wymazanie wolnej przestrzeni dysku.
Gdy chcemy usunąć dany plik bądź katalog wystarczy, że wydamy np. takie polecenie: sdelete c:\plik.txt -p 12 (parametr -p odpowiedzialny jest za ilość nadpisań, standardowo jest stosowane jedno)
Aby wykonać kasowanie nieużywanej przestrzeni dysku należy użyć polecenia sdelete z flagą -c.
Dołączenie do polecenia przełącznika -s spowoduje przy kasowaniu uwzględnienie również podkatalogów.
Możliwe jest również użycie parametru -a, który spowoduje usunięcie plików z atrybutem tylko do odczytu, parametr -z nieużywane miejsce nadpisze zerami (sposób dobry do zmniejszenia rozmiarów dysków wirtualnych maszyn).
ShareEnum
ShareEnum – jest programem, którego zadaniem jest wylistowanie wszystkich udostępnionych udziałów w obrębie wybranej grupy roboczej bądź domeny.
Po uruchomieniu programu i wybraniu interesującej nas lokacji, program wszystkie zebrane informacje pogrupuje w tabeli. Dane zebrane są w następujących kolumnach:
-
-
- Share Path - nazwa komputera wraz z informacją o udostępnianym zasobie,
- Local Path - ścieżka dostępu do zasobu sieciowego,
- Domain - nazwa domeny bądź grupy roboczej,
- Type - typ nośnika,
- Everyone – prawa dla grupy Wszyscy
- Other Read – prawa odczytu dla innych grup,
- Other Write – prawa zapisu dla innych grup,
- Deny – dla jakich grup dostęp do udziału został zabroniony.
Program dodatkowo oferuje nam jeszcze dwie funkcjonalności a mianowicie eksport zebranych danych do pliku tekstowego (eksport jest realizowany po kliknięciu na przycisk Export).
A także na porównaniu zmian (przydatne przy dużej liczbie udziałów). Porównanie realizujemy poprzez wczytanie wcześniej zapisanego pliku za pomocą opcji File a następnie Compare to saved.
ShellRunas
ShellRunas – jest niezwykle użyteczną aplikacją ponieważ pozwala nam na uruchomienie danego programu w kontekście innego użytkownika a nie tylko administratora. Użycie programu zwalnia nas z obowiązku przełączania użytkownika za każdym razem gdy chcemy uruchomić daną aplikację z innymi poświadczeniami. Program integruje się z menu kontekstowym dostępnym pod PPM.
Po uruchomieniu programu jesteśmy poinformowani o sposobie jego użycia i dostępnych opcjach.
Aby program ShellRunas zintegrować z powłoką należy wybrać polecenie Uruchom (bądź użyć klawiszy Windows+R) i następnie wprowadzić ścieżkę dostępu do aplikacji z dołączonym parametrem /reg.
Po wydaniu polecenia powinniśmy zostać poinformowani o pozytywnym wykonaniu operacji integracji.
Od tej pory po kliknięciu PPM na danym programie pojawi się nam dodatkowa opcja: Run as different user…
Wybranie opcji spowoduje pojawienie się okna dialogowego w którym to wprowadzamy poświadczenia użytkownika w kontekście, którego chcemy aplikację uruchomić.
Sigcheck
Sigcheck - sprawdza podpis cyfrowy plików i wyświetla informacje o ich wersji.
Gdy chcemy sprawdzić czy przypadkiem w naszym katalogu systemowym nie ma jakiś niepożądanych plików oraz ocenić ich wiarygodność poprzez sprawdzenie cyfrowego podpisu możemy użyć narzędzia sigcheck. Narzędzie te wyświetli nam informację o danym pliku tj. kto plik stworzył i kto podpisał, wersję pliku oraz opis.
Poniżej przykład sprawdzenia katalogu c:\windows\system32 wraz z eksportem danych do pliku tekstowego. Użycie parametru -a spowodowało wyświetlenie informacji rozszerzonych.
Przy eksporcie można również zaznaczyć aby zapis był zrealizowany w formacie CSV, poszczególne dane są rozdzielone przecinkami a wykonanie tej czynności umożliwi nam flaga -c.
Świetną opcją jest przesłanie wyników skanowania do witryny www.virustotal.com celem przeskanowania pliku pod kątem wirusów.
Strings
Strings - narzędzie, które pozwala na wyszukiwanie ciągów znaków UNICODE lub ASCII w plikach wykonywalnych.
Użycie narzędzia jest bardzo proste wystarczy wywołać program strings wraz z informacją o interesującym nas pliku. W przykładzie poniżej pokazanie wszystkich wartości ciągów znaków w pliku adexplorer.exe
Dołączenie parametru -a spowoduje wyświetlenie ciągów znaków tylko w formacie ASCII natomiast parametr -u tylko w formacie UNICODE. Domyślnie są wyświetlane oba formaty.
Dodanie parametru -o ukarze nam informacje o offsecie.
Do dyspozycji mamy jeszcze następujące flagi:
-b <liczba_bajtów> - ilość bajtów pliku jaka zostanie przeskanowana,
-f <offset> - numer offsettu od którego nastąpi skanowanie,
-n <liczba> - określenie liczby liter szukanych ciągów,
-s - uwzględnienie podkatalogów,
-q - nie pokazuj baneru.
Sync
Sync – na pewno czytelniku regularnie stosujesz dyski wymienne, to na pewno również wiesz, że aby zminimalizować utratę danych, dyski tego typu należy odłączać od komputera po uprzednim zastosowaniu bezpiecznego odłączenia (albo korzystamy z ikony w tray-u albo z opcji Wysuń). Dzieje się tak ponieważ system Windows tymczasowo buforuje dane, które następnie mają być zapisane na dysku w pamięci RAM. Proces ten również przeprowadzany jest dla dysków lokalnych. Aby wymusić zapisanie wszystkich danych na wszystkich dyskach możemy do tego celu posłużyć się narzędziem Sync.
Program uruchamiamy z uprawnieniami administratora, wydanie samego polecenia powoduje zapisanie danych na wszystkich dyskach.
Aby zrzucić dane dla dysku wymiennego H, i następnie wyjąć go, uruchom polecenie: sync -r -e h:
Tcpvconv
Tcpvconv – program umożliwiający nam monitorowanie stanów nawiązywanych połączeń. Program w działaniu przypomina nam windowsowego netstat-a (choć jest trochę mniej funkcjonalny lecz tak jak netstat działa z wiersza poleceń) oraz opisanego za chwilę graficznego TCPView. Ale jest jedna funkcjonalność, która czyni tą aplikację wyjątkową a mianowicie TCPVconv umożliwia nam zapisanie swoich wyników pracy do formatu CSV. Taki sposób reprezentacji danych ułatwia nam ich dalszą analizę a cały proces analizy sprowadza się do zaimportowania danych do np. Excela czy Calc-a i ich odpowiednim sformatowaniu.
Wywołanie polecenia tcpvconv wyświetli nawiązane połączenia ale tylko o statusie established (ustanowione).
Tcpvconv umożliwia zastosowanie następujących przełączników:
-a – wyświetlenie wszystkich procesów połączeń, domyślnie włączone jest tylko ukazywanie połączeń typu established czyli ustanowionych, połączenia listening (nasłuchujące) są wyłączone,
-n – wyłączenie rozwiązywania nazw (domyślnie włączone), znacznie przyśpiesza proces działania programu,
-c – reprezentacja danych w formie CSV (grupy danych oddzielone przecinkiem).
Poniżej na zrzucie zastosowanie przełącznika -a jak widać na wykazie znalazły się również procesy, które czekają na nawiązanie połączenia (status listening).
W składni polecenia możliwe jest również użycie nazwy procesu bądź numeru PID. Dane te dołączamy do polecenia. Dzięki temu zabiegowi możemy kontrolować jeden (bądź wiele) interesujących nas procesów.
Dzięki kombinacji tych parametrów a także dzięki użyciu wiersza poleceń możemy przygotować skrypt, który będzie nam prowadził nasłuch a dane uzyskane z nasłuchu zapisywał do pliku.
W tym celu w notatniku należy wykonać taki o to wpis (plik zapisujemy z rozszerzeniem *.bat) – pomysł na skrypt podpatrzony na stronie: http://spece.it/windows-serwer-artykuly/tcpvcon-skaner-uzywanych-portow-otwartych-polaczen
:start
tcpvcon -anc >> ruch_sieciowy.csv
ping 1.1.1.1 -n 1 -w 5000 > nul
goto :start
Co realizuje ten zestaw poleceń? a mianowicie dzięki użyciu funkcji goto mamy zagwarantowane działanie skryptu w pętli, zdefiniowana przez nas funkcja start jest wykonywana cały czas. W kolejnej linijce mamy wywołanie programu tcpvcon z parametrami a, n i c a użycie przekierowania >> gwarantuje nam, że informacje wygenerowane przez program zostaną zapisane w pliku ruch.sieciowy.csv. Użycie operatora >> powoduje dopisywanie nowych danych do pliku, nie mylić z operatorem > który by dane zastępował. Użycie polecenia ping umożliwia nam sterowanie czasem generowania kolejnych informacji. Użycie wartości zdefiniowanej po parametrze -w powoduje ustawienie limitu czasu oczekiwania na odpowiedź (wartość podawana w milisekundach). Ważne jest aby wybrać taki adres IP, który nam na wysłany pakiet ICMP nie odpowie. Natomiast użycie operatora > powoduje wysłanie informacji wygenerowanych przez polecenie ping w „niebyt”.
Aby np. monitorować tylko jeden interesujący nas proces w drugiej linii w poleceniu tcpvcon po parametrach -anc należy wpisać PID procesu lub jego nazwę np.
tcpvcon -anc 1360 >> ruch_sieciowy.csv
lub
tcpvcon -anc explorer.exe >> ruch_sieciowy.csv
W ten prosty sposób możemy monitorować pojawiający się ruch sieciowy. Analiza otrzymanych wyników może np. wykryć niepożądany ruch sieciowy prowadzony przez szkodliwe oprogramowanie czy pomóc z wykryciem problemu dostępności usług.
TCPView
TCPView - aplikacja po uruchomieniu wyświetla nam szczegółową listę wszystkich otwartych portów, które są wykorzystywane czy to do prowadzenia komunikacji czy też nasłuchiwania.
Informacje przedstawiane przez program pogrupowane są w odpowiednich kolumnach:
1. Process – nazwa pliku/procesu prowadzącego komunikacje,
2. PID – numer procesu,
3. Protokol – typ użytego protokołu (TCP, UDP, TCPv6 lub UDPv6),
4. Local address – adres lokalny maszyny,
5. Local port – użyty port maszyny lokalnej,
6. Remote address – adres maszyny zdalnej,
7. Remote port – użyty port maszyny zdalnej bądź nazwa usługi,
8. State – status połączenia (zależny od etapu prowadzonej sesji TCP, by orientować się w aktualnych stanach trzeba bardzo dobrze znać etapy nawiązywania i zrywania połączenia w protokole TCP – kiedyś o tym napiszę),
SYN_SEND – został wysłany pakiet SYN ,
SYN_RECEIVED – otrzymanie pakietu SYN od klienta,
ESTABLISHED – połączenie zestawione prawidłowo,
LISTENING – nasłuchiwanie, gotowość do nawiązania połączenia,
FIN_WAIT_1 - wysłano pakiet FIN,
FIN_WAIT_2 - otrzymano potwierdzenie własnego pakietu FIN,
TIME_WAIT - oczekiwanie na potwierdzenie rozłączenia,
CLOSE_WAIT otrzymanie pakietu FIN od klienta,
LAST_ACK - otrzymano i wysłano FIN
CLOSED – zamknięcie zestawionego połączenia.
9. Sent packets – ilość pakietów wysłanych,
10. Sent Bytes – ilość bajtów danych wysłanych,
11. Rcvd packets - ilość pakietów otrzymanych,
12. Rcvd Bytes – ilość bajtów danych odebranych.
Program po uruchomieniu standardowo rozwiązuje nam nazwy IP, gdybyśmy z jakiś powodów zamiast nazw domenowych chcieli poznać adresy IP wystarczy, że użyjemy skrótu Ctrl+R lub klikniemy na ikonę przedstawiającą literę A. Uruchomiona aplikacja działa cały czas informując nas o nowych połączeniach czy statusie już istniejących połączeń. Proces odświeżania przedstawianych danych możemy ustalić odpowiednio na 1, 2 lub 5 sekund. Dodatkowo by szybko orientować się w zachodzących zmianach został wprowadzony system kolorów sygnalizujący nam stan nawiązanych połączeń. I tak: kolor zielony oznacza nowy wpis, kolorem czerwonym oznaczane są sesje, które są aktualnie zamykane natomiast kolor żółty oznacza te połączenia, które zmieniły status. Dostępna jest jeszcze jedna opcja filtrująca nam uzyskiwane dane a mianowicie dzięki skrótowi Ctrl+U (bądź wybierając ikonę ??? - długo zastanawiałem się co to jest lecz chodzi tą usytuowaną na prawo od ikony A) możemy ukryć połączenia, które mają status listening. Program dodatkowo sprzężony jest z bazą Whois, identyfikującą nam zdalny host. By uzyskać szersze informacje o hoście zdalny wystarczy, ze klikniemy PPM na interesujące nas połączenie i z rozwijanego menu wybierzemy opcję Whois bądź użyć skrótu Ctrl+W. Gdyby z jakiś powodów podczas analizy ruchu sieciowego jakiś proces nas zaniepokoił (dziwny adres, bądź duży ruch) proces taki możemy zamknąć. Zamykanie połączenia realizujemy po wybraniu z menu kontekstowego opcji Close connection a dodatkowo możliwe jest zamknięcie całego procesu – opcja End proces.
VMMap
VMMap - narzędzie do analizowania stanu pamięci, program w sposób graficzny za pomocą utworzonej „mapy” reprezentuje nam informacje zapisane w pamięci komputera. VMMap służy do analizy wirtualnej i fizycznej pamięci procesów.
Zadanie programu sprowadza się do zobrazowania przydzielonej procesom pamięci wirtualnej a także ukazania ilości wykorzystywanej pamięci fizycznej (roboczej) przypisanej przez system operacyjny każdemu z procesów. VMMap dodatkowo wyświetla szczegółową mapę pamięci.
VolumeId
VolumeId - pozwala zmienić numer ID partycji FAT i NTFS. W niektórych przypadkach uzasadnione jest wykonanie takiej zmiany. Choć Ja powiem szczerze, że program użyłem dwa razy. Pierwszy przypadek to sytuacja w której po sklonowaniu dysku twardego i zamontowaniu go w laptopie nie chciała się uruchomić tzw. partycja recovery przywracająca system operacyjny. Dopiero po przypisaniu adresów ID partycji z starego dysku udało się rozwiązać problem. Druga zaś sytuacja dotyczyła obejścia zabezpieczeń programu.
Zmianę numeru ID partycji dokonujemy za pomocą polecenia: volumeid <partycja> <nowy_numer_HEX>
Po nadaniu nowego numeru ID partycji, musimy zrestartować komputer aby cieszyć się dokonaną zmianą.
Whois
Whois – aplikacja umożliwia nam wykonanie zapytania do bazy Whois czyli dzięki programowi sprawdzimy dane rejestracyjne domeny lub dowolnego adresu IP. Wykonanie zapytania sprowadza się do wydania polecenia: whois <adres_IP_bądź_domena>
WinObj
WinObj – to program GUI służący do przeglądania obiektów systemu Windows. WinObj korzysta z wbudowanych mechanizmów Windows NT API (dostarczanych przez NTDLL.DLL).
ZoomIt
ZoomIt - jest aplikacją przydatną podczas prowadzenia prezentacji i pokazów. Podstawową funkcją programu jest wykonywanie funkcji zoom lecz możliwe jest również użycie markera, którym możemy pisać po ekranie oraz opcję blokowania pulpitu na określony czas. Programem steruje się za pomocą skrótów klawiszowych, które oczywiście możemy zdefiniować samodzielnie.
Poniżej przykład użycia w którym to ekran został „zamrożony” i zostały na ekran naniesione adnotacje.
I to by było na tyle. Omówiliśmy wszystkie narzędzia pakietu Sysinternals. Programy te powinny znaleźć się w arsenale każdego administratora gdyż znacznie ułatwiają pracę a dodatkowo potrafią rozwiązać nie jeden problem. Pisząc ten wpis powiem szczerze, że funkcjonalność niektórych przedstawionych narzędzi mnie zaskoczyła. Część ich znałem, część odkryłem na nowo a inne zaś dopiero poznałem. Wszystkich zachęcam do zapoznania się z pakietem bo po prostu WARTO.
BIBLIOGRAFIA:
http://www.howtogeek.com/school/sysinternals-pro/lesson9/
http://wss.geekclub.pl/baza-wiedzy/czy-procesor-posiada-wsparcie-dla-hyper-v-w-windows-8,2771
http://searchservervirtualization.techtarget.com/tip/VHD-vs-VHDX-Virtual-disk-format-differences
http://blogs.technet.com/b/cbernier/archive/2013/08/29/converting-hyper-v-vhdx-to-vhd-file-formats-for-use-in-windows-azure.aspx
http://www.microsoft.com/en-gb/download/details.aspx?id=40855
http://blogs.msdn.com/b/virtual_pc_guy/archive/2012/10/03/using-powershell-to-convert-a-vhd-to-a-vhdx.aspx
http://www.watchingthenet.com/how-to-stop-and-start-services-on-remote-windows-computers.html
http://community.spiceworks.com/topic/174781-can-t-pslist-to-a-w7-machine
http://www.techrepublic.com/blog/data-center/new-addition-to-the-sysinternals-pstools-suite-psping/
http://technet.microsoft.com/pl-pl/library/security-identifier-w-systemach-windows.aspx
http://support.microsoft.com/kb/120929
http://www.brighthub.com/computing/enterprise-security/articles/11257.aspx
http://technet.microsoft.com/pl-pl/library/cc739213%28v=ws.10%29.aspx
http://www.orcsweb.com/blog/jeff/closing-open-file-handles/
http://www.howtogeek.com/school/sysinternals-pro/lesson10/all/
http://nutsaboutnets.com/faqs/dbgview/
http://technet.microsoft.com/en-us/sysinternals/bb545021.aspx
]]>