- RootkitRevealer, gizli sorunları ortaya çıkarmak için Windows API'leri ile ham veriler arasındaki tutarsızlıkları algılar.
- Sonuçları yorumlar: NTFS meta verileri, kayıt defteri ve dosya sistemi tutarsızlık türleri.
- PsExec ile -a -c -m -r ve uzaktan yürütme seçeneklerini kullanın; sistem boştayken minimum düzeyde yanlış pozitif gerektirir.
- Önleme ve yanıt: Güvenli Önyükleme/TPM, çevrimdışı taramalar, anti-rootkit araçları ve kontrollü geri yükleme.

RootkitRevealer, her Windows profesyonelinin bilmesi gereken efsanevi yardımcı programlardan biridir; Mark Russinovich'in önderliğindeki Sysinternals ekibi tarafından oluşturulmuştur ve yıllar önce ortaya çıkmasına rağmen, sistemin gösterdiği ile diskte gerçekten bulunanlar arasındaki rootkit'lerin neden olduğu tutarsızlıkları nasıl tespit edeceğinizi anlamak için bir referans olmaya devam etmektedir.
Diğer tarayıcılardan farklı olarak, imza veya kalıp aramaz: Windows API'sinin üst düzey bir görünümünü, diskin ve Kayıt Defterinin ham, düşük seviyeli bir okumasıyla karşılaştırır. Bu görünüşte basit fikir, kötü amaçlı yazılımların sistem çağrılarını manipüle ederek dosyaları, anahtarları veya değerleri gizlemeye çalıştığı durumları ortaya çıkarır.
RootkitRevealer nedir ve hangi sistemlerde çalışır?
Bu, hem kullanıcı hem de çekirdek modlarında rootkit belirtilerini tespit etmek için gelişmiş bir araçtır . Başlangıçta Windows XP ve Windows Server 2003 (32-bit) için geliştirilmiştir ve genellikle ücretsiz, İngilizce ve yaklaşık 231 KiB boyutunda olarak listelenir; birçok listede o dönemde Windows NT/2000/XP/Vista ile uyumluluğu da belirtilmiştir.
Zamanla, bazı kötü amaçlı yazılım yazarlarının yürütülebilir dosyanın adını izlemeye başlaması nedeniyle, tamamen komut satırı tabanlı sürümü ortadan kaldırıldı; bunu önlemek için, program rastgele adlandırılmış bir kopyasından bir hizmet olarak başlatılıyor, bu da adla tespit edilmeyi zorlaştırıyor ve %100 konsol arayüzü sağlamayı karmaşıklaştırıyor.
Rootkit nedir? Temel kavramlar
Rootkit terimi, kötü amaçlı yazılımların (virüsler, Truva atları, casus yazılımlar vb.) kullanıcıdan ve güvenlik araçlarından gizlenmesini sağlayan teknik ve mekanizmaları ifade eder . Birkaç farklı türü vardır: kalıcı (yeniden başlatmalardan sonra da varlığını sürdüren), bellekte yerleşik (yeniden başlatmada kaybolan), kullanıcı modu ve çekirdek modu, diğer modern varyantlar arasında.
Kullanıcı modu rootkit'leri, FindFirstFile/FindNextFile gibi işlevleri veya sistemin yerleşik numaralandırıcılarını yakalayarak, değiştirdiği dosyaları, işlemleri veya Kayıt Defteri anahtarlarını ortaya çıkaracak girdileri filtreleyebilir . Bu, Explorer'ın, komut isteminin veya Kayıt Defteri düzenleyicilerinin gerçekte neyin var olduğunu görmesini engeller.
Çekirdek modu rootkit'leri daha da ileri gider: yerel API'yi engellemenin yanı sıra, çekirdek yapılarını doğrudan manipüle edebilirler; örneğin, çalışıyor olsa bile Görev Yöneticisi veya İşlem Gezgini'nde görünmemesi için kendi işlemlerini aktif işlemler listesinden kaldırabilirler.
Hibrit (kısmen kullanıcı tabanlı, kısmen çekirdek tabanlı), bellenim (BIOS/UEFI ve diğer bileşenler), önyükleme veya önyükleme kiti (MBR/UEFI), sanal (gerçek işletim sistemini sanal bir makineye yerleştiren) ve bellek tabanlı (kalıcı olmayan) önyükleyiciler mevcuttur. Sonuncusu özellikle bulunması zor olabilirken, bellenim ve önyükleyiciler işletim sisteminin temiz bir şekilde yeniden yüklenmesinden sonra bile kalıcıdır.
RootkitRevealer nasıl çalışır?
RKR iki anlık görüntüyü karşılaştırır: Windows API'sinin üst düzey görünümü ve disk biriminin ve Kayıt Defteri alt ağacı dosyalarının (kovanların) ham, düşük seviyeli okuması. Bir rootkit, bir şeyi gizlemek için üst düzey çağrıları değiştirirse, bu değişiklik ortaya çıkar çünkü diskte ve Kayıt Defterinde bulunanlar, API'nin orada olduğunu söylediğiyle eşleşmez ve teşhis edilebilir tutarsızlıklar oluşturur.
Teorik olarak, bir rootkit, ham okuma işlemlerini yakalayarak ve verileri anında yeniden yazarak RootkitRevealer'dan gizlenmeye de çalışabilir. Bunu başarmak için, NTFS, FAT ve Kayıt Defteri formatları hakkında derinlemesine bilgiye sahip olması ve tutarsızlıklara veya belirgin yan etkilere neden olmadan yapıları değiştirebilmesi gerekir; bu, nadiren gözlemlenen son derece karmaşık bir teknik başarıdır . Yine de, hatasız bir "evrensel dedektör" yoktur: harici bir ortamdan önyükleme bile (örneğin, en iyi Linux dağıtımlarını kullanarak) özellikle karmaşık ve kalıcı zararlı yazılımlar tarafından sabote edilebilir . Pratikte, en sağlam yaklaşım, çevrimiçi analizi güvenilir ortamlarda çevrimdışı doğrulama ile birleştirmektir.
Gereksinimler, iyi uygulamalar ve uygulama
Bu taramayı çalıştırmak için hesabın "Dosyaları ve dizinleri yedekle", "Sürücüleri yükle" ve "Birim bakımı" ayrıcalıklarına sahip olması gerekir (bu ayrıcalıklar Windows XP ve sonraki sürümlerde yöneticilere varsayılan olarak verilir). Yanlış pozitifleri en aza indirmek için, taramanın sistem kapalıyken ve hiçbir uygulama açık değilken çalıştırılması önerilir.
Manuel çalıştırmada, tarama düğmesine basmanız yeterlidir. İşlem sırasında program ilerleme güncellemeleri sağlayacak ve herhangi bir tutarsızlığı listeleyecektir. İki önemli seçenek vardır: "NTFS meta veri dosyalarını gizle" (varsayılan olarak etkinleştirilmiştir, NTFS tarafından gizlenen standart meta verilerin görüntülenmesini önler) ve "Tarama günlüğü" (varsayılan olarak etkinleştirilmiştir; işaretini kaldırmak Windows Kayıt Defteri taramasını atlayacaktır ).
Otomasyon için, müdahaleye gerek kalmadan başlatmanıza, oturum açmanıza ve çıkmanıza olanak tanıyan parametreleri destekler: rootkitrevealer outputfile]. Seçenek -a otomatik olarak başlar ve biter; -c sonucu CSV formatında çıktı olarak ver; -m NTFS meta verilerini görüntüler; ve -r Kayıt defteri taramasını devre dışı bırakır. Çıktı dosyası bir erişilebilir yerel hacim.
PsExec ile uzaktan çalıştırma mümkündür. Örneğin: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log. Ile -c, ilerleme görüntülenmiyor ve tutarsızlıklar CSV'de yazdırılıyor, bu da içe aktarmayı kolaylaştırıyor veritabanlarında veya betiklerde.
Sonuçların yorumlanması ve tipik tutarsızlıklar
"Windows API'sinden gizlenmiş" tutarsızlıkları, bir rootkit'in girdileri gizlemesi durumunda en sık karşılaşılan durumdur. NTFS meta veri görüntülemeyi etkinleştirmediyseniz, NTFS'nin $MFT veya $Secure gibi dahili dosyalarını API'den gizlemesi nedeniyle farklılıklar göreceksiniz . Bazı antivirüs programları da verileri alternatif akışlarda saklar ve gizler, bu da benzer hatalara yol açar.
Bunlar, NTFS'de (Windows Server 2003) tanımlanan standart meta verilerden bazılarıdır: $AttrDef, $BadClus, $BadClus:$Bad, $BitMap, $Boot, $LogFile, $Mft, $MftMirr, $Secure, $UpCase, $Volume, $Extend, $Extend\$Reparse, $Extend\$ObjId, $Extend\$UsnJrnl, $Extend\$UsnJrnl:$Max, $Extend\$Quota.
RKR, dosya sistemindeki üç kaynağı ilişkilendirir: Windows API'si, Ana Dosya Tablosu (MFT) ve disk üzerindeki dizin indeksleri. Özellikle analiz sırasında bir dosya oluşturulur veya silinirse ve geçici bir tutarsızlık penceresi oluşturursa, "API'de görünür ancak indekste veya MFT'de görünmez", "MFT'de görünür ancak API'de görünmez" vb. kombinasyonlar ortaya çıkabilir.
Tarama sırasında oluşturma örneği: C:\newfile.txt8 bayt boyutunda ve "API'de görünür, ancak dizinde veya MFT'de görünmez" mesajıyla birlikte. Bu durumlar mutlaka kök araç setlerine işaret etmez, ancak eşzamanlı değişiklikler muayene edilirken.
"Erişim reddedildi" mesajı görünüyorsa, bir sorun var demektir: RootkitRevealer, herhangi bir dosyaya, dizine veya anahtara erişmek için mekanizmalar kullanır, bu nedenle normal çalışma koşullarında bu mesaj görünmemelidir.
Kayıt Defterinde, dikkat çekici birkaç tutarsızlık bulunmaktadır: "Windows API uzunluğu ham verilerle tutarsız" (gerçek içeriği gizleme girişimi olabilir), "Tür uyuşmazlığı" (örneğin, REG_SZ olarak belirtiliyor ancak REG_BINARY olması gerekiyor), "Anahtar adı gömülü NULL değerleri içeriyor" (NULL ile sonlandırılmış dizeler ile sayım içeren dizeler arasındaki farkı kullanan bilinen bir teknik). Bu son durum için, Sysinternals'ın RegDelNull yardımcı programı, gömülü NULL'lar içeren anahtarları temizlemeye yardımcı olur.
Tarama sırasında bir değer değişirse (örneğin, SQL Server çalışma süreleri gibi) "Veri uyumsuzluğu" meydana gelebilir HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc). Değerin ait olduğunu doğrulamanız gerekir. meşru bileşenler verileri gerçek zamanlı olarak günceller.
Bunun en açıklayıcı örneği HackerDefender rootkit'iydi: hizmetleri ve sürücüleri Windows API'si için görünmezdi, ancak Kayıt Defteri kovanının ham okumasında mevcuttu; aynı durum dosyaları için de geçerliydi; dosya sisteminin doğrudan analizi bunları diskte tespit ediyordu.
Adli ortamlarda rootkitrevealer.exe ile ilgili yaygın hatalar ve sorunlar
Bazı adli bilişim kitleri (örneğin WinTaylor), rootkitrevealer.exe ile ilgili tipik hataları listeler; bunlar arasında "geçerli bir Win32 uygulaması değil", "bulunamadı", "uygulama hatası" veya "başlangıç sorunu" gibi mesajlar yer alır. Bu mesajlar genellikle sistem kurulumu, başlatılması veya kapatılması sırasında veya diğer yerleşik uygulamalarla çakışmalar nedeniyle ortaya çıkar.
En sık görülen nedenler arasında bozuk veya eksik dosyalar, geçersiz Kayıt Defteri girdileri, kötü amaçlı yazılım bulaşmaları, eksik kaldırma işlemleri veya diğer yazılımlarla çakışmalar yer alır. Kaynak, bozuk bir Kayıt Defteri girdisi, başka bir araç tarafından yanlışlıkla silinme, başarısız bir indirme veya ikili dosyayı değiştiren önceki bir bulaşma olabilir.
Envanter merakı olarak, bazı listeler yürütülebilir dosyayı yaklaşık 334.720 bayt boyutunda belgelemektedir ve SHA‑1 ve MD5 gibi karmalar (örn. SHA‑1 d39e8a3fe92adc7d7fbc5293edf8a7b965484a59, MD5 ee738fe9bcdd605821002cec8c7206db) ve CRC32 98b1af0b; ayrıca şuna da atıfta bulunurlar: konteyner uygulamasında sürüm 2.1 ve “Adli Araç Seti/İşletim Sistemi” kategorisi.
Rootkit algılama ve yanıt yöntemleri
Rootkit tespiti her zaman kolay değildir. Belirli araçların ötesinde, bilinen tehditlerin imza analizi, yapıların soğuk karşılaştırması, kancalar ve değişiklikler için bellek aramaları ve çökmelerden sonra bellek dökümlerinin incelenmesi gibi teknikler, şüpheli modülleri belirlemek için bir araya getirilir. Ayrıca, ağı korumak ve enfeksiyon vektörlerini azaltmak için Saldırı Önleme Sistemlerine (IPS) güvenmek de yaygındır .
Özel amaçlı yardımcı programlar arasında GMER (gizli işlemleri ve çekirdek değişikliklerini tespit etmek için), Kaspersky TDSSKiller (özellikle bootkit'leri ve çekirdek rootkit'lerini tespit etmek için), Malwarebytes Anti-Rootkit, Microsoft Defender Offline (Windows başlamadan önce tarama yapmak için) ve RogueKiller bulunur. Bunları güvenilir bir önyüklenebilir USB sürücüsünden veya Güvenli Mod'da çalıştırmak, saldırı yüzeyini azaltır.
Önyükleme veya aygıt yazılımı tehditleri için Kaspersky Rescue Disk gibi kurtarma ortamını kullanmanız ve MBR'yi şu şekilde geri yüklemeniz önerilir: bootrec /fixmbr uygun olduğunda ve ciddi durumlarda, BIOS/UEFI'yi üreticiden temiz bir sürüme güncelleyin/flaşlayın. düşük seviyeli kalıcılık.
Sysinternals ile izleme son derece değerlidir: İşlem ve dosya etkinliği için Process Monitor (ProcMon), başlangıçta nelerin yüklendiğini kontrol etmek için Autoruns ve yüksek/düşük seviyeli tutarsızlıklar için RootkitRevealer . Wazuh gibi SIEM platformları ve kurumsal ortamlardaki telemetri, beklenmedik ağ davranışlarını veya bütünlük değişikliklerini ortaya çıkarabilir.
Eğer enfeksiyon doğrulanırsa, izlenecek mantıklı sıra şöyledir: makineyi ağdan ayırın, harici bir ortamdan tarama yapın, önyükleme/firmware bütünlüğünü değerlendirin ve eğer hiçbir garanti yoksa, verileri yedekleyin, diski tamamen temizleyin (DBAN gibi araçlar kullanarak) ve doğrulanmış medyadan yeniden yükleyin, ardından Güvenli Önyükleme ve TPM gibi önlemleri etkinleştirin.
Önleme: Rootkit'lere karşı makul koruma
Önlem almak çok önemlidir. Sisteminizi güncel tutun, üçüncü taraf yazılımlara yamalar uygulayın, şüpheli kaynaklardan gelen çalıştırılabilir dosyaları kullanmaktan kaçının ve crack veya keygen kullanmayın: bunlar rootkit yükleyicilerini ve yükleyicilerini paketlemek için en sık kullanılan yöntemlerdir.
USB'lerin otomatik başlatılmasını devre dışı bırakın, harici sürücüleri açmadan önce tarayın ve kurumsal ortamlarda uygun yerlerde portları sınırlayın veya engelleyin ve güvenlik duvarları uygulayın . Ayrıcalıksız kullanıcı hesaplarıyla çalışın, en az ayrıcalık ilkesini uygulayın ve kritik değişiklikler için yönetici kimlik bilgilerini gerektirerek sessiz yetki yükseltmelerinin olasılığını azaltın.
Uyumlu donanımlarda, önyükleme zincirini ve anahtar mühürlemeyi korumak için UEFI'den Güvenli Önyükleme ve TPM'yi etkinleştirin. Düzenli çevrimdışı veya değiştirilemez yedeklemeler yapın ve bir sorun oluşması durumunda kurtarma süresini kısaltmak için anlık görüntüler/geri yükleme noktaları kullanın.
Rootkit'ler nasıl kurulur: damlatıcılar, yükleyiciler ve vektörler
Saldırganlar genellikle rootkit'leri birleşik tehditler olarak dağıtırlar: paketi teslim eden bir "dropper" ve güvenlik açıklarından (örneğin arabellek taşmaları) yararlanarak kötü amaçlı yazılımı istenmeyen yerlere yerleştiren bir "loader". Bu, kimlik avı e-postaları , sahte yükleyiciler veya sahte güncellemeler şeklinde gizlenir.
Klasik yöntemler arasında, kötü amaçlı bağlantıları yaymak için mesajlaşma istemcilerini ele geçirmek, indirme portallarındaki yazılımlara truva atı bulaştırmak, diğer kötü amaçlı yazılımları taşıyıcı olarak kullanmak ve açıldığında otomatik olarak zararlı yazılımı tetikleyen zengin içerikli belgelere (örneğin, belirli PDF'lere) yerleştirmek yer almaktadır.
Saldırı işaretleri ve tespit ipuçları
Rootkit'lerin amacı tespit edilmeden kalmaktır. Buna rağmen, kullanıcı müdahalesi olmadan yapılandırma değişiklikleri, gizli trafik nedeniyle olağandışı ağ kesintileri, bilinmeyen işlemler, kapatılamayan hizmetler ve açıklama yapılmadan devre dışı bırakılan güvenlik araçları gözlemleyebilirsiniz.
Bir diğer ipucu ise, farklı yollar (API veya ham okuma) kullanarak dosya, işlem veya kayıt defteri anahtarlarını listeleyen yardımcı programlar arasındaki çelişkili bilgilerdir. RootkitRevealer gibi yaklaşımlar burada öne çıkıyor: diskte "var olan" ancak API'ye göre "var olmayan" aynı nesne, manipülasyona işaret ediyor.
Rootkit'lerin ana türleri
Kullanıcı modu: Bunlar işlem ve kütüphane düzeyinde çalışır. Dosyaları, işlemleri ve anahtarları gizleyebilseler de, daha kararlıdırlar ve tespit edilmeleri nispeten daha kolaydır. Klasik bir tarihsel örnek HackerDefender'dır.
Çekirdek modu: Bu virüsler çekirdekte bulunur, tam kontrole sahiptir ve son derece gizlidir; ortadan kaldırılmaları zordur ve kötü tasarlanmışlarsa istikrarsızlığa neden olma eğilimindedirler. Bu ailenin örnekleri: TDL/Alureon'un evrimi.
Hibrit mimariler: Gizlilik ve istikrar arasında denge kurmak için kullanıcı ve çekirdek bileşenlerini bir araya getirir; bu da pratik çok yönlülükleri nedeniyle saldırganlar arasında popülerlik kazanmalarına yol açar.
Firmware/Önyükleme Kitleri: Bunlar, işletim sisteminden önce yüklenmek üzere BIOS/UEFI veya önyükleme sektörünü (MBR/UEFI) enfekte eder. Güvenli Önyükleme gibi teknolojiler birçok klasik önyükleme kitini geçersiz kılmıştır, ancak modern UEFI implantları ortaya çıkmıştır.
Sanal ve bellek tabanlı: VMBR'ler işletim sisteminin altına bir hipervizör yükler ve onu sanallaştırır; bellek tabanlı olanlar yalnızca RAM'de bulunur ve yeniden başlatma üzerine kaybolur, bu da geçici işlemler için çok kullanışlıdır.
Örnekler ve vurgulanan kronoloji
SunOS için ilk rootkit'ler 90'larda geliştirildi; 1999'da Greg Hoglund, NTRootkit'i (Windows, çekirdek modu) tanımladı ve 2003'te HackerDefender (Windows 2000/XP, kullanıcı modu) ortaya çıktı, bu da RootkitRevealer gibi araçlarla bir "çekişmeye" yol açtı.
2004 yılında, "Yunan Watergate'i" olarak adlandırılan olayda, bir rootkit kullanılarak GSM ağındaki 100'den fazla telefon hacklendi; 2005 yılında ise Sony BMG'nin bazı CD'lerine korsanlıkla mücadele amaçlı bir rootkit eklediği keşfedildi ve bu durum büyük bir güvenlik tartışmasına yol açtı.
2008'den beri TDL (TDL-1'den TDL-4'e kadar) gibi bootkit'ler gelişti; 2009'da "Machiavelli", macOS'un (o zamanlar Mac OS X) da bağışık olmadığını kanıtladı; 2010'da Stuxnet , İran endüstriyel sistemlerini sabote etmek için rootkit bileşenlerini kullandı.
2012'de, büyük ölçekli modüler bir kötü amaçlı yazılım olan Flame ortaya çıktı ; 2018'de LoJax , gerçek dünyada tespit edilen ilk UEFI rootkit oldu; ve 2019'da Scranos , kimlik bilgilerinin çalınmasını ve gizli gelir elde etmeyi , kitlesel olarak ele geçirilmiş tarayıcılar aracılığıyla tıklama çiftlikleriyle birleştirdi.
Kaynaklar ve önerilen okumalar
Mark Russinovich'in Sony davasıyla ilgili araştırması ve Windows IT Pro'da yayınlanan "Rootkit'leri Ortaya Çıkarma" başlıklı makalesi, RKR olgusunu ve arkasındaki tekniği anlamaya yardımcı olur; Greg Hoglund ve Jamie Butler'ın "Rootkit'ler: Windows Çekirdeğini Bozma" adlı kitabı ise konu hakkında en kapsamlı eserdir.
Phrack Arşivi, Peter Szor'un "Bilgisayar Virüsü Araştırma ve Savunma Sanatı", Ed Skoudis ve Lenny Zeltser'in "Kötü Amaçlı Yazılım: Kötü Amaçlı Kodla Mücadele" ve "Windows İç Yapısı" serisi (4. baskıdan itibaren), mimariye ve ciddi karşı önlemlere daha derinlemesine dalmak isteyen herkes için olmazsa olmaz kaynaklardır.
Sysinternals ekosistemindeki RootkitRevealer
RKR, araştırmada faydalı olan diğer Sysinternals yardımcı programlarıyla birlikte çalışır: AccessChk ve AccessEnum (etkin izinler), Autoruns (sistemle başlayan her şey), Process Explorer (kim neyi ve hangi DLL ile açtı), PsExec/PsTools (uzaktan çalıştırma ve yönetim), PsLogList ve PsLoggedOn (olaylar ve oturumlar), Sigcheck (dijital imzalar), SDelete (güvenli silme), ShareEnum (paylaşılan kaynaklar) ve Sysmon (olay günlüğünde gelişmiş telemetri).
Tarihsel depolarda "1.71'i İndir" ve Sysinternals Live üzerinden "Şimdi Çalıştır" gibi referanslara sıkça rastlanır. Proje eski olsa da, yüksek seviyeli ve düşük seviyeli yaklaşımları karşılaştırma yaklaşımı, rootkit avcılığı için hâlâ çok önemlidir.
RootkitRevealer, her şeyden önce, savunma mühendisliği konusunda bir ders niteliğindedir: Eğer bir şey API'nin döndürdüğü verileri manipüle ediyorsa, altta yatanı incelemeli ve bunu diskte ve Kayıt Defterinde gerçekten var olanlarla karşılaştırmalısınız; iyi uygulamalar, uygun araçlar ve gerektiğinde çevrimdışı doğrulama ile, kimsenin bakmayacağını düşündüğümüz yerlerde saklanmaya çalışan şeyi ortaya çıkarmak mümkündür.