Badania śladów zostawionych przez moje tamagotchi odcinek kolejny. Tym razem zobaczę co powiedzą o jego działaniu ślady zgromadzone w systemie plików. A konkretnie czego się można dowiedzieć porównując jego snapshot wykonany przed i po infekcji, jak również sprawdzę, czy uda się stworzyć jakiś timeline działań malware w systemie.
Tamagotchi VII: wróżby z FuSów
Poszukiwanie nowych plików częściowo już wykonałem, porównując wyniki polecenia dir /s /b wykonanego przed i po infekcji. Bardziej miarodajne będzie jednak badanie wyników logparsera.
Gdyby logparser miał pełną obsługę SQL, można by było uzyskać listę nowych lub zmodyfikowanych plików tworząc odpowiednie zapytanie SQL. Ponieważ tak nie jest, wyeksportowałem do plików tekstowych log, przy czym w pliku wynikowym znalazły się tylko pola Path oraz Hash. Tu od razu uwaga - w zapytaniu SQL, przy którego pomocy tworzyłem snapshoty warto wprowadzić jedną zmianę, mianowicie po HASHMD5_FILE(Path) warto dodać AS Hash. W przeciwnym wypadku będzie później problem przy dostępie do tej kolumny (ewentualnie później można zmienić nazwę pola w pliku CSV, co zresztą zrobiłem). Tak przygotowane pliki porównałem przy pomocy WinMerge i otrzymałem taką listę (z pominięciem zmian w Prefetch):
- c:\RECYCLER\S-1-5-21-1482476501-1644491937-682003330-1013\Desktop.ini
- c:\RECYCLER\S-1-5-21-1482476501-1644491937-682003330-1013\ise32.exe
- c:\WINDOWS\system32\bsxm.exe
- c:\WINDOWS\system32\cwzsrf.exe
- c:\WINDOWS\system32\explorer.exe
- c:\WINDOWS\system32\gjvxxw.exe
- c:\WINDOWS\system32\gsxsrdx.exe
- c:\WINDOWS\system32\gubeoszq.exe
- c:\WINDOWS\system32\hheyjo.exe
- c:\WINDOWS\system32\iexplore.exe
- c:\WINDOWS\system32\pwpveix.exe
- c:\WINDOWS\system32\qbqwov.exe
- c:\WINDOWS\system32\wgwsafhn.exe
- c:\WINDOWS\system32\ygcpzaf.exe
Kursywą oznaczyłem te pliki, o których już wiedziałem na podstawie wyniku polecenia dir. Co z pozostałymi plikami? Sprawdzenie atrybutów (w logu logparsera) pokazuje, że pliki podkreślone, są po prostu ukryte i z tego prostego powodu dir /s /b ich nie odnotował. Co z pozostałymi (pogrubionymi) plikami? Najbardziej oczywiste są dwie możliwości:
- malware je ukrywa (rootkit?),
- zostały stworzone po wykonaniu dir, ale przed (lub w trakcie) wykonania zrzutu przez logparser,
Pliki zmodyfikowane to te, które istniały w systemie, ale zmieniła się ich suma kontrolna MD5. Ich lista:
- c:\WINDOWS\SchedLgU.Txt
- c:\WINDOWS\WindowsUpdate.log
- c:\WINDOWS\Debug\UserMode\userenv.log
- c:\WINDOWS\SoftwareDistribution\DataStore\DataStore.edb
- c:\WINDOWS\SoftwareDistribution\DataStore\Logs\edb.log
- c:\WINDOWS\system32\config\AppEvent.Evt
- c:\WINDOWS\system32\config\SecEvent.Evt
- c:\WINDOWS\system32\config\SysEvent.Evt
- c:\WINDOWS\system32\drivers\etc\hosts
- c:\WINDOWS\system32\wbem\Logs\wbemcore.log
- c:\WINDOWS\system32\wbem\Logs\wbemess.log
- c:\WINDOWS\system32\wbem\Logs\wbemprox.log
- c:\WINDOWS\system32\wbem\Logs\wmiprov.log
- c:\Documents and Settings\Administrator\Local Settings\History\History.IE5\index.dat
- c:\Documents and Settings\Administrator\Local Settings\History\History.IE5\index.dat
- c:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files\Content.IE5\index.dat
- c:\WINDOWS\system32\wbem\Repository\FS\INDEX.BTR
- c:\WINDOWS\system32\wbem\Repository\FS\OBJECTS.DATA
- c:\Documents and Settings\Administrator\Local Settings\History\History.IE5\MSHist012008051720080518\index.dat
Część z tych plików zmienia się w sposób naturalny w systemie i fakt ich modyfikacji nie jest niczym dziwnym. Na pewno jednak warto przyjrzeć się plikom pogrubionym. Pliki *.Evt i tak będą sprawdzone w trakcie analizy dziennika zdarzeń systemu, w pozostałych plikach nie spodziewam się specjalnie interesujących informacji.
Szczególnie interesująca może być modyfikacja pliku hosts. Wczoraj żałowałem, że malware nie zainstalował żadnego BHO, który może być przydatny przy phishingu. Z drugiej strony wpisy do hosts są inną metodą osiągnięcia tego samego celu. Ciekawy jestem dokładnie co zostało wpisane...
Timeline...Teraz pora na stworzenie pewnego timeline działań malware w systemie. Każdy z plików na NTFS utrzymuje znaczniki czasu utworzenia (CreationTime), modyfikacji (LastWriteTime) i dostępu (LastAccessTime). Spróbuję odtworzyć poczynania malware w systemie przy w oparciu o znacznik LastWriteTime. W celu otrzymania danych do analizy wystarczy proste zapytanie w logparser:
SELECT Path, Name, Attributes, CreationTime, LastWriteTime, LastAccessTime FROM fs.csv WHERE LastWriteTime > TO_TIMESTAMP('200805171947','yyyyMMddhhmm') ORDER BY LastWriteTime ASC
Skąd wiedziałem, które zdarzenia mnie interesują? Cóż, w końcu znałem datę uruchomienia malware, zresztą mam ją też w logach tcpdump.
Co udało się ustalić (no dobra, może to nie jest najbardziej czytelne):
- 17-05-2008 21:47:17: Utworzenie c:\WINDOWS\Prefetch\C1AB3A6D0DF4667DE52DAC0C7B4A1-36903391.pf, oznacza to, że proces został uruchomiony,
- Utworzenie c:\WINDOWS\system32\wgwsafhn.exe, Creation: 17-05-2008 21:47:21, LastWriteTime: 17-05-2008 21:47:22
- Utworzenie c:\WINDOWS\system32\gsxsrdx.exe, Creation: 17-05-2008 21:47:22, LastWriteTime: 17-05-2008 21:47:23
- Utworzenie c:\RECYCLER\S-1-5-21-1482476501-1644491937-682003330-1013\ise32.exe, Creation: 17-05-2008 21:47:25, LastWriteTime: 17-05-2008 21:47:23
- Utworzenie c:\WINDOWS\Prefetch\WGWSAFHN.EXE-22DE95C8.pf, Creation: 17-05-2008 21:47:24, LastWriteTime: 17-05-2008 21:47:24 (czyli plik wgwsafhn.exe został uruchomiony),
- Utworzenie c:\WINDOWS\Prefetch\GSXSRDX.EXE-0A3F3987.pf, Creation: 17-05-2008 21:47:24, LastWriteTime: 17-05-2008 21:47:24 (czyli plik gsxsrdx.exe został uruchomiony),
- Utworzenie c:\RECYCLER\S-1-5-21-1482476501-1644491937-682003330-1013\Desktop.ini, Creation: 17-05-2008 21:47:24, LastWriteTime: 17-05-2008 21:47:25,
- Utworzenie c:\WINDOWS\Prefetch\EXPLORER.EXE-0C648EA3.pf, Creation: 17-05-2008 21:47:27, LastWriteTime: 17-05-2008 21:47:27, tu pojawia się zagadka - o który explorer.exe chodzi? Jeśli o ten w system32, to nie mam wcześniej informacji o zapisie do tego pliku, skąd on się wziął?
- Utworzenie c:\WINDOWS\Prefetch\FZDSV.EXE-21682E07.pf, Creation: 17-05-2008 21:47:28, LastWriteTIme: 17-05-2008 21:47:28, podobnie jak w przypadku poprzedniego procesu - skąd się wziął plik FZDSV.EXE?
- Utworzenie c:\WINDOWS\system32\pwpveix.exe, Creation: 17-05-2008 21:47:34, LastWriteTime: 17-05-2008 21:47:35
- Utworzenie c:\WINDOWS\system32\qbqwov.exe, Creation: 17-05-2008 21:47:34, LastWriteTime: 17-05-2008 21:47:35
- Utworzenie c:\WINDOWS\system32\hheyjo.exe, Creation: 17-05-2008 21:47:34, LastWriteTime: 17-05-2008 21:47:35
- Utworzenie: c:\WINDOWS\Prefetch\QBQWOV.EXE-2A8C9D4C.pf, Creation: 17-05-2008 21:47:37, LastWriteTime: 17-05-2008 21:47:37 (uruchomienie procesu qbqwov.exe, przynajmniej wiadomo skąd się plik wziął),
- Utworzenie: c:\WINDOWS\Prefetch\HHEYJO.EXE-1168132C.pf, Creation: 17-05-2008 21:47:37, LastWriteTime: 17-05-2008 21:47:37 (jak wyżej),
- Utworzenie: c:\WINDOWS\Prefetch\IEXPLORE.EXE-07D1865D.pf Creation: 17-05-2008 21:47:38, LastWriteTime: 17-05-2008 21:47:38 (znowu - skąd się wziął plik iexplore.exe, jeśli chodzi ten z system32),
- Utworzenie: c:\WINDOWS\Prefetch\RUNDLL32.EXE-2CD9E33B.pf, Creation: 17-05-2008 21:47:38, LastWriteTime: 17-05-2008 21:47:38,
- Utworzenie c:\WINDOWS\Prefetch\RUNDLL32.EXE-47AAC8D6.pf, 17-05-2008 21:47:41, 17-05-2008 21:47:41
- Utworzenie c:\WINDOWS\Prefetch\PWPVEIX.EXE-12189FE9.pf, 17-05-2008 21:47:47, 17-05-2008 21:47:47 (uruchomienie procesu pwpviex.exe),
Tutaj następuje pewna przerwa w logach. Po prostu zatrzymałem maszynę wirtualną i zająłem się analizą ruchu sieciowego. Okazuje się, że chyba nieco przedwcześnie, co widać dnia następnego:
- Modyfikacja c:\WINDOWS\system32\drivers\???????, Creation: 17-05-2008 19:26:43, LastWriteTime: 18-05-2008 11:07:42 (co to jest ???????)
- Modyfikacja c:\WINDOWS\Prefetch\LOGPARSER.EXE-1C317D3E.pf, LastWriteTime: 18-05-2008 11:08:28, oznacza to kolejne uruchomienie logparsera,
- Utworzenie c:\WINDOWS\system32\ygcpzaf.exe, Creation: 18-05-2008 11:08:31, LastWriteTime: 18-05-2008 11:08:31,
- Utworzenie c:\WINDOWS\system32\gjvxxw.exe, Creation: 18-05-2008 11:08:31, LastWriteTime: 18-05-2008 11:08:31,
- Utworzenie Utworzenie c:\WINDOWS\Prefetch\GJVXXW.EXE-1983868B.pf, Creation: 18-05-2008 11:08:32, LastWriteTime: 18-05-2008 11:08:32 (uruchomienie procesu gjvxxw.exe),
- Utworzenie c:\WINDOWS\system32\gubeoszq.exe, Creation: 18-05-2008 11:08:31, LastWriteTime: 18-05-2008 11:08:32,
- Utworzenie c:\WINDOWS\system32\bsxm.exe, Creation: 18-05-2008 11:08:31, LastWriteTime: 18-05-2008 11:08:32,
- Utworzenie c:\WINDOWS\system32\cwzsrf.exe, Creation: 18-05-2008 11:08:31, LastWriteTime: 18-05-2008 11:08:32,
- Utworzenie c:\WINDOWS\Prefetch\GUBEOSZQ.EXE-0F46BCBC.pf, Creation: 18-05-2008 11:08:33, LastWriteTime: 18-05-2008 11:08:33 (uruchomienie procesu gubeoszq.exe),
- Modyfikacja c:\WINDOWS\system32\drivers\etc\hosts, Creation: 23-08-2001 14:00:00, LastWriteTime:18-05-2008 11:08:33 ,
- Utworzenie c:\WINDOWS\Prefetch\BSXM.EXE-08C13C66.pf, Creation: 18-05-2008 11:08:33, LastWriteTime: 18-05-2008 11:08:34 (uruchomienie bsxm.exe),
- Utworzenie c:\WINDOWS\Prefetch\CWZSRF.EXE-2E644A94.pf, Creation: 18-05-2008 11:08:34, LastWriteTime: 18-05-2008 11:08:34,
- Utworzenie c:\WINDOWS\Prefetch\RUNDLL32.EXE-1FF98C29.pf, Creation: 18-05-2008 11:08:35, LastWriteTime: 18-05-2008 11:08:35,
- Utworzenie c:\WINDOWS\Prefetch\RUNDLL32.EXE-277671B7.pf, Creation: 18-05-2008 11:08:36, LastWriteTime: 18-05-2008 11:08:36,
- Utworzenie c:\WINDOWS\Prefetch\YGCPZAF.EXE-2E676F19.pf, Creation: 18-05-2008 11:08:42, LastWriteTime: 18-05-2008 11:08:42 (uruchomienie ygcpzaf.exe),
- Utworzenie c:\WINDOWS\Prefetch\HVIYUQG.EXE-17E781F8.pf, Creation: 18-05-2008 11:08:43, LastWriteTime: 18-05-2008 11:08:43 (skąd się wziął),
W powyższych danych jest kilka rzeczy, które mnie zastanawiają. Chodzi o uruchomienie (odnotowane w Prefetch) plików, których sposobu pojawienia się w systemie nie jestem w stanie zidentyfikować:
- c:\windows\system32\explorer.exe (istnieje na dysku),
- c:\windows\system32\iexplore.exe (istnieje na dysku),
- FZDSV.EXE (nie ma),
- HVIYUQG.EXE (nie ma),
W przypadku dwóch ostatnich plików istnieje duża szansa, że po prostu zostały one usunięte z dysku (malware sprzątnął je po sobie) i siłą rzeczy nie pojawiły się w tym timeline. Nierozwiązana pozostaje natomiast zagadka explorer.exe i iexplore.exe. Te pliki akurat istnieją na dysku, jak wyglądają więc ich metadane?
Path: c:\WINDOWS\system32\explorer.exe; Attributes: ---H-----; CreationTime: 14-04-2008 05:42:20; LastWriteTime: 14-04-2008 05:42:20; LastAccessTime: 18-05-2008 11:08:29; MD5: C1AB3A6D0DF4667DE52DAC0C7B4A1595 Path: c:\WINDOWS\system32\iexplore.exe; Attributes: ---H-----; CreationTime: 14-04-2008 05:42:20; LastWriteTime: 14-04-2008 05:42:20; LastAccessTime: 17-05-2008 21:47:35; MD5: 847C928646AB5779FBAAA9738F04E108
Wiadomo już dlaczego te pliki nie pokazały się w timelinie, mają daty utworzenia i modyfikacji z 14 kwietnia 2008 roku. To dobry przykład na to, że timeline nie jest całkiem pewnym narzędziem analizy. Wynika to z faktu, że timestampami można manipulować, co tutaj prawdopodobnie miało miejsce.
Jeśli po mojej prezentacji na dzisiejszym spotkaniu OWASP kogoś zainteresował temat ogólnie pojętego forensic, być może zainteresują go również starsze wpisy dotyczące tego tematu. Nazbierało się tego trochę, więc małe przypomnienie części z poruszanych t
Przesłany: Jun 10, 20:54