Stopy po použití PowerShellu na systéme, Časť 2 – Windows Prefetch

Singel-post cover image

Spustenie PowerShellu a forenzné artefakty

Vykonávanie PowerShellových príkazov z konzoly, spúšťanie skriptov a podobne, zanecháva na systéme stopy na mnohých miestach. V nasledujúcich riadkoch si povieme, kde všade môžeme získať informácie o aktivite súvisiacej s PowerShellom. Výpočet nie je vyčerpávajúci, zameriame sa na najužitočnejšie a najzrozumiteľnejšie dostupné artefakty.

Prefetch

Či už spustíme PowerShell z príkazového riadku, z jeho “modrej” konzoly či z ISE, za beh zodpovedá spustiteľný súbor powershell.exe. Je to štandardný spustiteľný súbor, preto sa pri jeho behu uplatňujú procedúry ako pri iných PE súboroch v operačnom systéme Windows. Windows Prefetcher je komponent uvedený vo verzií Windows XP. Bol vyvinutý pre optimalizáciu systému, umožňuje rýchlejšie bootovanie i spúšťanie programov. Aplikačný prefetching spočíva v cacheovaní tých objektov, ktoré aplikácia pri svojom spustení opakovane používa. Prefetcher monitoruje prvých 10 sekúnd činnosti aplikácie a výstup - teda k akým súborom, DLLkám a pod. aplikácia pristúpila - zapíše do súboru umiestneného (spravidla) v adresári C:\Windows\prefetch. Meno súboru sa skladá z mena aplikácie, pomlčky, hexadecimálneho hashu cesty k spustiteľnému súboru a prípony .pf. Ak aplikácia hosťuje nejaký iný komponent (MMC alebo dllhost sú príkladmi takýchto aplikácií), do hashu bude zahrnuté aj meno toho komponentu. Preto aj tá istá aplikácia môže mať viacero prefetch súborov, líšiacich sa hashmi v názve.

Prefetch je vo východiskovom nastavení povolený na verziách Windows pre pracovné stanice. Na serverových OS je potrebné Prefetch nakonfigurovať v registroch. Nepredpokladá sa, že servery sa bežne používajú na spúšťanie aplikácií, preto nie je optimalizácia pomocou Prefetchu potrebná.

Dáta, ktoré prefetcher zachytáva, parsuje a zapisuje do súborov služba Task Scheduler, teda Plánovač úloh. V prípade že je TaskScheduler pozastavený, Prefetcher nebude fungovať.

Obrázok 1: Prefetch súbory v defaultnom adresári

Obrázok 1: Prefetch súbory v defaultnom adresári

Prefetch je cenným zdrojom informácií o tom, kedy bol program spustený a s akými modulmi pracuje. V prefetch súbore je uložených až 8 posledných časov spustenia aplikácie, cesty k načítavaným súborom, zväzok na disku, kde sa spustiteľný súbor aplikácie/programu nachádza, jeho veľkosť a hash. Ak aj nie je medzi poslednými 8 spusteniami zachytený údaj o prvom spustení programu, môžeme ho určiť nepriamo: program bol pravdepodobne po prvý krát spustený do 10 sekúnd po vytvorení jemu príslušného prefetch súboru.

Na parsovanie prefetch súborov môžeme použiť nástroj výskumníka a bezpečnostného špecialistu Erica Zimmermana. PECmd.exe je commandline utilita umožňujúca spracovať buď individuálne prefetch súbory, alebo celý adresár. Príklady použitia uvádzame nižšie.

Spracovanie jednotlivých .pf súborov, prislúchajúcich PowerShellu:

Tools\Get-ZimmermanTools>PECmd.exe -f Windows\prefetch\POWERSHELL.EXE-767FB1AE.pf --csv tests\pf_POWERSHELL.EXE-767FB1AE.csv
PECmd version 1.4.0.0
Author: Eric Zimmerman ([email protected])
https://github.com/EricZimmerman/PECmd
 
Command line: -f Windows\prefetch\POWERSHELL.EXE-767FB1AE.pf --csv tests\pf_POWERSHELL.EXE-767FB1AE.csv
...
Processing 'Windows\prefetch\POWERSHELL.EXE-767FB1AE.pf'

Created on: 2021-08-29 08:34:35
Modified on: 2021-08-29 11:50:37
Last accessed on: 2021-09-15 13:25:46
 
Executable name: POWERSHELL.EXE
Hash: 767FB1AE
File size (bytes): 159,032
Version: Windows 10
 
