RootkitRevealer v1.71

Tarafından Mark Russinovich

Yayımlanma Tarihi: 1 Kasım 2006

DownloadRootkitRevealer'ı indirin(231 KB)
Şimdi Sysinternals Live'dan çalıştırın.

Giriş

RootkitRevealer, gelişmiş bir rootkit algılama yardımcı programıdır. Windows XP (32 bit) ve Windows Server 2003 (32 bit) üzerinde çalışır ve çıktısı, kullanıcı modu veya çekirdek modu rootkit'inin varlığını gösterebilecek Kayıt defteri ve dosya sistemi API tutarsızlıklarını listeler. RootkitRevealer AFX, Vanquish ve HackerDefender gibi birçok kalıcı rootkit'i başarıyla algılar (not: RootkitRevealer, dosyalarını veya kayıt defteri anahtarlarını gizlemeye çalışmayan Fu gibi rootkit'leri algılamaya yönelik değildir). Bunu bir rootkit'in varlığını belirlemek için kullanırsanız lütfen bize bildirin!

Artık bir komut satırı sürümü olmamasının nedeni, kötü amaçlı yazılım yazarlarının yürütülebilir adını kullanarak RootkitRevealer taramasını hedeflemeye başlamış olmasıdır. Bu nedenle RootkitRevealer'ı, windows hizmeti olarak çalışan rastgele adlandırılmış bir kopyasından taramasını yürütecek şekilde güncelleştirdik. Bu yürütme türü bir komut satırı arabirimine uygun değildir. Komut satırı seçeneklerini kullanarak bir dosyaya kaydedilen sonuçlarla otomatik tarama çalıştırabileceğinizi unutmayın. Bu, komut satırı sürümünün davranışıyla eşdeğerdir.

Rootkit nedir?

rootkit terimi, virüsler, casus yazılımlar ve truva atları gibi kötü amaçlı yazılımların casus yazılım engelleyicilerinden, virüsten koruma ve sistem yönetimi yardımcı programlarından varlıklarını gizlemeye çalıştığı mekanizmaları ve teknikleri açıklamak için kullanılır. Kötü amaçlı yazılımın yeniden başlatmaya devam edip etmediğine ve kullanıcı modunda mı yoksa çekirdek modunda mı yürütülmediğine bağlı olarak çeşitli rootkit sınıflandırmaları vardır.

Kalıcı Rootkit'ler
Kalıcı bir rootkit, sistem her önyüklemesinde etkinleştirilen kötü amaçlı yazılımlarla ilişkilidir. Bu tür kötü amaçlı yazılımlar, her sistem başlangıcında veya oturum açtığında otomatik olarak yürütülmesi gereken kod içerdiğinden, kodu Kayıt Defteri veya dosya sistemi gibi kalıcı bir depoda depolaması ve kodun kullanıcı müdahalesi olmadan yürütülecek bir yöntem yapılandırması gerekir.

Bellek Tabanlı Rootkit'ler
Bellek tabanlı rootkit'ler, kalıcı kodu olmayan ve bu nedenle yeniden başlatmayı sürdürmeyen kötü amaçlı yazılımlardır.

Kullanıcı modu Rootkit'leri
Rootkit'lerin algılamadan kaçınmaya çalıştığı birçok yöntem vardır. Örneğin, kullanıcı modu rootkit dosya sistemi dizinlerinin içeriğini listelemek için Explorer ve komut istemi de dahil olmak üzere dosya sistemi araştırma yardımcı programları tarafından kullanılan Windows FindFirstFile/FindNextFile API'lerine yapılan tüm çağrıları kesebilir. Bir uygulama aksi takdirde rootkit ile ilişkili dosyaları tanımlayan girdiler içeren sonuçlar döndürecek bir dizin listesi gerçekleştirdiğinde, rootkit girişleri kaldırmak için çıkışı durdurur ve değiştirir.

Windows yerel API'si, kullanıcı modu istemcileri ve çekirdek modu hizmetleri ile yerel API'nin daha gelişmiş kullanıcı modu rootkit'leri kesme dosyası sistemi, Kayıt Defteri ve işlem numaralandırma işlevleri arasında arabirim görevi görür. Bu, windows API numaralandırmasının sonuçlarını yerel BIR API sabit listesi tarafından döndürülen ile karşılaştıran tarayıcılar tarafından algılanmasını engeller.

Çekirdek modu Rootkit'leri
Çekirdek modu rootkit'leri daha da güçlü olabilir, çünkü yerel API'yi çekirdek modunda kesmekle kalmaz, aynı zamanda doğrudan çekirdek modu veri yapılarını da işleyebilirler. Kötü amaçlı yazılım işleminin varlığını gizlemeye yönelik yaygın bir teknik, işlemi çekirdeğin etkin işlemler listesinden kaldırmaktır. İşlem yönetimi API'leri listenin içeriğine bağlı olduğundan, kötü amaçlı yazılım işlemi Görev Yöneticisi veya İşlem Gezgini gibi işlem yönetimi araçlarında görüntülenmez.

RootkitRevealer Nasıl Çalışır?

Kalıcı rootkit'ler, API'leri kullanan bir sistem görünümünün depolamadaki gerçek görünümden farklı olması için API sonuçlarını değiştirerek çalıştığından, RootkitRevealer en yüksek düzeydeki bir sistem taramasının sonuçlarını en düşük düzeydekiyle karşılaştırır. En yüksek düzey Windows API'dir ve en düşük düzey bir dosya sistemi biriminin veya Kayıt Defteri kovanının ham içeriğidir (hive dosyası, Kayıt Defteri'nin disk içi depolama biçimidir). Bu nedenle, örneğin, windows API'sini veya yerel API'yi bir dizin listesinden kaldırmak üzere işleyen kullanıcı modu veya çekirdek modu gibi rootkit'ler, RootkitRevealer tarafından Windows API tarafından döndürülen bilgiler arasında bir tutarsızlık olarak görülür ve fat veya NTFS biriminin dosya sistemi yapılarının ham taramasında görülür.

