Windows İşletim Sistemindeki Kritik Sistem Dosyalarının SFC (System File Checker) Aracı ile Bütünlük Kontrolü

Zararlı yazılımların kullandıkları yöntemlerden birisi de sistem dosyalarına bulaşmak ve buralarda hayatlarını devam ettirmektir. Zararlı yazılımların bu aktivitelerine karşı veya herhangi bir sebepten ötürü kritik bir dosyanın bütünlüğü bozulabilir. Bu yazıda kritik bir sistem dosyasının bütünlüğü değiştirilecek ve bu dosyanın bütünlüğünün bozulduğu SFC aracı ile tespit edilecektir.

SFC Aracı ile Kontrol İşlemi

Windows işletim sistemi herhangi bir makineye kurulduktan sonra Windows Kaynak Koruması (Windows Resource Protection – WRP), işletim sistemi genelinde bir tarama yapar ve hassas sistem dosyalarının kopyalarını %SystemRoot% altında değişik lokasyonlara alır.

SFC.exe (System File Checker), Windows Kaynak Koruması tarafından korunan sistem dosyalarında herhangi bir hasar olup olmadığını kontrolünü yapar, ayrıca bu dosyalarda herhangi bir hasar olması durumunda ilgili dosyalardaki hasarlı dosyaları, daha önce doğru çalışan orijinallerinden aldığı kopya dosyalarla değiştirir.

SFC.exe’yi çalıştırabilmek için, cmd.exe Yönetici olarak açılmalı ve sfc.exe /scannow komutu girilmelidir. Bu komut bütün korumalı sistem dosyalarını tarar ve bütünlük kontrolü yapar. İlgili komuta ait ekran görüntüsü aşağıda verilmiştir.

Şekil - 1: SFC ile Bütünlük Kontrolünün Denetlenmesi

Şekil – 1: SFC ile Bütünlük Kontrolünün Denetlenmesi

 

Not: Bu işlem zaman alabilir.

 

SFC Aracının Parametreleri

SFC.exe ile verilecek komutlar şu şekildedir;

  • /scannow -> Korumalı sistem dosyalarının bütünlük kontrolünü sağlar ve hasar görmüş dosyaları onarır.
  • /verifyonly -> Bütünlük kontrolü yapar ama onarımı yapmaz.
  • /scanfile -> Parametre olarak verilecek olan dosyaların bütünlük kontrollerini sağlar ve hasarlı olanları onarır
  • /verifyfile -> Parametre olarak verilen dosyanın bütünlük kontrolünü yapar. (Onarım yapmaz)

Bunlar haricinde Windows işletim sistemi açılmıyorsa, veya donmuşsa, boot ekranında SFC.exe uygulamasını çalıştırıp bütünlük doğrulaması ve onarım yapılmak isteniyorsa;

  • /offbootdir -> Boot esnasındaki onarım için boot dizinini belirtir.
  • /offwindir -> Bot esnasındaki onarım için Windows dizinini belirtir.

 

Kritik Dosyanın Sahipliğin Yapılması

Bu ve sonraki adımda, kritik bir dosya üzerindeki izinleri değiştirildiğinde SFC uygulaması ile bu değişikliğin tespit edilmesi amaçlanmaktadır.

CMD aracının varsayılan olarak sahibi TrustedInstaller adlı kullanıcıdır. CMD aracının sahibini görmek için aşağıdaki adımlar gerçekleştirilir.

C:\Windows\System32 > cmd.exe > Properties > Security sekmesi > Permissions > Advanced > Owner sekmesi > Change owner to > Edit

Şekil - 2: CMD Aracının Sahipliğinin İncelenmesi

Şekil – 2: CMD Aracının Sahipliğinin İncelenmesi

 

Edit butonuna basıldığında aşağıdaki gibi sahiplik değiştirilebilir.

Şekil - 3: CMD Aracının Sahipliğinin Değiştirilmesi

Şekil – 3: CMD Aracının Sahipliğinin Değiştirilmesi

 

Bu işlemin kritik olduğuna dair bir uyarı mesajı ile karşılaşılacaktır.

Şekil - 4: Kritik Dosyanın Sahipliğinin Değiştirildiği Durumda Uyarı Gelmesi

Şekil – 4: Kritik Dosyanın Sahipliğinin Değiştirildiği Durumda Uyarı Gelmesi

 

 

Sahipliği Değiştirilen Kritik Dosyanın İzinlerinin Değiştirilmesi

Bu adımdan sonra CMD aracının erişim kontrol listelerinde aşağıdaki gibi değişiklik yapılır. Administrators grubuna tam yetki verilir. Bunun için aşağıdaki adımlar takip edilir:

C:\Windows\System32 > cmd.exe > Properties > Security sekmesi > Group or user names > Edit > Administrators grubu seçimi > Permissions = Full control

Şekil - 5: Administrators Grubuna CMD Üzerinde Tam Yetki Verilmesi

Şekil – 5: Administrators Grubuna CMD Üzerinde Tam Yetki Verilmesi

 

OK butonuna basıldığında kritik bir değişiklik yapıldığına dair bir uyarı gelecektir.

Şekil - 6: Kritik Dosyanın Yetkilendirmesi Değiştirildiği Durumda Uyarı Gelmesi

