İçeriğe atla
0 XP 0
13 dkderinleşmeyle 15 dk60 XP7 etkinlik

Kayıt defteri ve kullanıcı izleri

Bu derste
  • Windows kayıt defteri kovanlarından kalıcılık anahtarlarını, Prefetch ve Amcache çalıştırma izlerini, USB geçmişini ve kullanıcı etkinliğini okumayı öğren.
  • Bu derste fin-pc12 kovanlarından WinUpdateSvc kalıcılığını, svcupd.exe'nin çalıştırma izlerini ve gönderdiği veri miktarını çıkaracaksın.
  • Prefetch, Amcache ve ShimCache üçlüsü program çalıştı mı sorusunu farklı açılardan yanıtlar.

Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +60 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

Windows kayıt defteri, sistemin ve kullanıcının davranış defteridir. Hizmetler, başlangıç programları, takılan USB bellekler, açılan belgeler ve çalıştırılan komutlar burada iz bırakır. Kullanıcı bunları bilerek yazmaz, sistem yazar.

Saldırganın gözden kaçırdığı izler bu yüzden çoğu kez buradadır. Bu derste önce kovanları ve imajdan nasıl çıkarıldıklarını göreceksin. Sonra fin-pc12 makinesindeki kalıcılık kaydını bulacak, svcupd.exe'nin çalıştığını birkaç ayrı kaynakla kanıtlayacaksın. Ardından dikkatle okunması gereken ShimCache, SRUM ve USB izlerine, en son da kullanıcının neyi açtığını anlatan kısayol dosyalarına geçeceksin.

Kovanlar, ControlSet ve kirli kovan

Kayıt defteri tek dosya değildir, kovan (hive) denen birkaç dosyadan oluşur. SYSTEM, SOFTWARE, SAM, SECURITY ve DEFAULT kovanları C:\Windows\System32\config altında durur. Kullanıcıya ait NTUSER.DAT dosyası kullanıcı klasörünün kökünde, UsrClass.dat ise AppData\Local\Microsoft\Windows altında bekler. Amcache.hve de kovan biçimindedir ama kayıt defterine bağlanmaz.

Canlı sistemde kovanlar kilitlidir ve sıradan bir kopyalama komutuyla alınamaz. İmajdan icat ile çeker, RegRipper, RECmd ya da Registry Explorer ile açarsın. Canlı makinede regedit ile kovanı açıp bir değeri düzeltmek ise delili değiştirir ve anahtarın son yazma zamanını ezer.

Kovan          Diskteki yeri                                                  Bağlandığı yer
SYSTEM         C:\Windows\System32\config\SYSTEM                              HKLM\SYSTEM
SOFTWARE       C:\Windows\System32\config\SOFTWARE                            HKLM\SOFTWARE
SAM            C:\Windows\System32\config\SAM                                 HKLM\SAM
SECURITY       C:\Windows\System32\config\SECURITY                            HKLM\SECURITY
DEFAULT        C:\Windows\System32\config\DEFAULT                             HKU\.DEFAULT
NTUSER.DAT     C:\Users\<ad>\NTUSER.DAT                                       HKCU
UsrClass.dat   C:\Users\<ad>\AppData\Local\Microsoft\Windows\UsrClass.dat     HKCU\Software\Classes
Amcache.hve    C:\Windows\AppCompat\Programs\Amcache.hve                      bağlanmaz, ayrı açılır
Kovanların diskteki yeri ve çalışan sistemde bağlandıkları dal. Her kovanın yanında .LOG1 ve .LOG2 dosyaları durur.

SYSTEM kovanında CurrentControlSet diye bir anahtar yoktur. O ad çalışan sistemin kurduğu bir bağlantıdır. İmajda ControlSet001 ve ControlSet002 gibi kopyalar görürsün.

Hangisinin etkin olduğunu Select anahtarındaki Current değeri söyler; değer 1 ise ControlSet001 okunur. Yalnız birini okuyup ötekini atlamak sık yapılan bir hatadır, çünkü eski kopyada silinmiş bir hizmet hâlâ durabilir. Her kovanın bir de işlem günlüğü vardır.

