Jest sobie taki folder, nazywa się System Volume Information. Normalnie użytkownik (nawet administrator) nie ma tam wstępu: C:\>cd "\System Volume Information" Access is denied. ...ale jak się tam już dostanie, to... odkrył Wehikuł Czasu. A wszystko dzięki funkcji System Restore. To właśnie w katalogu System Volume Information gromadzone są przez usługę System Restore dane potrzebne do odtworzenia stanu systemu z określonego czasu.
Wehikuł czasu
Standardowe uprawnienia katalogu System Volume Information nie pozwalają na dostęp do niego użytkownikom, nawet jeśli posiada on uprawnienia administracyjne, prawa dostępu do tego katalogu ma tylko SYSTEM. Najłatwiejszą metodą dostania się do niego, jest uruchomienie linii poleceń z prawami użytkownika SYSTEM, czyli poleceniem psexec -s cmd.exe (z poziomu użytkownika z uprawnieniami administracyjnymi). Zawartość katalogu System Volume Information wygląda mniej więcej tak:
MountPointManagerRemoteDatabase tracking.log _restore{25E51967-6894-413D-84F1-2A5A484A031D}
W katalogu _restore{25E51967-6894-413D-84F1-2A5A484A031D} (z dokładnością do wartości GUID) przechowywane są punkty przywracania systemu. Wewnątrz tego katalogu znajduje się plik fifo.log (tak, chodzi o to FIFO), w którym znajduje się informacja kiedy zostały usunięte poprzednie punkty przywracania systemu:
05/15/07-00:01:08 : Fifoed RP1 on drive C:\ (...) 11/17/08-10:04:47 : Fifoed RP330 on drive C:\
Te, które jeszcze "mieszczą się" na dysku, znajdują się w katalogach o nazwie typu RP123, gdzie liczba oznacza (jak łatwo zgadnąć) kolejny numer punktu przywracania: RP331 (...) RP340
Co można tam znaleźć?Dużo interesujących rzeczy. Po pierwsze informację o tym, dlaczego punkt przywracania systemu został utworzony. Informacja taka znajduje się w pliku rp.log i wygląda mniej więcej tak:
strings -q rp.log Installed ProDiscover Basic 5.01 |XTn _,} v`,} l9} oYE
Czyli ten konkretny punkt przywracania systemu został utworzony w związku z instalacją ProDiscover Basic. Inną często spotykaną nazwą jest System Checkpoint, czyli po prostu dany punkt został utworzony "normalnie" przez system (usługa ta tworzy punkt przywracania w określonych interwałach czasowych).
Drugi przykład to pliki monitorowane przez usługę przywracania systemu. Lista tych plików (standardowa, bo zwykle nikt jej nie modyfikuje) znajduje się w %systemroot%\system32\Restore\filelist.xml. Mają one co prawda niewiele mówiące nazwy:
A0042385.msi A0042386.mfl A0042387.exe A0042388.config A0042389.exe A0042390.ico (...) A0042395.dll
jednak nie ma problemu, by uzyskać informację oryginalnej nazwie pliku i jego lokalizacji. Informacja ta zawarta jest w plikach change.log (plików tych może być więcej, wówczas przyjmują nazwy typu change.log.1, change.log.2, ...). Można na przykład za pomocą polecenia strings wyciągnąć stringi z plików change.log i znaleźć wystąpienie interesującej nas nazwy, np. A0042390.ico, a następnie zobaczyć jego oryginalną ścieżkę (w pliku znajduje się bezpośrednio przed "nową" nazwą), w tym przypadku jest to: \Program Files\Fiddler2\IE_Toolbar.ico.
Trzeci przykład to kopie rejestru, które znajdują się w podkatalogu snapshot:
(...) _REGISTRY_MACHINE_SAM _REGISTRY_MACHINE_SECURITY _REGISTRY_MACHINE_SOFTWARE _REGISTRY_MACHINE_SYSTEM _REGISTRY_USER_.DEFAULT (...) _REGISTRY_USER_NTUSER_S-1-5-21-507921405-1580436667-1708537768-1003 _REGISTRY_USER_NTUSER_S-1-5-21-507921405-1580436667-1708537768-500 (...) _REGISTRY_USER_USRCLASS_S-1-5-21-507921405-1580436667-1708537768-1003 _REGISTRY_USER_USRCLASS_S-1-5-21-507921405-1580436667-1708537768-500
Doskonale nadają się one do analizy przy pomocy RegRipper.
Co to daje?Poszczególne punkty przywracania zawierają (częściowy) oraz systemu w konkretnym czasie. Mogą się tam znaleźć pliki, których już nie ma (bo zostały usunięte). Można śledzić zmiany w plikach typu *.lnk czy *.ini, co dostarcza ciekawych informacji o aktywności użytkownika w systemie. Na przykład w punkcie przywracania mogą się znaleźć informacje o ostatnio otwieranych dokumentach (My Recent Documents), które zostały przez użytkownika usunięte (choćby za pomocą narzędzia CleanAfterMe). W plikach rejestru również mogą znajdować się dane, które zostały usunięte, choćby przez "czyszczenie historii" w Internet Explorer (np. klucz TypedURLs).