- RootkitRevealer upptäcker avvikelser mellan Windows API:er och rådata för att avslöja dolda problem.
- Tolkar resultat: NTFS-metadata, avvikelsetyper i register och filsystem.
- Använd alternativen -a -c -m -r och fjärrkörning med PsExec; det kräver minimala falska positiva resultat när systemet är inaktivt.
- Förebyggande åtgärder och åtgärder: Säker start/TPM, offline-skanningar, verktyg mot rootkit och kontrollerad återställning.

RootkitRevealer är ett av de där legendariska verktygen som alla Windows-proffs borde känna till; det skapades av Sysinternals-teamet med Mark Russinovich i spetsen och, även om det dök upp för flera år sedan, är det fortfarande en referens för att förstå hur man upptäcker avvikelser orsakade av rootkits mellan vad systemet visar och vad som faktiskt finns på disken.
Till skillnad från andra skannrar letar den inte efter signaturer eller mönster: den jämför en övergripande vy av Windows API med en rå, lågnivåläsning av disken och registret. Denna till synes enkla idé avslöjar när skadlig kod försöker dölja filer, nycklar eller värden genom att manipulera systemanrop.
Vad är RootkitRevealer och vilka system fungerar det på?
Detta är ett avancerat verktyg för att upptäcka tecken på rootkits i både användar- och kernelläge . Det utvecklades ursprungligen för Windows XP och Windows Server 2003 (32-bitars) och listas vanligtvis som gratis, på engelska, och är cirka 231 KiB stort; många listningar indikerade även dess kompatibilitet med Windows NT/2000/XP/Vista vid den tiden.
Med tiden togs dess rena kommandoradsversion bort eftersom vissa utvecklare av skadlig kod började övervaka den körbara filens namn. För att undvika detta startas programmet som en tjänst från en slumpmässigt namngiven kopia av sig självt, vilket gör det svårare att identifiera den med namn och komplicerar tillhandahållandet av ett 100 % konsolgränssnitt.
Vad är ett rootkit? Viktiga begrepp
Termen rootkit hänvisar till tekniker och mekanismer som gör att skadlig kod (virus, trojaner, spionprogram etc.) kan gömma sig från användaren och säkerhetsverktyg . Flera familjer urskiljs: persistent (överlever omstarter), memory-resident (försvinner vid omstart), user-mode och kernel-mode, bland andra moderna varianter.
Ett rootkit i användarläge kan fånga upp funktioner som FindFirstFile/FindNextFile, eller systemets inbyggda uppräknare, för att filtrera poster som skulle avslöja dess modifierade filer, processer eller registernycklar . Detta förhindrar att Utforskaren, kommandotolken eller registerredigeraren ser vad som faktiskt finns.
Kernel-mode rootkits går längre: förutom att fånga upp det inbyggda API:et kan de direkt manipulera kärnstrukturer, till exempel genom att ta bort sin process från listan över aktiva processer så att den inte visas i Aktivitetshanteraren eller Process Explorer trots att den körs.
Det finns hybrider (delvis användarbaserade och delvis kärnbaserade), firmware (BIOS/UEFI och andra komponenter), boot- eller bootkit- (MBR/UEFI), virtuella (som placerar själva operativsystemet inuti en virtuell maskin) och minnesbaserade (icke-persistenta) bootloaders. De senare kan vara särskilt svårfångade, medan firmware och bootloaders finns kvar även efter en ren ominstallation av operativsystemet.
Hur RootkitRevealer fungerar
RKR jämför två ögonblicksbilder: den övergripande vyn av Windows API och den råa, lågnivåavläsningen av volymen och registrets underträdsfiler (hives). Om ett rootkit manipulerar anrop på övergripande nivåer för att dölja något, avslöjas denna förändring eftersom det som finns på disken och i registret inte matchar vad API:et säger finns där, vilket genererar diagnostiserbara avvikelser.
Teoretiskt sett skulle ett rootkit också kunna försöka gömma sig från RootkitRevealer genom att fånga upp dess råläsningar och skriva om data i farten. För att uppnå detta skulle det behöva ingående kunskap om NTFS-, FAT- och registerformat, och kunna modifiera strukturer utan att orsaka inkonsekvenser eller uppenbara biverkningar – en mycket komplex teknisk bedrift som sällan har observerats. Ändå finns det ingen ofelbar "universell detektor": även uppstart från en extern miljö (till exempel med de bästa Linuxdistributionerna ) skulle kunna saboteras av särskilt sofistikerade och ihållande artefakter . I praktiken är den mest robusta metoden att kombinera onlineanalys med offlineverifiering i betrodda miljöer.
Krav, god praxis och utförande
För att köra den här skanningen behöver kontot behörigheterna "Säkerhetskopiera filer och kataloger", "Ladda drivrutiner" och "Volymunderhåll" (dessa beviljas som standard till administratörer i Windows XP och senare). För att minimera falska positiva resultat rekommenderas det att köra skanningen med systemet i vila och inga program öppna.
Vid manuell körning, tryck helt enkelt på skanningsknappen. Under processen kommer programmet att ge förloppsuppdateringar och lista eventuella avvikelser. Det finns två relevanta alternativ: "Dölj NTFS-metadatafiler" (aktiverat som standard för att undvika att visa standardmetadata som är dolda av NTFS) och "Skanningslogg" (aktiverat som standard; om du avmarkerar det hoppas Windows-registret över skanningen ).
För automatisering stöder den parametrar som låter dig starta, logga in och avsluta utan ingripande: rootkitrevealer outputfile]. Alternativet -a börjar och slutar automatiskt; -c mata ut resultatet i CSV; -m visar NTFS-metadata; och -r inaktiverar registerskanning. Utdatafilen måste vara i en tillgänglig lokal volym.
Fjärrkörning är möjlig med PsExec. Till exempel: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log. Med -c, förloppet visas inte och avvikelser skrivs ut i CSV, vilket gör det enklare att importera i databaser eller skript.
Tolkning av resultat och typiska avvikelser
Avvikelser i "Dold från Windows API" är de vanligaste felen när ett rootkit döljer poster. Om du inte har aktiverat visning av NTFS-metadata kommer du att se skillnader eftersom NTFS döljer sina interna filer, till exempel $MFT eller $Secure , från API:et . Vissa antivirusprogram lagrar också data i alternativa strömmar och döljer dem, vilket resulterar i liknande fel.
Dessa är några av de standardmetadata som definieras i NTFS (Windows Server 2003): $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 korrelerar tre källor i filsystemet: Windows API, Master File Table (MFT) och katalogindexen på disken. Kombinationer som "Synlig i API:et men inte i indexet eller MFT", "Synlig i MFT:et men inte i API:et" etc. kan förekomma, särskilt om en fil skapas eller raderas under analysen och producerar ett fönster med tillfällig inkonsekvens.
Exempel på skapande under skanning: C:\newfile.txt, 8 byte i storlek, med meddelandet "Synlig i API:et, men inte i indexet eller MFT". Dessa fall pekar inte nödvändigtvis på rootkits, utan på samtidiga förändringar medan de undersöks.
Om "Åtkomst nekad" visas är något fel: RootkitRevealer använder mekanismer för att komma åt valfri fil, katalog eller nyckel, så det meddelandet bör inte visas under normala körförhållanden.
I registret finns flera intressanta avvikelser: ”Windows API-längden är inkonsekvent med rådata” (möjligt försök att dölja det faktiska innehållet), ”Typmatchning” (t.ex. REG_SZ annonseras men det borde vara REG_BINARY), ”Nyckelnamnet innehåller inbäddade NULL-värden” (en känd teknik som utnyttjar skillnaden mellan NULL-avslutade strängar och strängar med antal). I det sista fallet hjälper Sysinternals RegDelNull- verktyg till att rensa nycklar med inbäddade NULL-värden.
”Datamatchningsfel” kan uppstå om ett värde ändras under skanningen (t.ex. SQL Server-drifttider som HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc). Du måste validera att värdet tillhör legitima komponenter som uppdaterar data i realtid.
Ett illustrativt exempel var rootkit HackerDefender: dess tjänster och drivrutiner var osynliga för Windows API, men fanns i den råa läsningen av registerhive; detsamma gällde dess filer, vilka den direkta analysen av filsystemet upptäckte på disk.
Vanliga fel och problem med rootkitrevealer.exe i forensiska miljöer
Vissa forensiska kit (t.ex. WinTaylor) listar typiska fel relaterade till rootkitrevealer.exe , till exempel: "inte ett giltigt Win32-program", "inte hittat", "programfel" eller "startproblem". Dessa meddelanden visas vanligtvis under systeminstallation, start eller avstängning, eller på grund av konflikter med andra inbyggda program.
De vanligaste orsakerna inkluderar skadade eller saknade filer, ogiltiga registerposter, infektioner av skadlig kod, ofullständiga avinstallationer eller konflikter med annan programvara. Källan kan vara en skadad registerpost, oavsiktlig radering av ett annat verktyg, en misslyckad nedladdning eller en tidigare infektion som ändrade binärfilen.
Som en kuriosa i inventeringen dokumenterar vissa listor den körbara filen med ungefärlig storlek på 334 720 byte och hashkoder som SHA-1 och MD5 (t.ex. SHA-1) d39e8a3fe92adc7d7fbc5293edf8a7b965484a59, MD5 ee738fe9bcdd605821002cec8c7206db) och CRC32 98b1af0b; de hänvisar också till version 2.1 i sin containerapp och kategorin ”Forensisk verktygslåda/operativsystem”.
Metoder för att upptäcka och svara på rootkit
Att upptäcka ett rootkit är inte alltid trivialt. Utöver specifika verktyg kombineras tekniker som signaturanalys av kända hot, kall jämförelse av strukturer, minnessökningar efter hooks och ändringar, och granskning av minnesdumpar efter krascher för att identifiera misstänkta moduler . Det är också vanligt att förlita sig på intrångsskyddssystem (IPS) för att skydda nätverket och minska infektionsvektorer.
Specialiserade verktyg inkluderar GMER (för att upptäcka dolda processer och kärnförändringar), Kaspersky TDSSKiller (särskilt för att upptäcka bootkits och kernel rootkits), Malwarebytes Anti-Rootkit, Microsoft Defender Offline (för skanning innan Windows startar) och RogueKiller. Att köra dessa från en betrodd startbar USB-enhet eller i felsäkert läge minskar attackytan.
Vid uppstarts- eller firmwarehot är det lämpligt att använda räddningsmedia som Kaspersky Rescue Disk, återställa MBR med bootrec /fixmbr där så är lämpligt och i allvarliga fall, uppdatera/flasha BIOS/UEFI till en ren version från tillverkaren för att eliminera lågnivåpersistens.
Övervakning med Sysinternals är ovärderligt: Process Monitor (ProcMon) för process- och filaktivitet, Autoruns för att kontrollera vad som laddas vid start och RootkitRevealer för avvikelser på hög/låg nivå. SIEM-plattformar som Wazuh och telemetri i företagsmiljöer kan avslöja oväntade nätverksbeteenden eller integritetsförändringar.
Om infektion bekräftas är den rimliga sekvensen: koppla bort maskinen från nätverket, skanna från en extern miljö, utvärdera start-/firmwareintegriteten och, om det inte finns några garantier, säkerhetskopiera data, rensa disken helt (verktyg som DBAN) och installera om från verifierat media, och aktivera sedan åtgärder som säker start och TPM.
Förebyggande: Rimligt skydd mot rootkits
Förebyggande åtgärder är nyckeln. Håll ditt system uppdaterat, installera patchar på tredjepartsprogram, undvik körbara filer från tvivelaktiga källor och använd inte cracks eller keygens: de är en favoritvektor för att paketera rootkit- droppers och -loaders .
Inaktivera USB-autostart, skanna externa hårddiskar innan du öppnar dem, och i företagsmiljöer, begränsa eller blockera portar och använd brandväggar där det är lämpligt. Arbeta med oprivilegierade användarkonton, tillämpa principen om minsta behörighet och kräv administratörsuppgifter för kritiska ändringar, vilket minskar sannolikheten för tysta eskaleringar.
På kompatibel hårdvara, aktivera säker start och TPM från UEFI för att skydda startkedjan och nyckelförseglingen. Upprätthåll regelbundna offline- eller oföränderliga säkerhetskopior och använd ögonblicksbilder/återställningspunkter för att förkorta återställningstiden om något går fel.
Hur rootkits installeras: droppers, loaders och vektorer
Angripare distribuerar vanligtvis rootkits som kombinerade hot: en "dropper" som levererar paketet och en "loader" som utnyttjar sårbarheter (som buffertöverflöden) för att placera implantatet där det inte ska. Detta är förklätt som nätfiskemejl , falska installationsprogram eller bedrägliga uppdateringar.
Klassiska vektorer inkluderar kapning av meddelandeklienter för att sprida skadliga länkar, trojanisering av programvara på nedladdningsportaler, användning av annan skadlig kod som bärare och inbäddning i dokument med rikt innehåll (t.ex. vissa PDF-filer) som, när de öppnas, automatiskt utlöser droppern.
Attacktecken och spår av upptäckt
Målet med ett rootkit är att förbli oupptäckt. Ändå kan du observera konfigurationsändringar utan användarintervention, ovanliga nätverksavbrott på grund av dold trafik, okända processer, tjänster som inte kan stängas och säkerhetsverktyg som inaktiveras utan förklaring.
En annan ledtråd är den motstridiga informationen mellan verktyg som listar filer, processer eller registernycklar med olika sökvägar (API kontra råläsning). Det är här metoder som RootkitRevealer lyser upp: samma objekt som "finns" på disken men "inte finns" enligt API: et pekar på manipulation.
Huvudtyper av rootkits
Användarläge: Dessa fungerar på process- och biblioteksnivå. De är mer stabila och relativt lättare att upptäcka, även om de kan dölja filer, processer och nycklar. Ett klassiskt historiskt exempel är HackerDefender.
Kärnläge: Dessa virus finns i kärnan, med fullständig kontroll och stor smygduglighet; de är svåra att utrota och tenderar att orsaka instabilitet om de är dåligt utformade. Exempel på denna familj: TDL/Alureon i sin utveckling.
Hybrider: kombinerar användar- och kärnkomponenter för att balansera doldning och stabilitet, vilket resulterar i popularitet bland angripare på grund av deras praktiska mångsidighet.
Firmware/Bootkits: Dessa infekterar BIOS/UEFI eller bootsektorn (MBR/UEFI) för att laddas innan operativsystemet. Tekniker som Secure Boot har gjort många klassiska bootkits föråldrade, men moderna UEFI-implantat har dykt upp.
Virtuellt och minnesbaserat: VMBR:er laddar en hypervisor under operativsystemet och virtualiserar den; minnesbaserade sådana finns bara i RAM-minnet och försvinner vid omstart, mycket användbart för kortvariga operationer.
Exempel och markerad kronologi
De första rootkiten för SunOS utvecklades på 90-talet; 1999 beskrev Greg Hoglund NTRootkit (Windows, kernelläge), och 2003 dök HackerDefender (Windows 2000/XP, användarläge) upp, vilket ledde till en "dragkamp" med verktyg som RootkitRevealer.
År 2004 använde den så kallade "grekiska Watergate" ett rootkit för att hacka mer än 100 telefoner i ett GSM-nätverk; år 2005 upptäcktes det att Sony BMG inkluderade ett rootkit mot piratkopiering i vissa CD-skivor, vilket utlöste en enorm säkerhetskontrovers.
Sedan 2008 har bootkits som TDL (TDL-1 till TDL-4) utvecklats; år 2009 bevisade "Machiavelli" att macOS (dåvarande Mac OS X) inte heller var immun; år 2010 använde Stuxnet rootkit-komponenter för att sabotera iranska industriella system.
År 2012 dök Flame upp , en massiv modulär skadlig kod ; år 2018 blev LoJax det första UEFI-rootkit som upptäcktes i det fria; och år 2019 kombinerade Scranos stöld av autentiseringsuppgifter och dold intäktsgenerering med klickfarmar genom masskomprometterade webbläsare.
Resurser och rekommenderad läsning
Mark Russinovichs undersökning av Sony-fallet och hans artikel "Unearthing Rootkits" i Windows IT Pro hjälper till att förstå fenomenet och tekniken bakom RKR; boken "Rootkits: Subverting the Windows Kernel" av Greg Hoglund och Jamie Butler är den mest djupgående avhandlingen i ämnet.
Phrack-arkivet, Peter Szors "The Art of Computer Virus Research and Defense", Ed Skoudis och Lenny Zeltsers "Malware: Fighting Malicious Code" och serien "Windows Internals" (från och med fjärde upplagan) är viktiga material för alla som vill fördjupa sig i arkitektur och seriösa motåtgärder.
RootkitRevealer i Sysinternals ekosystem
RKR samexisterar med andra Sysinternals-verktyg som är användbara inom forskning: AccessChk och AccessEnum (effektiva behörigheter), Autoruns (allt som börjar med systemet), Process Explorer (vem öppnade vad och med vilken DLL), PsExec/PsTools (fjärrkörning och administration), PsLogList och PsLoggedOn (händelser och sessioner), Sigcheck (digitala signaturer), SDelete (säker radering), ShareEnum (delade resurser) och Sysmon (avancerad telemetri i händelseloggen).
Det är vanligt att hitta referenser till "Download 1.71" i historiska repositories, såväl som "Run now" via Sysinternals Live. Även om projektet är veteran, är dess tankesätt – att jämföra högnivå- kontra lågnivåmetoder – fortfarande nyckeln till rootkit-jakt.
RootkitRevealer är framför allt en läxa i defensiv ingenjörskonst: om något manipulerar det som API:et returnerar måste man titta under och jämföra det med vad som faktiskt finns på disken och i registret. Med god praxis, lämpliga verktyg och offline-verifiering vid behov är det möjligt att avslöja vad som försöker gömma sig där vi tror att ingen kommer att leta.
Index
- 1 Vad är RootkitRevealer och vilka system fungerar det på?
- 2 Vad är ett rootkit? Viktiga begrepp
- 3 Hur RootkitRevealer fungerar
- 4 Krav, god praxis och utförande
- 5 Tolkning av resultat och typiska avvikelser
- 6 Vanliga fel och problem med rootkitrevealer.exe i forensiska miljöer
- 7 Metoder för att upptäcka och svara på rootkit
- 8 Förebyggande: Rimligt skydd mot rootkits
- 9 Hur rootkits installeras: droppers, loaders och vektorer
- 10 Attacktecken och spår av upptäckt
- 11 Huvudtyper av rootkits
- 12 Exempel och markerad kronologi
- 13 Resurser och rekommenderad läsning
- 14 RootkitRevealer i Sysinternals ekosystem