.LOG1 ve .LOG2 dosyaları henüz kovana işlenmemiş değişiklikleri tutar. Günlükleri bırakıp yalnız kovanı alırsan son dakikaların değişikliklerini kaybedersin. RECmd ve Registry Explorer bu kirli kovanı günlüklerle birleştirir.

Anahtarların son yazma zamanı vardır, değerlerin yoktur. Bir değer eklendiğinde ya da değiştiğinde, içinde bulunduğu anahtarın zamanı güncellenir. Bu yüzden kalıcılık anahtarının son yazma saati olayın zaman çizelgesine doğrudan girer ve kalıcılığın ne zaman kurulduğunu dakikasıyla gösterir. Sınırını da bil: zaman, anahtarın altındaki hangi değerin değiştiğini söylemez.

Yalnız o anahtarda bir şeyin değiştiğini söyler. Aynı anahtarda meşru bir güncelleme sonradan olduysa saldırganın yazdığı an ezilmiş olabilir.

Derinleş:Kovanın içi: regf, hbin ve hücreler

Kovan dosyası 4096 baytlık bir başlıkla açılır ve başlık regf imzasıyla başlar. Başlıkta iki sıra numarası durur. Kovan temiz kapatıldıysa ikisi eşittir. Eşit değilse kovan kirlidir ve işlem günlükleri birleştirilmeden okunmamalıdır.

Başlığın ardından hbin imzalı, 4096 baytın katı büyüklükte bloklar gelir. Asıl veri bu blokların içindeki hücrelerdedir. nk hücresi bir anahtardır ve son yazma zamanını taşır. vk hücresi bir değerdir: adı, türü ve verisi.

sk hücresi güvenlik tanımlayıcısını tutar. Alt anahtar listeleri lf, lh, li ve ri adlı hücrelerde durur. Her hücrenin başında boyutu yazar. Kullanımdaki hücrenin boyutu eksi, boş hücrenin boyutu artı işaretlidir.

Silinen bir anahtar ya da değer, hücresi başka veriyle ezilene kadar boş hücre olarak kovanda kalır. Registry Explorer gibi araçlar bu boş hücreleri tarar ve silinmiş anahtarları geri getirir. Saldırganın sildiği bir Run değeri bazen böyle bulunur.

Etkinlik 1 / 7

Kovanı içeriğiyle eşleştir.

Soldan bir tane seç, sağdan eşini seç. Kullanılmış bir seçeneği yeniden seçersen yeni öğeye taşınır.

Kalıcılık anahtarları ve görevler

Kalıcılık, saldırganın makine yeniden başladığında da çalışmaya devam etmesidir. Kayıt defterinde birkaç klasik yeri vardır. Run ve RunOnce anahtarları oturum açılışında program başlatır.

HKLM altındaki kayıt her kullanıcı için, HKCU altındaki yalnız o kullanıcı için çalışır. Services anahtarı programı hizmet olarak, çoğu kez SYSTEM yetkisiyle başlatır. Winlogon altındaki Shell ve Userinit değerleri de oturum açılışına bağlanır.

Bir hizmetin yolu C:\Users\Public altını gösteriyorsa durup bakarsın. Meşru hizmetler System32 ya da Program Files altından çalışır. Yol, adın kendisinden daha çok şey söyler: WinUpdateSvc adı masum görünür, Public klasörü öyle görünmez.

$ rip.pl -r /eviz/fin-pc12/SYSTEM -p services | grep -i -B1 -A2 public
Name        : WinUpdateSvc
ImagePath   : C:\Users\Public\svcupd.exe
Start       : 2 (Automatic)
LastWrite   : 2026-09-14 00:10:24Z

$ rip.pl -r /eviz/fin-pc12/NTUSER.DAT -p runmru
MRUList = ba
a  cmd /c powershell -enc SQBFAFgA...
b  \\10.20.30.10\c$
RegRipper eklentileri kovanı okunur çıktıya çevirir. Public klasöründen çalışan hizmet klasik kalıcılık izidir.

