- RootkitRevealer oppdager avvik mellom Windows API-er og rådata for å avdekke skjulte problemer.
- Tolker resultater: NTFS-metadata, avvikstyper i register og filsystem.
- Bruk -a -c -m -r og alternativene for ekstern kjøring med PsExec; det krever minimale falske positiver når systemet er inaktivt.
- Forebygging og respons: Sikker oppstart/TPM, frakoblede skanninger, verktøy mot rootkit og kontrollert gjenoppretting.

RootkitRevealer er et av de legendariske verktøyene som alle Windows-profesjonelle burde kjenne til. Det ble laget av Sysinternals-teamet med Mark Russinovich i spissen, og selv om det dukket opp for mange år siden, er det fortsatt en referanse for å forstå hvordan man oppdager avvik forårsaket av rootkits mellom hva systemet viser og hva som faktisk er på disken.
I motsetning til andre skannere ser den ikke etter signaturer eller mønstre: den sammenligner en oversikt over Windows API med en rå, lavnivålesning av disken og registeret. Denne tilsynelatende enkle ideen avslører når skadelig programvare prøver å skjule filer, nøkler eller verdier ved å manipulere systemkall.
Hva er RootkitRevealer, og hvilke systemer fungerer det på?
Dette er et avansert verktøy for å oppdage tegn på rootkits i både bruker- og kjernemodus . Det ble opprinnelig utviklet for Windows XP og Windows Server 2003 (32-bit), og er vanligvis oppført som gratis, på engelsk, og omtrent 231 KiB i størrelse. Mange oppføringer indikerte også kompatibilitet med Windows NT/2000/XP/Vista på den tiden.
Over tid ble den rene kommandolinjeversjonen eliminert fordi noen skadevareutviklere begynte å overvåke navnet på den kjørbare filen. For å unngå dette startes programmet som en tjeneste fra en tilfeldig navngitt kopi av seg selv, noe som gjør det vanskeligere å identifisere ved navn og kompliserer leveringen av et 100 % konsollgrensesnitt.
Hva er et rootkit? Viktige begreper
Begrepet rootkit refererer til teknikker og mekanismer som lar skadelig programvare (virus, trojanere, spionprogrammer osv.) skjule seg for brukeren og sikkerhetsverktøy . Flere familier skilles ut: vedvarende (overlever omstarter), minneresidente (forsvinner ved omstart), brukermodus og kjernemodus, blant andre moderne varianter.
Et brukermodus-rootkit kan fange opp funksjoner som FindFirstFile/FindNextFile, eller systemets innebygde opptellinger, for å filtrere oppføringer som ville avsløre endrede filer, prosesser eller registernøkler . Dette forhindrer Utforsker, ledeteksten eller registerredigerere fra å se hva som faktisk finnes.
Kjernemodus-rootkits går lenger: i tillegg til å avskjære det native API-et, kan de direkte manipulere kjernestrukturer, for eksempel ved å fjerne prosessen sin fra listen over aktive prosesser slik at den ikke vises i Oppgavebehandling eller Prosessutforsker selv om den kjører.
Det finnes hybrider (delvis brukerbaserte og delvis kjernebaserte), fastvare (BIOS/UEFI og andre komponenter), oppstarts- eller oppstartspakke (MBR/UEFI), virtuelle (som plasserer selve operativsystemet inne i en virtuell maskin) og minnebaserte (ikke-vedvarende) oppstartslastere. Sistnevnte kan være spesielt unnvikende, mens fastvare og oppstartslastere vedvarer selv etter en ren reinstallasjon av operativsystemet.
Hvordan RootkitRevealer fungerer
RKR setter to øyeblikksbilder i kontrast: oversikten over Windows API og den rå, lavnivåavlesningen av volumet og registerets undertrefiler (hives). Hvis et rootkit tukler med oversiktskall for å skjule noe, avsløres denne endringen fordi det som er på disken og i registeret ikke samsvarer med det API-et sier er der, noe som genererer diagnostiserbare avvik.
Teoretisk sett kan et rootkit også forsøke å gjemme seg fra RootkitRevealer ved å fange opp rålesingene og omskrive dataene underveis. For å oppnå dette trenger den inngående kunnskap om NTFS-, FAT- og registerformater, og være i stand til å endre strukturer uten å forårsake inkonsekvenser eller åpenbare bivirkninger – en svært kompleks teknisk bragd som sjelden har blitt observert. Likevel finnes det ingen ufeilbarlig "universell detektor": selv oppstart fra et eksternt miljø (for eksempel ved bruk av de beste Linux-distribusjonene ) kan bli sabotert av spesielt sofistikerte og vedvarende artefakter . I praksis er den mest robuste tilnærmingen å kombinere online-analyse med offline-verifisering i pålitelige miljøer.
Krav, god praksis og utførelse
For å kjøre denne skanningen trenger kontoen rettighetene «Sikkerhetskopier filer og mapper», «Last inn drivere» og «Volumvedlikehold» (disse gis som standard til administratorer i Windows XP og nyere). For å minimere falske positiver anbefales det å kjøre skanningen med systemet i ro og ingen programmer åpne.
Ved manuell utførelse trykker du bare på skanneknappen. Under prosessen vil programmet gi fremdriftsoppdateringer og liste opp eventuelle avvik. Det er to relevante alternativer: «Skjul NTFS-metadatafiler» (aktivert som standard for å unngå å vise standardmetadata skjult av NTFS) og «Skannelogg» (aktivert som standard; hvis du deaktiverer den, hopper du over skanningen av Windows-registeret ).
For automatisering støtter den parametere som lar deg starte, logge inn og avslutte uten inngripen: rootkitrevealer outputfile]. Valget -a starter og slutter automatisk; -c skriv ut resultatet i CSV; -m viser NTFS-metadata; og -r deaktiverer registerskanning. Utdatafilen må være i en tilgjengelig lokalt volum.
Fjernkjøring er mulig med PsExec. For eksempel: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log. Med -c, fremdriften vises ikke, og avvik skrives ut i CSV-format, noe som gjør det enklere å importere i databaser eller skript.
Tolkning av resultater og typiske avvik
Avvik i «Skjult fra Windows API» er de vanligste når et rootkit skjuler oppføringer. Hvis du ikke har aktivert visning av NTFS-metadata, vil du se forskjeller fordi NTFS skjuler sine interne filer, for eksempel $MFT eller $Secure , fra API-et . Noen antivirusprogrammer lagrer også data i alternative strømmer og skjuler dem, noe som resulterer i lignende feil.
Dette er noen av standardmetadataene som er definert 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 korrelerer tre kilder i filsystemet: Windows API, Master File Table (MFT) og katalogindeksene på disken. Kombinasjoner som «Synlig i API, men ikke i indeksen eller MFT», «Synlig i MFT, men ikke i API» osv. kan dukke opp, spesielt hvis en fil opprettes eller slettes under analysen og produserer et vindu med midlertidig inkonsekvens.
Eksempel på oppretting under skanning: C:\newfile.txt, 8 byte i størrelse, med meldingen «Synlig i API-et, men ikke i indeksen eller MFT». Disse tilfellene peker ikke nødvendigvis på rootkits, men på samtidige endringer mens de blir undersøkt.
Hvis «Ingen tilgang» vises, er noe galt: RootkitRevealer bruker mekanismer for å få tilgang til filer, mapper eller nøkler, så den meldingen skal ikke vises under normale kjøreforhold.
I registeret er det flere interessante avvik: «Windows API-lengde er inkonsistent med rådata» (mulig forsøk på å skjule det faktiske innholdet), «Typeavvik» (f.eks. REG_SZ annonseres, men det skal være REG_BINARY), «Nøkkelnavnet inneholder innebygde NULL-verdier» (en kjent teknikk som utnytter forskjellen mellom NULL-avsluttede strenger og strenger med antall). I dette siste tilfellet hjelper Sysinternals' RegDelNull- verktøy med å rense nøkler med innebygde NULL-er.
«Dataavvik» kan oppstå hvis en verdi endres under skanningen (f.eks. SQL Server-oppetider som HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc). Du må bekrefte at verdien tilhører legitime komponenter som oppdaterer data i sanntid.
Et illustrerende eksempel var HackerDefender-rootkittet: tjenestene og driverne var usynlige for Windows API, men var tilstede i den råe lesingen av registerstrukturen; det samme gjaldt filene, som den direkte analysen av filsystemet oppdaget på disk.
Vanlige feil og problemer med rootkitrevealer.exe i rettsmedisinske miljøer
Noen rettsmedisinske sett (for eksempel WinTaylor) viser typiske feil relatert til rootkitrevealer.exe , for eksempel: «ikke et gyldig Win32-program», «ikke funnet», «programfeil» eller «problem med oppstart». Disse meldingene oppstår vanligvis under systeminstallasjon, oppstart eller avslutning, eller på grunn av konflikter med andre residente applikasjoner.
De vanligste årsakene inkluderer ødelagte eller manglende filer, ugyldige registeroppføringer, skadelig programvareinfeksjoner, ufullstendige avinstallasjoner eller konflikter med annen programvare. Kilden kan være en ødelagt registeroppføring, utilsiktet sletting av et annet verktøy, en mislykket nedlasting eller en tidligere infeksjon som endret binærfilen.
Som en kuriositet i inventaret dokumenterer noen oppføringer den kjørbare filen med en omtrentlig størrelse på 334 720 byte og hashkoder som SHA-1 og MD5 (f.eks. SHA-1 d39e8a3fe92adc7d7fbc5293edf8a7b965484a59, MD5 ee738fe9bcdd605821002cec8c7206db) og CRC32 98b1af0b; de refererer også til versjon 2.1 i container-appen og kategorien «Rettsmedisinsk verktøysett/operativsystem».
Metoder for deteksjon og respons på rootkit
Det er ikke alltid enkelt å oppdage et rootkit. Utover spesifikke verktøy kombineres teknikker som signaturanalyse av kjente trusler, kald sammenligning av strukturer, minnesøk etter hooks og endringer, og gjennomgang av minnedumper etter krasj for å identifisere mistenkelige moduler . Det er også vanlig å bruke Intrusion Prevention Systems (IPS) for å beskytte nettverket og redusere infeksjonsvektorer.
Spesialiserte verktøy inkluderer GMER (for å oppdage skjulte prosesser og kjerneendringer), Kaspersky TDSSKiller (spesielt for å oppdage bootkits og kernel rootkits), Malwarebytes Anti-Rootkit, Microsoft Defender Offline (for skanning før Windows starter) og RogueKiller. Å kjøre disse fra en klarert oppstartbar USB-stasjon eller i sikkermodus reduserer angrepsflaten.
Ved oppstarts- eller fastvaretrusler anbefales det å bruke redningsmedier som Kaspersky Rescue Disk, gjenopprette MBR med bootrec /fixmbr der det er aktuelt og i alvorlige tilfeller, oppdater/flash BIOS/UEFI til en ren versjon fra produsenten for å utrydde lavnivå utholdenhet.
Overvåking med Sysinternals er uvurderlig: Process Monitor (ProcMon) for prosess- og filaktivitet, Autoruns for å sjekke hva som lastes inn ved oppstart, og RootkitRevealer for avvik på høyt/lavt nivå. SIEM-plattformer som Wazuh og telemetri i bedriftsmiljøer kan avdekke uventet nettverksatferd eller integritetsendringer.
Hvis infeksjonen bekreftes, er den rimelige rekkefølgen: koble maskinen fra nettverket, skann fra et eksternt miljø, evaluer oppstarts-/fastvareintegriteten, og hvis det ikke finnes noen garantier, sikkerhetskopier data, rengjør disken fullstendig (verktøy som DBAN) og installer på nytt fra verifiserte medier, og aktiver deretter tiltak som sikker oppstart og TPM.
Forebygging: Rimelig beskyttelse mot rootkits
Forebygging er nøkkelen. Hold systemet oppdatert, installer oppdateringer på tredjepartsprogramvare, unngå kjørbare filer fra tvilsomme kilder, og ikke bruk cracks eller keygens: de er en favorittvektor for å pakke rootkit- droppere og -lastere .
Deaktiver USB-autokjøring, skann eksterne disker før du åpner dem, og i bedriftsmiljøer, begrens eller blokker porter og bruk brannmurer der det er aktuelt. Arbeid med uprivilegerte brukerkontoer, bruk prinsippet om minste privilegium og krev administratorlegitimasjon for kritiske endringer, noe som reduserer sannsynligheten for stille eskaleringer.
På kompatibel maskinvare, aktiver Secure Boot og TPM fra UEFI for å beskytte oppstartskjeden og nøkkelforseglingen. Ta regelmessige sikkerhetskopier uten nett eller uforanderlige sikkerhetskopier, og bruk øyeblikksbilder/gjenopprettingspunkter for å forkorte gjenopprettingstiden hvis noe går galt.
Slik installeres rootkits: droppere, lastere og vektorer
Angripere distribuerer vanligvis rootkits som kombinerte trusler: en «dropper» som leverer pakken og en «loader» som utnytter sårbarheter (som bufferoverløp) for å plante implantatet der det ikke skal. Dette er kamuflert som phishing-e-poster , falske installasjonsprogrammer eller uredelige oppdateringer.
Klassiske vektorer inkluderer kapring av meldingsklienter for å spre ondsinnede lenker, trojanering av programvare på nedlastingsportaler, bruk av annen skadelig programvare som bærere og innebygging i dokumenter med rikt innhold (f.eks. visse PDF-er) som, når de åpnes, automatisk utløser dropperen.
Angrepstegn og deteksjonsledetråder
Målet med et rootkit er å forbli uoppdaget. Likevel kan du observere konfigurasjonsendringer uten brukerinngripen, uvanlige nettverksavbrudd på grunn av skjult trafikk, ukjente prosesser, tjenester som ikke kan lukkes og sikkerhetsverktøy deaktivert uten forklaring.
En annen ledetråd er den motstridende informasjonen mellom verktøy som viser filer, prosesser eller registernøkler ved hjelp av forskjellige stier (API versus rå lesing). Det er her tilnærminger som RootkitRevealer skinner frem: det samme objektet som "er" på disken, men "ikke er" i henhold til API-et, peker på manipulasjon.
Hovedtyper av rootkits
Brukermodus: Disse opererer på prosess- og biblioteknivå. De er mer stabile og relativt enklere å oppdage, selv om de kan skjule filer, prosesser og nøkler. Et klassisk historisk eksempel er HackerDefender.
Kjernemodus: Disse virusene befinner seg i kjernen, med full kontroll og stor stealth; de er vanskelige å utrydde og har en tendens til å forårsake ustabilitet hvis de er dårlig designet. Eksempler på denne familien: TDL/Alureon i sin utvikling.
Hybrider: kombinerer bruker- og kjernekomponenter for å balansere skjuling og stabilitet, noe som resulterer i popularitet blant angripere på grunn av deres praktiske allsidighet.
Fastvare/bootkits: Disse infiserer BIOS/UEFI eller oppstartssektoren (MBR/UEFI) for å laste før operativsystemet. Teknologier som Secure Boot har gjort mange klassiske bootkits foreldet, men moderne UEFI-implantater har dukket opp.
Virtuelt og minnebasert: VMBR-er laster inn en hypervisor under operativsystemet og virtualiserer den; minnebaserte hypervisorer ligger bare i RAM og forsvinner ved omstart, noe som er veldig nyttig for flyktige operasjoner.
Eksempler og uthevet kronologi
De første rootkittene for SunOS ble utviklet på 90-tallet; i 1999 beskrev Greg Hoglund NTRootkit (Windows, kjernemodus), og i 2003 dukket HackerDefender (Windows 2000/XP, brukermodus) opp, noe som førte til en "dragkamp" med verktøy som RootkitRevealer.
I 2004 brukte den såkalte «greske Watergate» et rootkit til å hacke mer enn 100 telefoner på et GSM-nettverk; i 2005 ble det oppdaget at Sony BMG inkluderte et anti-piratkopierings-rootkit i noen CD-er, noe som utløste en enorm sikkerhetskontrovers.
Siden 2008 har bootkits som TDL (TDL-1 til TDL-4) utviklet seg; i 2009 beviste «Machiavelli» at macOS (den gang Mac OS X) heller ikke var immun; i 2010 brukte Stuxnet rootkit-komponenter for å sabotere iranske industrisystemer.
I 2012 dukket Flame , en massiv modulær skadevare, opp; i 2018 ble LoJax det første UEFI-rootkittet som ble oppdaget i naturen; og i 2019 kombinerte Scranos legitimasjonstyveri og skjult inntektsgenerering med klikkfarmer gjennom massekompromitterte nettlesere.
Ressurser og anbefalt lesestoff
Mark Russinovichs undersøkelse av Sony-saken og artikkelen hans «Unearthing Rootkits» i Windows IT Pro bidrar til å forstå fenomenet og teknikken bak RKR; boken «Rootkits: Subverting the Windows Kernel» av Greg Hoglund og Jamie Butler er den mest dyptgående avhandlingen om emnet.
Phrack-arkivet, Peter Szors «Kunsten å undersøke og defense i datavirus», Ed Skoudis og Lenny Zeltsers «Malware: Fighting Malicious Code» og serien «Windows Internals» (fra 4. utgave) er viktig materiale for alle som ønsker å fordype seg i arkitektur og seriøse mottiltak.
RootkitRevealer i Sysinternals-økosystemet
RKR sameksisterer med andre Sysinternals-verktøy som er nyttige i forskning: AccessChk og AccessEnum (effektive tillatelser), Autoruns (alt som starter med systemet), Process Explorer (hvem åpnet hva og med hvilken DLL), PsExec/PsTools (fjernkjøring og administrasjon), PsLogList og PsLoggedOn (hendelser og økter), Sigcheck (digitale signaturer), SDelete (sikker sletting), ShareEnum (delte ressurser) og Sysmon (avansert telemetri i hendelsesloggen).
Det er vanlig å finne referanser til «Last ned 1.71» i historiske repositorier, samt «Kjør nå» via Sysinternals Live. Selv om prosjektet er et erfarent prosjekt, er tankegangen – å sammenligne tilnærminger på høyt nivå med tilnærminger på lavt nivå – fortsatt nøkkelen til rootkit-jakt.
RootkitRevealer er fremfor alt en leksjon i defensiv ingeniørkunst: hvis noe manipulerer det API-et returnerer, må du se under og sammenligne det med det som faktisk finnes på disken og i registeret. Med god praksis, passende verktøy og offline-verifisering når det er nødvendig, er det mulig å avdekke hva som prøver å gjemme seg der vi tror ingen vil lete.