Co mówi rejestr, czyli LastWriteTime

Pisałem o wykorzystaniu atrybutu LastAccessTime w celu ustalenia czasu zaistnienia pewnych zdarzeń w systemie. Dotyczyło to systemu plików na NTFS. Co ciekawe również rejestr systemowy utrzymuje pewien interesujący atrybut.

A imię jego to LastWriteTime

LastWriteTime, bo o nim mowa, informuje o dacie ostatniego zapisu w danym kluczu. Nie jest w żaden sposób eksponowany w GUI (regedit), więc nie ma się co dziwić, że wie o nim niezbyt duża grupa osób, a nawet ci co wiedzą, często zapominają, że istnieje.

Jak się dobrać do LastWriteTime?

Skoro w GUI nie ma informacji o LastWriteTime, to jak się można do tej informacji dostać? Sposobów jest kilka, tutaj przedstawię dwa, chyba najłatwiejsze.

LogParser

Po pierwsze LogParser. Jednym z formatów wejściowych jest w tym narzędziu format REG, który pozwala na odczyt z rejestru. LastWriteTime pojawia się jako jedno z dostępnych pól.

Narzędzie to jest wygodne nie tylko dlatego, że pozwala na zobaczenie atrybutu LastWriteTime, ale również na różne “operacje” z nim związane. Na przykład jeśli ktoś chce zobaczyć historię ostatnich 10 instalowanych programów, wystarczy zapytać o ostatnie 10 modyfikowanych kluczy w HKEYLOCALMACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Zapytanie wygląda mniej więcej tak:

“SELECT TOP 10 DISTINCT KeyName, LastWriteTime FROM ORDER BY LastWriteTime DESC”

W przypadku mojego systemu otrzymuje się następującą informację:

Korzystając z LastWriteTime oraz LogParser można ustalić kiedy zaszła określona zmiana w rejestrze i wykorzystać zdobytą wiedzę do dalszego dochodzenia. Co prawda jeszcze trzeba wiedzieć, czego szukać, ale to już zupełnie inny temat.

Trzeba również pamiętać, że podobnie jak w przypadku LastAccessTime, także i LastWriteTime może zostać łatwo zaburzony, więc nie można polegać na nim w 100%25...

Windows Registry Recovery

Drugim pomocnym narzędziem jest Windows Registry Recovery. Pozwala on na załadowanie rejestrów z pliku i przeglądanie ich w sposób podobny do tego, na który pozwala Regedit.

Coś mnie ugryzło...

Załóżmy, że ktoś zauważa, iż system został w jakiś sposób skompromitowany (na przykład zainstalował się jakiś wirus). Co wówczas zrobić? Warto pamiętać, że dalsze używanie systemu zamazuje istniejące informacje. Warto więc zrobić choćby timeline zdarzeń w systemie plików (tak, jak to wcześniej opisałem). Warto również zachować kopie rejestrów. Można do tego wykorzystać narzędzie reg.exe , a konkretnie polecenie save.

Jakie klucze warto zachować?

Jak je później analizować? LogParser jest wygodny, ale nie potrafi czytać rejestrów bezpośrednio z plików. Można jednak “załadować” klucz rejestru “w żywym systemie” i wykorzystać do analizy LogParser.

Oczywiście zachowanie informacji z filesystemu i rejestru to nie wszystko. Inne ciekawe informacje, które w razie czego mogą być przydatne, to:

Ale to już zupełnie inny temat. A jeśli ktoś jest zainteresowany “sekcją zwłok” to polecić mogę tę książkę.

Oryginał tego wpisu dostępny jest pod adresem Co mówi rejestr, czyli LastWriteTime

Autor: Paweł Goleń