İlk komut SYSTEM kovanındaki hizmetleri listeler ve Public klasörünü süzer. WinUpdateSvc otomatik başlar, Start değeri 2'dir. Anahtar 00:10:24'te, yani yerel saatle 03:10'da yazılmıştır.

İkinci komut NTUSER.DAT içindeki RunMRU listesini okur. Bu liste Win+R ile açılan Çalıştır kutusuna yazılan komutları saklar. MRUList değeri sırayı verir ve b en yenidir.

a satırında kodlanmış bir PowerShell komutu, b satırında dc01 sunucusunun yönetim paylaşımı var. Son yıllarda sahte doğrulama sayfaları kullanıcıya Win+R ile komut yapıştırtıyor. RunMRU bu komutu olduğu gibi saklar ve olayın başlangıcını gösterebilir.

Zamanlanmış görevler ayrı bir kalıcılık kanalıdır (MITRE ATT&CK T1053.005). Görev dosyaları C:\Windows\System32\Tasks altında XML biçiminde durur ve çalıştırılacak komutu açıkça taşır. Command alanı programı, Arguments alanı parametreleri verir.

Dosya UTF-16 yazıldığı için aramadan önce iconv ile çevirirsin. Tespit tarafında her kanalın bir olayı vardır. Hizmet kurulumu System günlüğüne 7045, denetim açıksa Security günlüğüne 4697 olarak düşer.

Görev oluşturma, ilgili denetim açıksa 4698 olayını üretir. Sysmon kullanılıyorsa 12 ve 13 numaralı olaylar Run ve Services anahtarlarındaki değişiklikleri anında yakalar. Bu anahtarlar için yazılmış tek bir kural bile çoğu kalıcılık girişimini görünür kılar.

$ fls -r -p -o 2048 fin-pc12.dd | grep 'System32/Tasks/'
r/r 3120-128-1:   Windows/System32/Tasks/OneDriveGuncelle
$ icat -o 2048 fin-pc12.dd 3120 | iconv -f UTF-16 -t UTF-8 | grep -A3 '<Exec>'
    <Exec>
      <Command>C:\Users\Public\svcupd.exe</Command>
      <Arguments>--gizli</Arguments>
    </Exec>
İkinci kalıcılık kanalı: OneDrive adını taklit eden bir görev aynı ikiliyi başlatıyor.

Etkinlik 2 / 7

fin-pc12 SYSTEM kovanındaki hizmetleri RegRipper ile listele. Kovan /eviz/fin-pc12/SYSTEM yolunda.

ogrenci@lab

Etkinlik 3 / 7

fin-pc12 kayıt defteri çıktısında şüpheli satırları işaretle.

Şüpheli satırlara tıkla. Birden fazla olabilir.

Çalıştırma ve erişim izleri

Çalıştırma izleri birkaç yerde birikir. Prefetch dosyaları C:\Windows\Prefetch altında durur. Windows bir programı çalıştırdığında onun ilk saniyelerde açtığı dosyaları not eder ve sonraki açılışı hızlandırmak için bu listeyi saklar.

Dosya adı program adı ile bir özetten oluşur. Özet programın yolundan hesaplanır, bu yüzden aynı ad farklı klasörden çalışırsa ikinci bir Prefetch dosyası doğar. Windows 8 ve sonrası son sekiz çalıştırma zamanını ve toplam sayıyı tutar.

Windows 10 ve 11 bu dosyaları sıkıştırır, PECmd açar. Sunucu sürümlerinde Prefetch varsayılan olarak kapalıdır. Dosya bulamamak programın çalışmadığını kanıtlamaz.

> PECmd.exe -f E:\eviz\fin-pc12\Prefetch\SVCUPD.EXE-3A1F02C4.pf
Executable name: SVCUPD.EXE
Hash: 3A1F02C4
Version: Windows 10 or Windows 11