Run count: 9
Last run: 2021-08-29 11:50:32
Other run times: 2021-08-29 11:50:27, 2021-08-29 11:43:45, 2021-08-29 11:43:36, 2021-08-29 11:39:53, 2021-08-29 11:39:41, 2021-08-29 08:56:46, 2021-08-29 08:56:36
 
Volume information:
 
#0: Name: \VOLUME{01d788bdfb9021c1-34fc4808} Serial: 34FC4808 Created: 2021-08-03 23:19:18 Directories: 107 File references: 415
 
Directories referenced: 107
 
000: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA
001: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA\MICROSOFT
002: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA\MICROSOFT\WINDOWS DEFENDER
003: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA\MICROSOFT\WINDOWS DEFENDER\PLATFORM
004: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA\MICROSOFT\WINDOWS DEFENDER\PLATFORM\4.18.2107.4-0
005: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA\MICROSOFT\WINDOWS DEFENDER\PLATFORM\4.18.2107.4-0\X86
006: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS
007: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE.ADMIN
008: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE.ADMIN\APPDATA
009: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE.ADMIN\APPDATA\LOCAL
010: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE.ADMIN\APPDATA\LOCAL\TEMP
...
Files referenced: 201
Files referenced: 201
 
000: \VOLUME{01d788bdfb9021c1-34fc4808}\WINDOWS\SYSTEM32\NTDLL.DLL
001: \VOLUME{01d788bdfb9021c1-34fc4808}\WINDOWS\SYSTEM32\WOW64.DLL
...

Vidíme, že vo výstupe nástroja sú uvedené posledné časy spustenia PowerShellu, časy vytvorenia a modifikácie prefetch súboru, označenie zväzku odkiaľ bol PowerShell spustený, a zoznamy súborov a adresárov referencovaných programom pri spustení, ktoré boli pre optimalizáciu výkonnosti uložené do prefetch súboru.

Druhý Prefetch súbor referencuje používateľský adresár Joa, ktorý nie je administrátorom. V prvom príklade sme videli, že referencovanou lokalitou bol joe.admin – lokálny administrátor stanice. Aj podľa obsahu prefetch súboru teda môžeme odhadnúť, ktorý používateľ PowerShell spúšťal. Samozrejme, túto skutočnosť by mali potvrdiť aj nálezy z iných forenzných artefaktov.

Tools\Get-ZimmermanTools>PECmd.exe -f Windows\prefetch\POWERSHELL.EXE-920BBA2A.pf --csv tests --csvf pf_POWERSHELL.EXE-920BBA2A.csv
PECmd version 1.4.0.0
 
Author: Eric Zimmerman ([email protected])
https://github.com/EricZimmerman/PECmd
 
Command line: -f Windows\prefetch\POWERSHELL.EXE-920BBA2A.pf --csv tests --csvf pf_POWERSHELL.EXE-920BBA2A.csv
...
Processing 'Windows\prefetch\POWERSHELL.EXE-920BBA2A.pf'
 
Created on: 2021-08-29 15:15:26
Modified on: 2021-08-29 15:18:29
Last accessed on: 2021-09-15 13:29:47
 
Executable name: POWERSHELL.EXE
Hash: 920BBA2A
File size (bytes): 180,546
Version: Windows 10
 
Run count: 2
Last run: 2021-08-29 15:18:20
Other run times: 2021-08-29 15:15:16
 
Volume information:
 
#0: Name: \VOLUME{01d788bdfb9021c1-34fc4808} Serial: 34FC4808 Created: 2021-08-03 23:19:18 Directories: 83 File references: 212
 
Directories referenced: 83
 
00: \VOLUME{01d788bdfb9021c1-34fc4808}\$EXTEND
01: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA
02: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAMDATA\MICROSOFT
...
66: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAM FILES\WINDOWSPOWERSHELL
67: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAM FILES\WINDOWSPOWERSHELL\MODULES
68: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAM FILES\WINDOWSPOWERSHELL\MODULES\PSREADLINE
69: \VOLUME{01d788bdfb9021c1-34fc4808}\PROGRAM FILES\WINDOWSPOWERSHELL\MODULES\PSREADLINE\2.0.0
70: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS
71: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE
72: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE\APPDATA
73: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE\APPDATA\LOCAL
74: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE\APPDATA\LOCAL\MICROSOFT
75: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE\APPDATA\LOCAL\MICROSOFT\WINDOWS
76: \VOLUME{01d788bdfb9021c1-34fc4808}\USERS\JOE\APPDATA\LOCAL\MICROSOFT\WINDOWS\POWERSHELL
...

Odkazy