Bir Rootkit, RootkitRevealer'dan gizlenebilir mi?
Bir rootkit'in RootkitRevealer'dan saklanması teorik olarak mümkündür. Bunu yapmak için RootkitRevealer'ın Kayıt Defteri kovan verilerini veya dosya sistemi verilerini okumasını kesmeniz ve verilerin içeriğini rootkit'in Kayıt defteri verileri veya dosyaları bulunmayacak şekilde değiştirmesi gerekir. Ancak bu, rootkit'lerde bugüne kadar görülmemiş bir gelişmişlik düzeyi gerektirir. Verilerde yapılan değişiklikler hem NTFS, FAT ve Kayıt Defteri kovan biçimleri hakkında ayrıntılı bilgi sahibi olmayı hem de rootkit'i gizleyecek şekilde veri yapılarını değiştirebilmeyi, ancak RootkitRevealer tarafından işaretlenecek tutarsız veya geçersiz yapılar ya da yan etki tutarsızlıklarına neden olmamasını gerektirir.

Rootkit'in varlığını bilmenin kesin bir yolu var mı?
Genel olarak, çalışan bir sistemin içinden değil. Çekirdek modu rootkit, sistemin davranışının herhangi bir yönünü denetleyebilir, böylece RootkitRevealer tarafından gerçekleştirilen Kayıt Defteri kovanının ham okumaları ve dosya sistemi verileri de dahil olmak üzere herhangi bir API tarafından döndürülen bilgilerin gizliliği tehlikeye girebilir. Bir sistemin on-line taramasını ve CD tabanlı işletim sistemi yüklemesine önyükleme gibi güvenli bir ortamdan yapılan hat dışı taramayı karşılaştırmak daha güvenilir olsa da, rootkit'ler algılamadan kaçmak için bu tür araçları bile hedefleyebilir.