Run count: 2
Last run: 2026-09-14 01:11:41
Other run times: 2026-09-14 00:07:54

Volume information:
#0: Name: \VOLUME{01dd1f4a7c3e9b20-2c8ef6b1} Serial: 2C8EF6B1 Directories: 14 File references: 52

Files referenced: 52
...
31: \VOLUME{01dd1f4a7c3e9b20-2c8ef6b1}\USERS\PUBLIC\SVCUPD.EXE
32: \VOLUME{01dd1f4a7c3e9b20-2c8ef6b1}\USERS\PUBLIC\CFG.DAT
PECmd çıktısından seçilmiş alanlar. Zamanlar UTC'dir.

Çıktıyı oku. Run count 2, programın iki kez çalıştığını söyler. İlk çalıştırma 00:07:54'te, dosya diske düştükten on saniye sonradır. İkincisi 01:11:41'de, makine yeniden başladıktan hemen sonradır, yani hizmet açılışta kendiliğinden başlamış.

Prefetch zamanı sürecin başladığı andan birkaç saniye sonrasını gösterebilir, çünkü Windows dosyayı ilk saniyelerin izlemesinden sonra yazar. Birim seri numarası fsstat çıktısındakiyle aynıdır. Başvurulan dosyalar listesinde svcupd.exe'nin hemen ardından CFG.DAT görünüyor ve sıradaki inceleme hedefi odur.

İkinci kaynak Amcache.hve'dir. Programın tam yolunu, boyutunu ve SHA-1 özetini kaydeder, bu yüzden dosya silinmiş olsa bile özetle tehdit istihbaratında arama yaparsın. Amcache güçlü bir işarettir ama tek başına kesin kanıt sayılmaz.

UserAssist, kullanıcının Gezgin üzerinden başlattığı programları sayar. Değer adları ROT13 ile kodlanır ve her kayıt çalıştırma sayısını ve son zamanı taşır. BAM kayıtları ise SYSTEM kovanında kullanıcı başına son çalıştırma zamanını tutar.

