Windows Kayıt Defteri Kovanları¶
Kayıt defteri kovanları nedir¶
Windows Kayıt Defteri, sistem ve kullanıcı yapılandırmasını ikili kovan dosyalarında saklar. Anahtarlar bir ağaç oluşturur; bir anahtarın altındaki değerler türlendirilmiş veriler içerir. Kayıt defteri artefaktları kalıcılığı, yüklü yazılımları, hizmetleri, hesapları, ağ yapılandırmasını, kullanıcı etkinliğini, güvenlik ayarlarını ve Windows durumunun neredeyse her parçasını tanımlar.
Juntei'nin genel okuyucusu herhangi bir birincil kovanın kodunu çözer, işlem günlüklerini yeniden oynatır, hasarı raporlar ve silinmiş/boş hücre, hücre slack'i, kalıntı, yeniden oynatma öncesi ve yalnızca işlem günlüğünde bulunan kayıtları kurtarabilir.
En iyi sonuç: kovan, anahtar/değer durumunu içeriyordu veya kurtarılabilir biçimde koruyordu. Bir anahtarın son yazılma zamanı, hangi değerin neden değiştiğini değil, anahtarın değiştiğini gösterir.
Yaygın kovanlar ve konumları¶
| Kovan | Tipik yol | Kanıt örnekleri |
|---|---|---|
SYSTEM |
C:\Windows\System32\config\SYSTEM |
Hizmetler, sürücüler, denetim kümeleri, ana bilgisayar adı, bağlı aygıtlar, ShimCache |
SOFTWARE |
C:\Windows\System32\config\SOFTWARE |
Yüklü yazılımlar, TaskCache, profiller, Windows yapılandırması |
SAM |
C:\Windows\System32\config\SAM |
Yerel hesaplar ve hesap meta verileri |
SECURITY |
C:\Windows\System32\config\SECURITY |
Yerel güvenlik ilkesi/sır meta verileri (erişime bağlı) |
DEFAULT |
C:\Windows\System32\config\DEFAULT |
Varsayılan sistem profili yapılandırması |
NTUSER.DAT |
C:\Users\<user>\NTUSER.DAT |
Kullanıcı tercihleri, Run anahtarları, RecentDocs, uygulama etkinliği |
UsrClass.dat |
%LOCALAPPDATA%\Microsoft\Windows\UsrClass.dat |
Kabuk sınıfları, COM/kullanıcı kabuğu etkinliği |
Amcache.hve |
C:\Windows\AppCompat\Programs\Amcache.hve |
Uygulama envanteri (anlamsal çıktı için parse-registry amcache kullanın) |
Yanındaki .LOG, .LOG1 ve .LOG2 dosyalarını da toplayın. Windows çalışırken kopyalanan bir kovan
kirli (dirty) olabilir; işlem günlükleri, birincil dosyanın tek başına henüz yansıtmadığı
kaydedilmiş (commit edilmiş) durumu içerir.
Analist için uyarılar¶
- Bir anahtarın son yazılma zaman damgası tek bir değere değil, anahtara aittir.
- Kayıt defteri değerlerinin genellikle bağımsız bir zaman damgası yoktur.
CurrentControlSet,SYSTEM\Selectüzerinden çözümlenen bir analist/Windows takma adıdır; gerçekte saklanan bir anahtar değildir.- Silinmiş kayıtlar kısmi, güncelliğini yitirmiş, kurtarma kaynakları arasında yinelenmiş veya üzerine yazılmış olabilir.
- Yalnızca işlem günlüğünde bulunan kayıtlar geçmiş/ara durumu gösterir.
recovered_fromdeğerini açıklayın. absent_valuesonucu, sorgulanan anahtarın var olduğu ancak ayrıştırılan durumda o değere sahip olmadığı anlamına gelir; değerin hiç var olmadığını kanıtlamaz.- Dizeler, yollar ve komut satırları yapılandırmadır; yapılandırılan eylemin çalıştığının kanıtı değildir.
- Uygulanabilir günlükleri olmayan kirli bir kovan, durumu eksik gösterebilir veya güncelliğini yitirmiş durumu ortaya çıkarabilir.
Juntei ile ayrıştırma¶
Usage: juntei parse-registry read <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find primary registry hives
-f, --file <FILE> Parse one hive
--log1 <FILE> Supply first transaction log explicitly
--log2 <FILE> Supply second transaction log explicitly
--no-logs Intentionally read the primary file without replay
Filtering:
-k, --key <PATH> Exact key (case-insensitive)
--key-regex <REGEX> Key-path regular expression
--value <NAME> Exact value name ("" is default)
--value-regex <REGEX> Value-name regular expression
--data-regex <REGEX> Rendered-data regular expression
--timeline-start <DATE> Key last-write lower bound
--timeline-end <DATE> Key last-write upper bound
--recover-deleted Recover deleted and transaction-history records
Output:
-o, --output <FILE> Save CSV/JSON/JSONL
-t, --output-type <TYPE> csv, json, or jsonl
--raw-data Include exact bytes for every value
--qword-as-filetime Also render REG_QWORD as FILETIME
# Inspect one persistence key
juntei parse-registry read -f NTUSER.DAT \
-k 'Software\Microsoft\Windows\CurrentVersion\Run' -o run.csv
# Search allocated and recoverable values for a path/name
juntei parse-registry read -f SYSTEM --recover-deleted \
--data-regex 'powershell|cmd\.exe|users\\public' -t jsonl
# Show raw and decoded data for forensic validation
juntei parse-registry read -f SOFTWARE --raw-data -o software.jsonl -t jsonl
Çıktı alanları¶
| Alan | Yorumlama |
|---|---|
Host |
Mevcut sistem bağlamından türetilen ana bilgisayar adı; Juntei onu güvenle belirleyemediğinde boştur. |
HiveType |
Algılanan kovan kategorisi (SYSTEM, SOFTWARE, NTUSER.DAT vb.). Yolları yorumlamak için kullanın. |
SourcePath |
Tam girdi kovanı. Dizin modu ana bilgisayarları/kullanıcıları birleştirdiğinde vazgeçilmezdir. |
RecordType |
key, value, default_value veya absent_value. Yokluk yalnızca sorguya/duruma özgüdür. |
KeyPath |
Kovan kökünün altındaki yol. [unknown], çözümlenemeyen silinmiş üst öğeleri işaretler. |
KeyLastWrittenUTC |
Anahtarın bütün olarak son değiştirilme zamanı. Hangi değerin değiştiğini belirleyemez. |
ValueName |
Adlandırılmış değer; varsayılan/adsız bir değer için boştur. |
ValueType |
Kayıt defteri türü (REG_SZ, REG_DWORD, REG_BINARY vb.). Tür, yorumlamayı etkiler. |
ValueData |
Türe göre işlenmiş değer. Çoklu dizeler JSON'da liste olarak kalır. |
DataSize |
Değerin kaydettiği boyut. Ham baytlar ve Problems ile karşılaştırın. |
ValueDataRaw |
Kod çözme başarısız olduğunda veya --raw-data kullanıldığında tam baytlar. Doğrulama için saklayın. |
ValueU64 |
DWORD/QWORD için JavaScript hassasiyet kaybı olmadan tam sayısal gösterim. |
ValueFiletimeUTC |
İsteğe bağlı QWORD-FILETIME gösterimi. Yalnızca anahtarın şeması FILETIME tanımladığında anlamlıdır. |
AllocationStatus |
allocated, deleted_complete, deleted_partial, residual_value_only veya transaction_log_recovered. Güven düzeyini belirler. |
RecoveredFrom |
free_cell, cell_slack, remnant_data, before_replay veya SYSTEM.LOG1#1234 gibi bir günlük girdisi. |
TransactionLogStatus |
Bu kayıt/kovan bağlamı için clean, replayed, unchanged veya not_applied. |
LogsApplied |
Juntei'nin yeniden oynattığı işlem günlüğü dosya adları. Bunları rapora kaydedin. |
Problems |
Hasar, eksik hücreler, tür uyuşmazlığı, çözümlenemeyen listeler/üst öğeler veya diğer sınırlamalar. |
Kurtarma durumunun yorumlanması¶
| Durum | Anlamı |
|---|---|
deleted_complete |
Silinmiş anahtar/değer, bilinen tam yolu/verisiyle kurtarıldı. Yine de etkin durum değil, geçmiş durumdur. |
deleted_partial |
Yolun, değer listesinin, değerin veya verinin bir kısmının üzerine yazılmış ya da okunamaz durumda. Boşlukları yeniden kullanılmış hücrelerden doldurmayın. |
residual_value_only |
Değer, yeterli anahtar bağlamı olmadan korunmuş; KeyPath bulunmayabilir. |
transaction_log_recovered |
Durum yalnızca yeniden oynatma öncesi/günlük sürümlerinde var; mevcut ayrılmış/boş kayıtlarda yok. |
İnceleme stratejisi¶
- Biliniyorsa tam bir anlamsal anahtarla başlayın; keşif için regex/veri aramasını kullanın.
- İçerikten önce
TransactionLogStatus,AllocationStatus,RecoveredFromveProblemsdeğerlerini denetleyin. - Verileri anahtarın belgelenmiş şemasına göre yorumlayın;
REG_BINARYkendini açıklamaz. - Yapılandırmayı çalışma zamanı kanıtlarıyla (olay günlükleri, Prefetch, SRUM, hizmetler/görevler) ilişkilendirin.
- Yeni veya tartışmalı alanlar için ham verileri saklayın.