Sonuç olarak, hiçbir zaman evrensel bir rootkit tarayıcısı olmayacaktır, ancak en güçlü tarayıcılar virüsten koruma ile tümleşen on-line/off-line karşılaştırma tarayıcıları olacaktır.

RootkitRevealer kullanma

RootkitRevealer, çalıştırmasının kendisine Atanmış olduğu hesabın Yedekleme dosyaları ve dizinleri, Yük sürücüleri ve Birim bakım görevlerini gerçekleştirme (Windows XP ve üzeri) ayrıcalıkları olmasını gerektirir. Yönetici istrators grubuna varsayılan olarak bu ayrıcalıklar atanır. Hatalı pozitif sonuçları en aza indirmek için rootkitRevealer'ı boşta bir sistemde çalıştırın.

En iyi sonuç için tüm uygulamalardan çıkın ve RootkitRevealer tarama işlemi sırasında sistemi boşta tutun.

Sorularınız veya sorunlarınız varsa sysinternals RootkitRevealer Forumunu ziyaret edin.

El ile Tarama

Bir sistemi taramak için sistemde başlatın ve Tara düğmesine basın. RootkitRevealer, penceresinin en altındaki durum alanında eylemlerini bildiren ve çıkış listesindeki tutarsızlıkları belirten sistemi tarar. Yapılandırabileceğiniz seçenekler:

  • NTFS Meta Veri Dosyalarını Gizle: Bu seçenek varsayılan olarak açıktır ve RootkitRevealer,Windows API'sinden gizlenen standart NTFS meta veri dosyalarını göstermez.
  • Kayıt Defterini Tara: Bu seçenek varsayılan olarak açıktır. Bunun seçimini kaldırmak için RootkitRevealer kayıt defteri taraması gerçekleştirmiyor.

Otomatik Tarama Başlatma

RootkitRevealer, otomatik tarama sistemleri için çeşitli seçenekleri destekler:

Kullanım: rootkitrevealer [-a [-c] [-m] [-r] outputfile]

Parametre Açıklama
-a İşiniz bittiğinde otomatik olarak tarayın ve çıkın.
-c Çıkışı CSV olarak biçimlendirin.
-M NTFS meta veri dosyalarını gösterin.
-r Kayıt defterini taramayın.

Dosya çıkış konumunun yerel bir birimde olması gerektiğini unutmayın.

-c seçeneğini belirtirseniz, ilerleme durumunu bildirmez ve bir veritabanına kolayca içeri aktarmak için tutarsızlıklar CSV biçiminde yazdırılır. Sysinternals PsExec yardımcı programıyla aşağıdaki gibi bir komut satırı kullanarak uzak sistemlerin taramalarını gerçekleştirebilirsiniz:

psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log

Çıktıyı Yorumlama

Bu, popüler HackerDefender rootkit'in varlığını algılayan RootkitRevealer'ın ekran görüntüsüdür. Kayıt defteri anahtarı tutarsızlıkları, HackerDefender'ın cihaz sürücüsünü ve hizmet ayarlarını depolayan Kayıt Defteri anahtarlarının Windows API'sinde görünmediğini, ancak Kayıt Defteri kovan verilerinin ham taramasında mevcut olduğunu gösterir. Benzer şekilde, HackerDefender ile ilişkili dosyalar Windows API dizin taramalarına görünmez, ancak ham dosya sistemi verilerinin taranmasında bulunur.

Rootkit Revealer