$ rip.pl -r /eviz/fin-pc12/NTUSER.DAT -p userassist
{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}
2026-09-14 00:06:52Z
  {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\cmd.exe (1)
2026-09-13 07:02:31Z
  {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\notepad.exe (4)

Ham değer adı: {1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\pzq.rkr

> AmcacheParser.exe -f E:\eviz\fin-pc12\Amcache.hve --csv E:\cikti
FullPath,SHA1,FileKeyLastWriteTimestamp
c:\users\public\svcupd.exe,9f2c61e0d0a4b8e37c5a1d92f04b6e8a3c7d1e55,2026-09-14 00:07:58
UserAssist yolu bilinen klasör kimliğiyle yazar: 1AC14E77 ile başlayan kimlik System32 klasörüdür. Amcache satırında seçilmiş sütunlar var.

Kayıt defteri kullanıcının neye baktığını da anlatır. RecentDocs anahtarı son açılan belgeleri uzantıya göre gruplar ve sırayı MRUListEx değerinde tutar. ShellBags ise Gezgin'de açılan her klasörün görünüm ayarını saklar. Yan etkisi değerlidir: klasör silinmiş olsa, USB bellekte ya da ağ paylaşımında dursa bile gezinti izi kalır.

ShellBags çoğunlukla UsrClass.dat içindedir. Bu izler çalıştırmayı değil erişimi anlatır. Soruyu doğru sor: program çalıştı mı, kalıcılık kuruldu mu, dosyaya ya da klasöre erişildi mi? Her sorunun kendi kaynağı vardır ve kaynakları karıştırmak yanlış cümle kurdurur.

Etkinlik 4 / 7

Artefaktı yanıtladığı soruya göre ayır.

Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.

0/6 seçenek yerleşti.

Dikkatle okunacak izler: ShimCache, SRUM ve USB

ShimCache, resmî adıyla AppCompatCache, SYSTEM kovanında durur. Windows uyumluluk denetimi için gördüğü programların yolunu ve dosyanın değişim zamanını yazar. Burada iki tuzak var. Birincisi, kayıttaki zaman çalıştırma zamanı değil, dosyanın $STANDARD_INFORMATION değişim damgasıdır.

İkincisi çalıştırma işaretidir. Windows 10 ve 11 her kaydın veri alanının sonunda bir işaret tutar ve AppCompatCacheParser bunu Executed sütununa Yes ya da No olarak yazar. Yes büyük olasılıkla çalıştırmayı gösterir. No ise programın çalışmadığını kanıtlamaz, çünkü çalıştığı bilinen sistem dosyalarında da No görülür.

ShimCache ayrıca bellekte tutulur ve kovana kapanışta yazılır. Makine kapanmadan alınan imajda son girdiler eksik kalabilir. fin-pc12 01:11'de yeniden başladığı için olay gecesinin girdileri kovanda duruyor.

> AppCompatCacheParser.exe -f E:\eviz\fin-pc12\SYSTEM --csv E:\cikti
ControlSet,CacheEntryPosition,Path,LastModifiedTimeUTC,Executed
1,0,C:\Users\Public\svcupd.exe,2009-07-14 00:41:12,Yes
1,1,C:\Users\mkaya\AppData\Local\Temp\update.exe,2009-07-14 00:41:12,No

> SrumECmd.exe -f E:\eviz\fin-pc12\SRUDB.dat -r E:\eviz\fin-pc12\SOFTWARE --csv E:\cikti
Timestamp,ExeInfo,BytesSent,BytesReceived
2026-09-14 01:00:00,\device\harddiskvolume3\users\public\svcupd.exe,30408704,118272
2026-09-14 02:00:00,\device\harddiskvolume3\users\public\svcupd.exe,12582912,40960
ShimCache satırlarındaki tarih bükülmüş değişim damgasıdır, çalıştırma anı değil. update.exe satırındaki No, dosyanın çalışmadığını kanıtlamaz. SRUM ağ tablosundan seçilmiş sütunlar.

SRUM (System Resource Usage Monitor) C:\Windows\System32\sru\SRUDB.dat veritabanında uygulama başına kaynak kullanımını tutar. Ağ tablosu her uygulamanın gönderdiği ve aldığı baytı yaklaşık saatlik dilimlerle yazar. Veri sızdırma şüphesinde hangi programın ne kadar veri gönderdiğini buradan okursun. Yukarıdaki iki satırı topla: svcupd.exe 42991616 bayt, yani 41 MB gönderdi ve çok az veri aldı.

Gönderilen ile alınan arasındaki bu dengesizlik sızdırmanın klasik görüntüsüdür. Zaman sütunu kaydın yazıldığı dilimi verir, trafiğin tam dakikasını vermez. Dakikayı ağ kaydı ya da güvenlik duvarı günlüğü söyler.

USB izleri de kayıt defterinde bir zincir kurar. SYSTEM kovanındaki USBSTOR anahtarı cihazın üreticisini, modelini ve seri numarasını tutar. Yine SYSTEM kovanındaki MountedDevices anahtarı cihaza hangi sürücü harfinin verildiğini gösterir.

Kullanıcının NTUSER.DAT dosyasındaki MountPoints2 anahtarı, cihazı hangi kullanıcının açtığını söyler. C:\Windows\INF\setupapi.dev.log dosyası ise cihazın bu makineye ilk takıldığı anı yazar. Dört kaynağı birleştirince cümle kurulur: şu seri numaralı bellek, şu gün E: harfiyle, mkaya oturumunda açıldı. Sızdırma şüphesinde SRUM ağ yolunu, USB zinciri fiziksel yolu gösterir.

Derinleş:USB zamanlarının üçlüsü ve sahte seri numarası

USBSTOR altındaki her cihaz anahtarının Properties dalında {83da6326-97a6-4088-9453-a1923f573b29} kimlikli bir grup durur. Windows 8 ve sonrasında bu grubun 0064 değeri cihazın ilk kurulum zamanını, 0066 değeri son takılma zamanını, 0067 değeri son çıkarılma zamanını tutar. Böylece setupapi.dev.log dosyası silinmiş olsa bile ilk takılma anına ulaşırsın. Seri numarasına da dikkat et.

İkinci karakteri & olan bir seri numarası, cihazın kendi seri numarasını bildirmediğini ve Windows'un ona yerel bir kimlik ürettiğini gösterir. Böyle bir kimlik başka bir makinede aynı cihaz için farklı çıkar. İki makinede aynı belleği seri numarasıyla eşleştiremezsin ve birim adı, kapasite ya da disk imzası gibi ikincil alanlara geçersin. Kurumsal ortamda asıl cevap önlemdedir: USB depolamayı grup ilkesiyle kısıtlamak ve cihaz takılma olaylarını merkezî kayda göndermek.

Etkinlik 5 / 7

Bir programın diskte durduğunu gösterir ama çalıştığını tek başına kanıtlamaz. Bu hangi artefakttır?

Etkinlik 6 / 7

USB zincirindeki kaynaklardan hangileri SYSTEM kovanında durur?

Birden fazla doğru var.

Kullanıcı profili: LNK, JumpList ve analiz düzeni

Kullanıcı izlerinin bir kısmı kayıt defterinde değil, profil klasöründe durur. Bir belge Gezgin'den açıldığında Windows, AppData\Roaming\Microsoft\Windows\Recent altına bir kısayol (LNK) dosyası yazar. LNK dosyası hedefin tam yolunu, boyutunu, hedefin kendi MAC damgalarını ve birimin seri numarasını taşır.

Hedef silinse bile kısayol kalır. JumpList dosyaları ise uygulama başına son açılan dosyaları listeler ve aynı yapıdaki kısayolları tek dosyada toplar. LECmd ve JLECmd bu dosyaları okur. Aşağıdaki kısayol, çöp kutusuna atılmış fatura_eylul.docm belgesinin açıldığı anı saklıyor.

> LECmd.exe -f E:\eviz\fin-pc12\Users\mkaya\AppData\Roaming\Microsoft\Windows\Recent\fatura_eylul.docm.lnk
Source Created:   2026-09-14 00:05:48
Target Created:   2026-09-14 00:05:31
Target Modified:  2026-09-14 00:05:31
Target Accessed:  2026-09-14 00:05:48
File size:        48213
Volume Serial:    2C8EF6B1   Drive type: Fixed storage media (Hard drive)
Local path:       C:\Users\mkaya\Downloads\fatura_eylul.docm
LECmd çıktısından seçilmiş alanlar. Source kısayolun kendisi, Target açılan belgedir.

Kısayolun doğum zamanı 00:05:48'dir ve belgenin açıldığı anı verir. Hedefin doğumu 00:05:31'dir, yani belge indirildikten 17 saniye sonra açılmış. Boyut ve birim seri numarası, çöp kutusundaki $I kaydıyla ve Prefetch çıktısıyla aynıdır. Kaynakları birleştirince olay sırası çıkar: belge yerel saatle 03:05'te indi ve açıldı, 03:07'de update.exe düştü, 03:08'de belge çöpe atıldı, 03:10'da hizmet kuruldu.

Her kullanıcı için aynı paketi toplarsın: profil kökündeki NTUSER.DAT, AppData altındaki UsrClass.dat, Recent klasörü ve JumpList dosyaları. Kovan analizini bir kontrol listesiyle yürüt: kalıcılık anahtarları, çalıştırma izleri, kullanıcı etkinliği, USB kayıtları ve ağ profilleri sırayla bakılır. Liste olmadan her incelemede farklı bir şeyi atlarsın. Aracın yorumunu sonradan denetleyebilmek için ham değeri de ekte sakla.

Etkinlik 7 / 7

Kullanıcıya özel kayıt defteri kovanının dosya adı nedir? ____

Bu derste bir hata mı gördün? Bildir