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.
Co mówi rejestr, czyli LastWriteTime
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 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Zapytanie wygląda mniej więcej tak:
"SELECT TOP 10 DISTINCT KeyName, LastWriteTime FROMORDER BY LastWriteTime DESC"
W przypadku mojego systemu otrzymuje się następującą informację:
- {6B976ADF-8AE8-434E-B282-A06C7F624D2F}, 2008-04-06 10:22:21
- {8B787193-FCDD-4B21-A110-102089D323B9}, 2008-04-06 10:12:40
- {3248F0A8-6813-11D6-A77B-00B0D0160050}, 2008-04-05 20:01:17
- Nmap, 2008-04-05 19:58:36
- Wireshark, 2008-04-01 18:16:49
- TGPS, 2008-03-31 19:15:46
- Fiddler2, 2008-03-29 10:15:43
- Cain & Abel v4.9.14, 2008-03-29 10:02:53
- FileZilla Client, 2008-03-26 19:36:45
- Mozilla Firefox (2.0.0.13), 2008-03-26 16:11:43
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%...
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ć?
- HKCU,
- HKCR,
- HKLM\System,
- HKLM\Software,
- HKLM\SAM,
- HKLM\Security,
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:
- lista zalogowanych użytkowników,
- lista otwartych plików, kluczy rejestrów i innych obiektów systemowych,
- informacje "sieciowe",
- informacje o uruchomionych procesach,
- ...i parę jeszcze innych :)
Ale to już zupełnie inny temat. A jeśli ktoś jest zainteresowany "sekcją zwłok" to polecić mogę tę książkę.
Tym razem kontynuacja wpisu (Prawie) każde szyfrowanie można złamać, która dotyczy śladów, jakie pozostawiają w systemie Windows narzędzia do szyfrowania. Konkretnie dwa: TrueCrypt oraz FreeOTFE, przy czym w przypadku FreeOTFE skupię się na FreeOTFE Explo
Przesłany: Mar 09, 07:35