Tüm tutarsızlıkları incelemeli ve bunların bir rootkit varlığını belirtme olasılığını belirlemelisiniz. Ne yazık ki, bir rootkit olup olmadığını çıkışa göre belirlemenin kesin bir yolu yoktur, ancak açıklanabilir olduklarından emin olmak için bildirilen tüm tutarsızlıkları incelemeniz gerekir. Bir rootkit'in yüklü olduğunu belirlerseniz, kaldırma yönergeleri için web'de arayın. Rootkit'in nasıl kaldırılacağından emin değilseniz, sistemin sabit diskini yeniden biçimlendirmeli ve Windows'un yeniden yüklenmesi gerekir.

Aşağıdaki olası RootkitRevealer tutarsızlıklarıyla ilgili bilgilere ek olarak, Sysinternals'daki RootkitRevealer Forumu algılanan rootkit'leri ve belirli hatalı pozitifleri ele alır.

Windows API'sinden gizlendi

Bu tutarsızlıklar çoğu rootkit tarafından sergilenenler; ancak NTFS meta veri dosyalarını gizle'yi denetlemediyseniz, NTFS $MFT ve $Secure gibi meta veri dosyalarını Windows API'sinden gizlediğinden, herhangi bir NTFS biriminde bu tür girdilerin bir dizisini görmeyi beklemeniz gerekir. NTFS birimlerinde bulunan meta veri dosyaları, NTFS sürümüne ve birim üzerinde etkinleştirilen NTFS özelliklerine göre değişiklik gösterir. Ntfs alternatif veri akışlarında depoladıkları verileri gizlemek için rootkit tekniklerini kullanan Kaspersky Antivirus gibi virüsten koruma ürünleri de vardır. Böyle bir virüs tarayıcısı çalıştırıyorsanız, her NTFS dosyasında alternatif bir veri akışı için Windows API'sinden gizleniyor tutarsızlığı görürsünüz. RootkitRevealer çıkış filtrelerini desteklemez çünkü rootkit'ler herhangi bir filtrelemeden yararlanabilir. Son olarak, tarama sırasında bir dosya silinirse bu tutarsızlığı da görebilirsiniz.

Bu, Windows Server 2003 itibarıyla tanımlanan NTFS meta veri dosyalarının listesidir:

  • $AttrDef
  • $BadClus
  • $BadClus:$Bad
  • $BitMap
  • $Boot
  • $LogFile
  • $Mft
  • $MftMirr
  • $Secure
  • $UpCase
  • $Volume
  • $Extend
  • $Extend\$Reparse
  • $Extend\$ObjId
  • $Extend\$UsnJrnl
  • $Extend\$UsnJrnl:$Max
  • $Extend\$Quota

Erişim Reddedildi.
RootkitRevealer, sistemdeki herhangi bir dosyaya, dizine veya kayıt defteri anahtarına erişmesine izin veren mekanizmalar kullandığından bu tutarsızlığı hiçbir zaman bildirmemelidir.

Windows API'sinde, dizin dizininde görünür, ancak MFT'de görünmez.
Windows API'sinde görünür, ancak MFT veya dizin dizininde görünmez.
Windows API'sinde, MFT'de görünür, ancak dizin dizininde görünmez.
Dizin dizininde görünür, ancak Windows API veya MFT'de görünmez.

Dosya sistemi taraması üç bileşenden oluşur: Windows API,NTFS Ana Dosya Tablosu (MFT) ve NTFS disk içi dizin dizin yapıları. Bu tutarsızlıklar, taramaların yalnızca bir veya ikisinde bir dosyanın göründüğünü gösterir. Yaygın nedenlerden biri, taramalar sırasında bir dosyanın oluşturulması veya silinmesidir. Bu, tarama sırasında oluşturulan bir dosya için RootkitRevealer'ın tutarsızlık raporunun bir örneğidir:

C:\newfile.txt
1/3/2005 17:26
8 bayt
Windows API'sinde görünür, ancak MFT veya dizin dizininde görünmez.

