Prefetch Klasörü
Bilgisayarda Çalıştırılan Uygulamaların
Bilgisinin Alınması
Bir programı ikinci kez çalıştırdığınızda
daha hızlı çalıştığını görmüşsünüzdür. Windows, uygulamaların daha hızlı
çalışması için çeşitli iyileştirmeler yapar. Bunun bir yolu çalıştırılan
uygulamaların bilgisini saklamaktır. Windows çalıştırılan uygulamaların
bilgisini \Windows\Prefetch klasöründe saklar. Bu
klasörde, çalıştırılan her uygulama için .pf uzantılı
bir bir önyükleme (prefetch)
dosyası yaratılır. Dosyada uygulamanın kimlik bilgileri, ulaştığı dosyalar,
çalıştırılma zamanları gibi bilgiler bulunur.
Powershell’de vereceğimiz dir 'C:\Windows\Prefetch'
| sort LastWriteTime -desc komutu ile Prefetch
klasörünün içeriğini görüntüleyebiliriz.
Şekil:
Kullanıcının ve işletim sisteminin çalıştırdığı uygulamaların
bilgisi
Prefetch klasörü Windows
tarafından uygulamaların performansını arttırmak için kullanılır. Ama aynı
zamanda bilgisayarda hangi uygulamaların çalıştırıldığını görmek için de kullanılabilir.
Özellikle işletmelerde kuşkulu işlemler yapan bir kullanıcının bilgisayarında
bu uygulama listesinin gözden geçirilmesi büyük önem taşır.
Bu klasörde bulunan .pf
dosyaları doğrudan okunabilir bir içeriğe sahip değil. Ama .pf
dosyalarını okuyup içindeki bilgileri görüntüleyen çok sayıda araç da var.
Bunlardan birisi PECMD adındaki küçük program. Bu programı https://f001.backblazeb2.com/file/EricZimmermanTools/net6/PECmd.zip
adresinden indirebilirsiniz. Sıkıştırılmış dosya içeriğini ben \windows\prefetch klasörüne
kopyalıyorum, programı oradan çalıştırıyorum. Aşağıdaki şekle bakınız:
Şekil:
Pecmd programı ile bir pf
dosyasının içeriğini görüntüleme
Notepad programının kullanımına ilişkin
bilgi almak istediğim için öncelikle dir Notepad*.pf
komutunu vererek Notepad ile ilişkili dosyaların listesini alıyorum. Dosya
adını kopyalıyorum, sonra da pecmd -f
NOTEPAD.EXE-C5670914.pf komutuyla pf dosyasının
içeriğini görüntülüyorum.
Şekildeki “Other
run times” satırına dikkat
edin. Bu satırda kullanıcının ilgili programı (bu örnekte Notepad.exe) en son
hangi tarihlerde kullandığını görebiliyoruz.
Çalışıp çalışmadığını, kaç kez çalıştırıldığını
denetlememiz gereken uygulamalardan birisi rundll32.exe uygulamasıdır.
Rundll.exe programı bir DLL dosyasının içindeki
işlevlere ulaşıp onları tek tek çalıştırmaya yarar.
Normalde,
sıradan bir kullanıcının rundll.exe ile hiç işinin olmaması gerekir. Sıradan kullanıcının
bilgisayarında bu programın çalıştırılmış
olduğunu görürsek birisi ya da bir
yazılım bir şeyleri zorluyor demektir. Örneğin, Solorigate
zararlısı rundll32.exe'den yararlanarak bazı sistem DLL'lerindeki
işlevleri çalıştırmak ister.
Bir
başka denetlememiz gereken program da mshta.exe adındaki programdır. Bu program
.hta uzantılı dosyaları açıp görüntülemeye yarar. Hta uzantılı dosyalar, içinde vbscript
ve jscript kodları bulunabilecek dosyalardır. Hacker’lar mshta.exe programını kullanarak İnternet
üzerinden kendi zararlı kodlarını içeren hta
dosyalarını indirmeye çalışırlar. Yine mshta.exe’nin
betik çalıştırabilme işlevinden yararlanarak İnternet üzerinden dosya
indirmeden de zararlı işlemler yapmaya çalışabilirler. Örnek olarak, aşağıdaki
koda bakın
mshta.exe
"about:<hta:application><script language="VBScript">Close(Execute("CreateObject(""Wscript.Shell"").Run%20""powershell.exe%20-nop%20-Command%20Write-Host%20Merhaba,%20Dünya!;Start-Sleep%20-Seconds%2010"""))</script>'"
Bu
kod Powershell’i çalıştırıyor, Powershell
konsolunda Merhaba Dünya! İletisini görüntülüyor, 10 saniye sonra da Powershell konsolunu kapatıyor. İnternette bu basit örneğin
yanı sıra Registry’ye müdahale eden mshta.exe
örnekleri de var. Kayıt’a müdahale için regedit.exe,
reg.exe gibi programlar varken neden mshta.exe kullanılsın diye sorabilirsiniz.
Regedit.exe ve reg.exe gibi programların çalıştırılması genelde engellenir.
Böyle durumlarda Kayıt’a müdahale için mshta.exe iyi
iş görebilir.
Açıkladığımız
nedenlerle, prefetch klasöründeki mshta.exe ile
başlayan dosyayı incelemekte yarar var. Örnek olarak, benim bilgisayarımdaki
dosyanın içeriğini görmek için pecmd -f
MSHTA.EXE-5D4FFD8E.pf şeklinde bir komut veriyorum. Komutun çıktısında son
çalıştırılma satırlarını inceliyorum:
Şekil:
MSHTA.EXE programının çalıştırılmasına ilişkin bilgiler
Şunu
da anımsamakta yarar var: Mshta.exe’nin her
çalıştırılması bir zararlı yazılım etkinliğine karşılık gelmeyebilir. Kullanıcı
.hta uzantılı bir dosyayı açmış da olabilir.
Prefetch klasöründe denetlenecek
uygulamalar: arp.exe, at.exe, bitsadmin.exe, certutil.exe, cmd.exe, dsget.exe,
dsquery.exe, find.exe, findstr.exe, fsutil.exe, hostname.exe, ipconfig.exe, mshta.exe,
nbstat.exe, net.exe, net1.exe, netdom.exe, netsh.exe, netstat.exe, nltest.exe,
nslookup.exe, ntdsutil.exe, pathping.exe, ping.exe, powershell.exe, qprocess.exe,
query.exe, qwinsta.exe, reg.exe, regsvr32.exe, rundll32.exe, sc.exe,
schtasks.exe, systeminfo.exe, tasklist.exe, tracert.exe, ver.exe, vssadmin.exe,
wevtutil.exe, whoami.exe, wmic.exe, wusa.exe,
comsvcs.dll, dcsync.exe