Şekil – 6: Kritik Dosyanın Yetkilendirmesi Değiştirildiği Durumda Uyarı Gelmesi

 

 

Yeni Bir CMD Aracının Oluşturulması

Yerel yönetici haklarına sahip olan oturum kullanıcısı, CMD aracını silerek aynı isimde başka bir araç oluşturabilir.

Bu amaçla öncelikle aynı dizinde (C:\Windows\System32) CMD aracının bir kopyası oluşturulur ve eski CMD aracı silinir.

Şekil - 7: CMD Aracının Silinmesi

Şekil – 7: CMD Aracının Silinmesi

 

Daha sonra “cmd” adında bir metin dosyası oluşturulur ve bu dosyanın uzantısı “exe” olarak değiştirilir. Not: Eğer uzantılar otomatik olarak gösterilmiyorsa klasör ve dosya görünüm seçeneklerinden bilinen uzantıların gizlenmemesi için aşağıdaki gibi ayar yapılır.

Herhangi bir klasör > Organize > Folder and search options > View > Hide extensions for known file types

Şekil - 8: Bilinen Dosya Uzantılarının Gösterilmesinin Sağlanması

Şekil – 8: Bilinen Dosya Uzantılarının Gösterilmesinin Sağlanması

 

Sonuçta eski CMD aracı yerine, aynı isime sahip olan exe uzantılı bir metin dosyası oluşturulur. İsim değiştirilmesi sırasında aşağıdaki gibi bir uyarı gelmektedir.

Şekil - 9: cmd.exe Adında Bir Metin Dosyasının Oluşturulması -1

Şekil – 9: cmd.exe Adında Bir Metin Dosyasının Oluşturulması -1

 

Bu uyarı kabul edildikten sonra dosya tipinin bir uygulamaya dönüştüğü gözlenmektedir.

Şekil - 10: cmd.exe Adında Bir Metin Dosyasının Oluşturulması -2

Şekil – 10: cmd.exe Adında Bir Metin Dosyasının Oluşturulması -2

 

CMD Aracının Bütünlüğünün Test Edilmesi

CMD aracının kopyası yönetici olarak başlatılır.

Şekil - 11: cmd_KOPYA.exe Aracının Yönetici Olarak Çalıştırılması

Şekil – 11: cmd_KOPYA.exe Aracının Yönetici Olarak Çalıştırılması

 

Komut satırından CMD aracı için bütünlük kontrolü gerçekleştirilmeye çalışıldığında aşağıdaki gibi bir hata mesajı elde edilir.

Şekil - 12: cmd.EXE Aracının Bütünlük Kontrolünün Gerçekleştirilmesi

Şekil – 12: cmd.EXE Aracının Bütünlük Kontrolünün Gerçekleştirilmesi

 

“C:\Windows\Logs\CBS\CBS.log” dosyasındaki hata mesajı şu şekildedir:

Şekil - 13: Log Dosyasındaki Hata Mesajı

Şekil – 13: Log Dosyasındaki Hata Mesajı

 

Mesaj içeriği aşağıdaki gibidir:

2013-04-23 12:50:22, Info CSI 0000000f [SR] Verifying 1 components
2013-04-23 12:50:22, Info CSI 00000010 [SR] Beginning Verify and Repair transaction
2013-04-23 12:50:22, Info CSI 00000011 Hashes for file member \??\C:\Windows\System32\cmd.exe do not match actual file [l:14{7}]”cmd.exe” :
Found: {l:32 b:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=} Expected: {l:32 b:hlHmY9Xv+5AiBGq0ZFKhAtHzH17bkKyH2NsCP+VLkvA=}
2013-04-23 12:50:22, Info CSI 00000012 [SR] Repairing corrupted file [ml:520{260},l:46{23}]”\??\C:\Windows\System32″\[l:14{7}]”cmd.exe” from store
2013-04-23 12:50:22, Info CSI 00000013 Repair results created:
POQ 1 starts:
0: Move File: Source = [l:192{96}]”\SystemRoot\WinSxS\Temp\PendingRenames\423806f90740ce010700000080052402._0000000000000000.cdf-ms”, Destination = [l:104{52}]”\SystemRoot\WinSxS\FileMaps\_0000000000000000.cdf-ms”
1: Move File: Source = [l:162{81}]”\SystemRoot\WinSxS\Temp\PendingRenames\423806f90740ce010800000080052402.$$.cdf-ms”, Destination = [l:74{37}]”\SystemRoot\WinSxS\FileMaps\$$.cdf-ms”
2: Move File: Source = [l:214{107}]”\SystemRoot\WinSxS\Temp\PendingRenames\c3bd0ff90740ce010900000080052402.$$_system32_21f9a9c4a2f8b514.cdf-ms”, Destination = [l:126{63}]”\SystemRoot\WinSxS\FileMaps\$$_system32_21f9a9c4a2f8b514.cdf-ms”
3: Hard Link File: Source = [l:236{118}]”\SystemRoot\WinSxS\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7600.16385_none_e701b864340d9016\cmd.exe”, Destination = [l:62{31}]”\??\C:\Windows\System32\cmd.exe”
POQ 1 ends.
2013-04-23 12:50:22, Info CSI 00000014 [SR] Verify complete

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.