Windows API uzunluğu ham hive verileriyle tutarlı değil.
Rootkit'ler, bir Kayıt Defteri değerinin boyutunu yanlış tanıtarak içeriklerinin Windows API'sine görünmemesi için kendilerini gizlemeye çalışabilir. Tarama sırasında değişen Kayıt Defteri değerlerinin bir sonucu olarak da görünse de, bu tür tutarsızlıkları incelemeniz gerekir.

Windows API ile ham hive verileri arasında tür uyuşmazlığı.
Kayıt defteri değerleri DWORD ve REG_SZ gibi bir türe sahiptir ve bu tutarsızlık, Windows API'sinde bildirilen bir değerin türünün ham hive verilerinden farklı olduğunu not eder. Rootkit, örneğin REG_BINARY bir değer olarak depolayarak ve Windows API'sinin REG_SZ bir değer olduğuna inanmasını sağlayarak verilerini maskeleyebilir; verilerin başında bir 0 depolarsa, Windows API sonraki verilere erişemez.

Anahtar adı eklenmiş null değerleri içerir.
Windows API anahtar adlarını null olarak sonlandırılan dizeler olarak kabul ederken, çekirdek bunları sayılan dizeler olarak kabul eder. Bu nedenle, işletim sistemi tarafından görülebilen ancak Regedit gibi Kayıt Defteri araçlarına yalnızca kısmen görünen Kayıt Defteri anahtarları oluşturmak mümkündür. Sysinternals'daki Reghide örnek kodu, hem kötü amaçlı yazılımlar hem de rootkit'ler tarafından Kayıt Defteri verilerini gizlemek için kullanılan bu tekniği gösterir. Eklenmiş null değerleri olan anahtarları silmek için Sysinternals RegDelNull yardımcı programını kullanın.

Windows API ile ham hive verileri arasındaki veri uyuşmazlığı.
Kayıt Defteri taraması devam ederken bir Kayıt Defteri değeri güncelleştirilirse bu tutarsızlık oluşur. Sık değişen değerler aşağıda gösterilen Microsoft SQL Server çalışma süresi değeri ve virüs tarayıcısı "son tarama" değerleri gibi zaman damgalarını içerir. Geçerli bir uygulama veya sistem Kayıt Defteri değeri olduğundan emin olmak için bildirilen değerleri araştırmanız gerekir.

HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc
1/3/2005 16:33
8 bayt

Rootkit Kaynakları

Aşağıdaki Web siteleri ve kitapları rootkit'ler hakkında daha fazla bilgi kaynağıdır:

Sony, Rootkits ve Dijital Hak Yönetimi Çok Ileri Gitti
Mark'ın bilgisayarlarından birinde sony rootkit'i bulma ve analiz hakkındaki blog girdisini okuyun.

Kök Setleri Ortaya Çıkarıyor
Mark'ın Haziran Windows BT Pro Dergisi makalesi, rootkit teknolojilerine ve RootkitRevealer'ın nasıl çalıştığına ilişkin bir genel bakış sağlar.

Rootkits: Windows Çekirdeğini Alta Döndürme
Greg Hoğlund ve Jamie Butler'ın bu kitabı rootkit'lerin en kapsamlı tedavisidir.

www.phrack.org
Bu site geliştiricilerin güvenlikle ilgili ürünlerdeki kusurları, rootkit tekniklerini ve diğer kötü amaçlı yazılım püf noktalarını tartıştığı, kraker odaklı bir dergi olan Phrack'in arşivini depolar.

Bilgisayar Virüs Araştırma ve Savunma Sanatı, Peter Szor tarafından

Kötü Amaçlı Yazılım: Ed Skoudis ve Lenny Zeltser Tarafından Kötü Amaçlı Kodla Mücadele

Windows Internals, 4th Edition, Mark Russinovich ve Dave Solomon tarafından (kitap rootkit'lerden bahsetmez, ancak Windows mimarisini anlamak rootkit'leri anlamak için yararlıdır).

DownloadRootkitRevealer'ı indirin(231 KB)

Şimdi Sysinternals Live'dan çalıştırın.