
A nyomkövető fájlok, vagyis a Prefetch-fájlok már a Windows XP óta léteznek. Azóta segítették a digitális kriminalisztikai és számítógépes incidenskezelő szakembereket a programok indításának nyomainak nyomon követésében, beleértve a kártékony szoftvereket is. A Group-IB vezető számítógépes kriminalisztikai szakértője, Oleg Skulkin elmondja, hogy mit lehet találni a Prefetch-fájlok segítségével és hogyan lehet ezt megtenni.
A Prefetch-fájlok a következő könyvtárban találhatók %SystemRoot%Prefetch és a programok indítási folyamatának felgyorsítására szolgálnak. Ha megnézzük bármelyik ilyen fájlt, látni fogjuk, hogy a neve két részből áll: az végrehajtható fájl nevéből és az elérési út ellenőrző összegéből, amely nyolc karakterből áll.
A Prefetch-fájlok rengeteg hasznos információt tartalmaznak kriminológiai szempontból: az végrehajtható fájl neve, az indítások száma, a fájlok és könyvtárak listája, amelyekkel az végrehajtható fájl interakcióba lépett, és természetesen az időbélyegek. A kriminalisták általában a Prefetch-fájlok létrehozásának dátumát használják a program első indításának időpontjának meghatározására. Ezenkívül ezek a fájlok tárolják a program utolsó indításának dátumát is, és a 26-os verziótól (Windows 8.1) kezdve - az utolsó hét indítás időbélyegét is.
Nézzük meg az egyik Prefetch-fájlt, vonjuk ki az adatokat Eric Zimmermann PECmd eszközével, és nézzük meg mindegyik részét. A bemutató kedvéért ki fogom vonni az adatokat a fájlból CCLEANER64.EXE-DE05DBE1.pf.
Tehát kezdjük felülről. Természetesen megvan a fájl létrehozásának, módosításának és hozzáférésének időbélyege:

Ezek után következik az végrehajtható fájl neve, az elérési út ellenőrző összege, az végrehajtható fájl mérete, valamint a Prefetch-fájl verziója:

Mivel Windows 10-tel van dolgunk, a következő információt látjuk: az indítások számát, az utolsó indítás dátumát és időpontját, és még hét időbélyeget, amely a korábbi indítási dátumokat jelzi:

Ezek után következik a kötet információja, beleértve annak sorozatszámát és létrehozásának dátumát:
![]()
Végül, de nem utolsósorban - az a könyvtárak és fájlok listája, amelyekkel az végrehajtható fájl interakcióba lépett:

Tehát, a programfájl által használt könyvtárak és fájlok pontosan azok, amelyekre ma szeretnék fókuszálni. Ezek az adatok lehetővé teszik a digitális kriminalisztikával, számítógépes incidens válaszadással vagy proaktív fenyegetéskereséssel foglalkozó szakemberek számára, hogy ne csak megállapítsák, hogy egy adott fájl futott, hanem bizonyos esetekben visszaállítsák a konkrét támadási taktikákat és technikákat. Manapság a támadók gyakran használnak olyan eszközöket, mint például az SDelete, az adatok visszavonhatatlan törlésére, ezért a különböző taktikák és technikák használatának nyomai helyreállításának képessége elengedhetetlen a modern védelmezőknek — számítógépes kriminalistáknak, incidens válaszadó szakembereknek és Threat Hunter szakértőknek.
Kezdjük az Initial Access (TA0001) taktikával és a legnépszerűbb technikával — Spearphishing Attachment (T1193). Néhány kiberbűnöző csoport kreatívan közelíti meg az ilyen mellékletek kiválasztását. Például a Silence csoport CHM (Microsoft Compiled HTML Help) formátumú fájlokat használt erre. Így előállt egy újabb technika — Compiled HTML File (T1223). Ezek a fájlok az alábbiak segítségével futtathatók hh.exe, így ha kinyerjük az adatokat a Prefetch fájljából, megtudhatjuk, melyik fájl nyílt meg az áldozat számára:

Folytassuk a valós esetek példáival, és lépjünk a következő taktikára, az Execution (TA0002) stratégiára és a CSMTP (T1191) technikára. A Microsoft Connection Manager Profile Installer (CMSTP.exe) használható a támadók által rosszindulatú scriptek futtatására. Egy jó példa a Cobalt csoport. Ha kinyerjük az adatokat a Prefetch fájlból cmstp.exe, újra megtudhatjuk, mi volt az, ami futott:

Egy másik népszerű technika a Regsvr32 (T1117). Regsvr32.exe támadók által gyakran használt fájl a végrehajtásra. Itt van még egy példa a Cobalt csoporttól: ha kinyerjük az adatokat a Prefetch fájlból regsvr32.exe, újra láthatjuk, mi indult el:

A következő taktikák a Persistence (TA0003) és a Privilege Escalation (TA0004), valamint az Application Shimming (T1138) technika. Ezt a technikát a Carbanak/FIN7 használta a rendszerbe való beágyazódásra. Általában a programok kompatibilitásáról szóló adatbázisok (.sdb) kezelésére sdbinst.exehasználatos. Ezért a programfájl Prefetch fájlja segíthet nekünk megismerni az ilyen adatbázisok nevét és elhelyezkedését:

Ahogyan az ábrán látható, nemcsak a telepítéshez használt fájl nevét, hanem a telepített adatbázis nevét is megkapjuk.
Nézzük meg az egyik legtipikusabb példát a hálózati terjesztésre (TA0008) - a PsExec, amely a rendszergazdai megosztott erőforrásokat használja (T1077). Egy PSEXECSVC nevű szolgáltatás (természetesen bármilyen más név is használható, ha a támadók a paramétert használták -r) létrejön a célrendszeren, így ha adatokat nyerünk ki a Prefetch fájlból, láthatjuk, hogy mi futott le:

Talán a fájlok törlésével (T1107) fejezem be, amivel kezdtem. Ahogy már említettem, sok támadó az SDelete-t használja a fájlok véglegesen történő törlésére a támadás életciklusának különféle szakaszaiban. Ha megnézzük a Prefetch fájl adatait sdelete.exe, láthatjuk, hogy pontosan mi lett törölve:

Természetesen ez nem kimerítő listája a Prefetch fájlok elemzése során felfedezhető technikáknak, de elegendő kell legyen ahhoz, hogy megértsük, ezek a fájlok nemcsak a végrehajtás nyomainak felfedezésére, hanem a támadók konkrét taktikáinak és technikáinak rekonstrukciójára is segíthetnek.
Forrás: habr.com
