- RootkitRevealer detecteert discrepanties tussen Windows API's en onbewerkte gegevens om verborgen problemen te ontdekken.
- Interpreteert resultaten: NTFS-metagegevens, register- en bestandssysteemafwijkingstypen.
- Gebruik de opties -a -c -m -r en uitvoering op afstand met PsExec; hiermee worden minimale foutpositieven vereist wanneer het systeem inactief is.
- Preventie en reactie: Secure Boot/TPM, offline scans, anti-rootkittools en gecontroleerd herstel.

RootkitRevealer is een van die legendarische hulpprogramma's die elke Windows-professional zou moeten kennen; het werd ontwikkeld door het Sysinternals-team onder leiding van Mark Russinovich en hoewel het al jaren geleden verscheen, blijft het een referentiepunt voor het begrijpen van de discrepanties die rootkits veroorzaken tussen wat het systeem laat zien en wat er daadwerkelijk op de schijf staat.
In tegenstelling tot andere scanners zoekt deze niet naar signatures of patronen: hij vergelijkt een overzicht op hoog niveau van de Windows API met een ruwe, gedetailleerde uitlezing van de schijf en het register. Dit ogenschijnlijk eenvoudige idee onthult wanneer malware probeert bestanden, sleutels of waarden te verbergen door systeemoproepen te manipuleren.
Wat is RootkitRevealer en op welke systemen werkt het?
Dit is een geavanceerd hulpmiddel voor het detecteren van rootkits in zowel gebruikers- als kernelmodus . Het werd oorspronkelijk ontwikkeld voor Windows XP en Windows Server 2003 (32-bit) en wordt doorgaans aangeboden als gratis, in het Engels en met een grootte van ongeveer 231 KiB; veel vermeldingen gaven destijds ook aan dat het compatibel was met Windows NT/2000/XP/Vista.
Na verloop van tijd werd de puur commandoregelversie ervan geëlimineerd omdat sommige malware-auteurs de naam van het uitvoerbare bestand begonnen te monitoren; om dit te voorkomen wordt het programma als een service gestart vanuit een willekeurig benoemde kopie van zichzelf, waardoor detectie op naam moeilijker wordt en het aanbieden van een volledig console-interface wordt bemoeilijkt.
Wat is een rootkit? Kernbegrippen
De term rootkit verwijst naar technieken en mechanismen waarmee malware (virussen, Trojaanse paarden, spyware, enz.) zich kan verbergen voor de gebruiker en beveiligingsprogramma's . Er worden verschillende soorten rootkits onderscheiden: persistente (die een herstart overleven), geheugenresidente (die na een herstart verdwijnen), gebruikersmodus en kernelmodus, naast andere moderne varianten.
Een rootkit in gebruikersmodus kan functies zoals FindFirstFile/FindNextFile, of de native enumerators van het systeem, onderscheppen om vermeldingen te filteren die de gewijzigde bestanden, processen of registersleutels zouden onthullen . Dit voorkomt dat Verkenner, de opdrachtprompt of register-editors kunnen zien wat er werkelijk aanwezig is.
Rootkits in kernelmodus gaan nog een stap verder: naast het onderscheppen van de native API kunnen ze ook rechtstreeks kernelstructuren manipuleren, bijvoorbeeld door hun proces uit de lijst met actieve processen te verwijderen, zodat het niet in Taakbeheer of Procesverkenner verschijnt, ook al draait het wel.
Er bestaan hybride bootloaders (deels gebruikersgebaseerd en deels kernelgebaseerd), firmware (BIOS/UEFI en andere componenten), bootloaders of bootkits (MBR/UEFI), virtuele bootloaders (waarbij het besturingssysteem in een virtuele machine draait) en geheugengebaseerde (niet-persistente) bootloaders. De laatstgenoemde kunnen bijzonder lastig te traceren zijn, terwijl firmware en bootloaders zelfs na een schone herinstallatie van het besturingssysteem blijven bestaan.
Hoe RootkitRevealer werkt
RKR zet twee momentopnamen tegenover elkaar: het overzicht op hoog niveau van de Windows API en de ruwe, gedetailleerde uitlezing van de bestanden in de volumestructuur en de registerstructuur (hives). Als een rootkit de API-aanroepen op hoog niveau manipuleert om iets te verbergen, wordt deze wijziging onthuld omdat wat er op de schijf en in het register staat niet overeenkomt met wat de API aangeeft, waardoor er diagnoseerbare afwijkingen ontstaan.
Theoretisch zou een rootkit zich ook kunnen proberen te verbergen voor RootkitRevealer door de ruwe leesbewerkingen te onderscheppen en de gegevens direct te herschrijven. Om dit te bereiken, zou het een diepgaande kennis van NTFS-, FAT- en registerformaten nodig hebben en in staat moeten zijn structuren te wijzigen zonder inconsistenties of duidelijke neveneffecten te veroorzaken – een zeer complexe technische prestatie die zelden is waargenomen. Zelfs dan bestaat er geen onfeilbare "universele detector": zelfs opstarten vanuit een externe omgeving (bijvoorbeeld met de beste Linux-distributies ) zou kunnen worden gesaboteerd door bijzonder geavanceerde en hardnekkige artefacten . In de praktijk is de meest robuuste aanpak een combinatie van online analyse en offline verificatie in vertrouwde omgevingen.
Vereisten, goede praktijken en uitvoering
Om deze scan uit te voeren, heeft het account de machtigingen "Bestanden en mappen back-uppen", "Stuurprogramma's laden" en "Volumebeheer" nodig (deze machtigingen worden standaard aan beheerders verleend in Windows XP en latere versies). Om valse positieven te minimaliseren, is het raadzaam de scan uit te voeren wanneer het systeem in ruststand is en er geen toepassingen geopend zijn.
Bij handmatige uitvoering drukt u eenvoudigweg op de scan-knop. Tijdens het proces geeft het programma voortgangsupdates en een lijst met eventuele afwijkingen. Er zijn twee relevante opties: "NTFS-metagegevensbestanden verbergen" (standaard ingeschakeld om te voorkomen dat standaardmetagegevens die door NTFS worden verborgen, worden weergegeven) en "Logboek scannen" (standaard ingeschakeld; als u deze optie uitschakelt, wordt het Windows-register niet gescand ).
Voor automatisering ondersteunt het parameters waarmee u kunt starten, inloggen en afsluiten zonder tussenkomst: rootkitrevealer outputfile]. De optie -a start en eindigt automatisch; -c het resultaat in CSV weergeven; -m geeft NTFS-metagegevens weer; en -r schakelt registerscanning uit. Het uitvoerbestand moet in een toegankelijk lokaal volume.
Uitvoering op afstand is mogelijk met PsExec. Bijvoorbeeld: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log. Met -c, de voortgang wordt niet weergegeven en afwijkingen worden afgedrukt in CSV, waardoor het importeren gemakkelijker wordt in databases of scripts.
Interpretatie van de resultaten en typische discrepanties
Afwijkingen die "verborgen zijn voor de Windows API" komen het meest voor wanneer een rootkit gegevens verbergt. Als u de weergave van NTFS-metagegevens niet hebt ingeschakeld, ziet u verschillen omdat NTFS zijn interne bestanden, zoals $MFT of $Secure , verbergt voor de API . Sommige antivirusprogramma's slaan gegevens ook op in alternatieve streams en verbergen deze, wat tot vergelijkbare fouten leidt.
Dit zijn enkele van de standaard metadata die zijn gedefinieerd in 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 correleert drie bronnen in het bestandssysteem: de Windows API, de Master File Table (MFT) en de directory-indexen op de schijf. Combinaties zoals "Zichtbaar in de API maar niet in de index of MFT", "Zichtbaar in de MFT maar niet in de API", enzovoort, kunnen voorkomen, vooral als een bestand tijdens de analyse wordt aangemaakt of verwijderd en een periode van tijdelijke inconsistentie veroorzaakt.
Voorbeeld van aanmaken tijdens het scannen: C:\newfile.txt, 8 bytes groot, met de melding "Zichtbaar in de API, maar niet in de index of MFT". Deze gevallen wijzen niet noodzakelijkerwijs op rootkits, maar op gelijktijdige veranderingen terwijl ze onderzocht werden.
Als "Toegang geweigerd" verschijnt, is er iets mis: RootkitRevealer gebruikt mechanismen om toegang te krijgen tot elk bestand, elke map of elke sleutel, dus dit bericht zou onder normale omstandigheden niet mogen verschijnen.
In het register zijn er verschillende interessante inconsistenties: "De lengte van de Windows API komt niet overeen met de ruwe gegevens" (mogelijk een poging om de werkelijke inhoud te verbergen), "Typefout" (bijv. REG_SZ wordt weergegeven, maar zou REG_BINARY moeten zijn), "Sleutelnaam bevat ingebedde NULL-waarden" (een bekende techniek die misbruik maakt van het verschil tussen NULL-terminated strings en strings met tellingen). Voor dit laatste geval helpt het hulpprogramma RegDelNull van Sysinternals bij het opschonen van sleutels met ingebedde NULL-waarden.
Er kan sprake zijn van ‘gegevensmismatch’ als een waarde tijdens de scan verandert (bijvoorbeeld SQL Server-uptimes zoals HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc). U moet valideren dat de waarde toebehoort aan legitieme componenten die gegevens in realtime bijwerken.
Een illustratief voorbeeld was de HackerDefender-rootkit: de services en stuurprogramma's ervan waren onzichtbaar voor de Windows API, maar waren wel aanwezig bij het rechtstreeks uitlezen van het register; hetzelfde gold voor de bestanden, die wel degelijk op de schijf werden gedetecteerd door de directe analyse van het bestandssysteem.
Veelvoorkomende fouten en problemen met rootkitrevealer.exe in forensische omgevingen
Sommige forensische kits (bijvoorbeeld WinTaylor) tonen typische fouten met betrekking tot rootkitrevealer.exe , zoals: "geen geldige Win32-toepassing", "niet gevonden", "toepassingsfout" of "probleem bij het starten". Deze berichten verschijnen meestal tijdens de installatie, het opstarten of het afsluiten van het systeem, of als gevolg van conflicten met andere actieve toepassingen.
De meest voorkomende oorzaken zijn beschadigde of ontbrekende bestanden, ongeldige registervermeldingen, malware-infecties, onvolledige verwijderingen of conflicten met andere software. De bron kan een beschadigde registervermelding zijn, een accidentele verwijdering door een ander programma, een mislukte download of een eerdere infectie die het binaire bestand heeft gewijzigd.
Als een bijzonderheid van de inventaris, documenteren sommige vermeldingen het uitvoerbare bestand met een geschatte grootte van 334.720 bytes en hashes zoals SHA‑1 en MD5 (bijv. SHA‑1 d39e8a3fe92adc7d7fbc5293edf8a7b965484a59, MD5 ee738fe9bcdd605821002cec8c7206db) en CRC32 98b1af0b; ze verwijzen ook naar de versie 2.1 in zijn container-app en de categorie “Forensische toolkit/besturingssysteem”.
Methoden voor rootkitdetectie en -respons
Het opsporen van een rootkit is niet altijd eenvoudig. Naast specifieke tools worden technieken zoals signatuuranalyse van bekende bedreigingen, koude vergelijking van structuren, geheugenonderzoek naar hooks en wijzigingen, en het bekijken van geheugendumps na crashes gecombineerd om verdachte modules te identificeren . Het is ook gebruikelijk om te vertrouwen op Intrusion Prevention Systems (IPS) om het netwerk te beschermen en infectievectoren te verminderen.
Gespecialiseerde hulpprogramma's zijn onder andere GMER (voor het detecteren van verborgen processen en kernelwijzigingen), Kaspersky TDSSKiller (speciaal voor het detecteren van bootkits en kernel-rootkits), Malwarebytes Anti-Rootkit, Microsoft Defender Offline (voor het scannen voordat Windows opstart) en RogueKiller. Door deze programma's vanaf een betrouwbare opstartbare USB-schijf of in de veilige modus uit te voeren, wordt het aanvalsoppervlak verkleind.
Voor boot- of firmwarebedreigingen is het raadzaam om reddingsmedia te gebruiken zoals Kaspersky Rescue Disk, de MBR te herstellen met bootrec /fixmbr Indien van toepassing en in ernstige gevallen, moet u het BIOS/UEFI bijwerken/flashen naar een schone versie van de fabrikant om het probleem op te lossen. lage persistentie.
Monitoring met Sysinternals is van onschatbare waarde: Process Monitor (ProcMon) voor proces- en bestandsactiviteit, Autoruns om te controleren wat er bij het opstarten wordt geladen, en RootkitRevealer voor afwijkingen op hoog en laag niveau. SIEM-platforms zoals Wazuh en telemetrie in bedrijfsomgevingen kunnen onverwacht netwerkgedrag of wijzigingen in de integriteit aan het licht brengen.
Als een infectie is vastgesteld, is de logische volgorde als volgt: koppel de machine los van het netwerk, scan vanuit een externe omgeving, controleer de integriteit van het opstartproces/de firmware en, als er geen garanties zijn, maak een back-up van de gegevens, wis de schijf volledig (met tools zoals DBAN) en installeer het besturingssysteem opnieuw vanaf geverifieerde media, en schakel vervolgens maatregelen zoals Secure Boot en TPM in.
Preventie: Redelijke bescherming tegen rootkits
Preventie is essentieel. Houd uw systeem up-to-date, installeer patches voor software van derden, vermijd uitvoerbare bestanden van dubieuze bronnen en gebruik geen cracks of keygens: dit is een veelgebruikte methode om rootkit- droppers en -loaders te verspreiden.
Schakel automatisch opstarten via USB uit, scan externe schijven voordat u ze opent en beperk of blokkeer in bedrijfsomgevingen poorten en pas firewalls toe waar nodig. Werk met gebruikersaccounts zonder beheerdersrechten, pas het principe van minimale bevoegdheden toe en vereis beheerdersreferenties voor kritieke wijzigingen om de kans op ongemerkte escalaties te verkleinen.
Schakel op compatibele hardware Secure Boot en TPM in via de UEFI om de opstartprocedure en sleutelversleuteling te beschermen. Maak regelmatig offline of onveranderlijke back-ups en gebruik snapshots/herstelpunt om de hersteltijd te verkorten als er iets misgaat.
Hoe rootkits worden geïnstalleerd: droppers, loaders en vectoren
Aanvallers verspreiden rootkits doorgaans als gecombineerde bedreigingen: een "dropper" die het pakket aflevert en een "loader" die kwetsbaarheden (zoals bufferoverloop) misbruikt om de malware te plaatsen waar deze niet thuishoort. Dit gebeurt vermomd als phishing-e-mails , nep-installatieprogramma's of frauduleuze updates.
Klassieke verspreidingsmethoden zijn onder andere het kapen van berichtenapps om schadelijke links te verspreiden, het installeren van trojans op downloadportalen, het gebruik van andere malware als drager en het inbedden in documenten met veel inhoud (bijvoorbeeld bepaalde PDF's) die, wanneer ze worden geopend, automatisch de dropper activeren.
Aanvalssignalen en detectie-aanwijzingen
Het doel van een rootkit is om onopgemerkt te blijven. Toch kunt u configuratiewijzigingen waarnemen zonder tussenkomst van de gebruiker, ongebruikelijke netwerkonderbrekingen als gevolg van verborgen verkeer, onbekende processen, services die niet kunnen worden afgesloten en beveiligingsprogramma's die zonder uitleg zijn uitgeschakeld.
Een andere aanwijzing is de tegenstrijdige informatie tussen hulpprogramma's die bestanden, processen of registersleutels weergeven met behulp van verschillende methoden (API versus directe uitlezing). Dit is waar methoden zoals RootkitRevealer hun waarde bewijzen: hetzelfde object dat "wel" op de schijf staat, maar volgens de API "niet", wijst op manipulatie.
Belangrijkste soorten rootkits
Gebruikersmodus: Deze modus werkt op proces- en bibliotheekniveau. Hij is stabieler en relatief gemakkelijker te detecteren, hoewel hij bestanden, processen en sleutels kan verbergen. Een klassiek historisch voorbeeld is HackerDefender.
Kernelmodus: Deze virussen bevinden zich in de kernel, waar ze volledige controle hebben en zich goed verborgen kunnen houden; ze zijn moeilijk uit te roeien en veroorzaken vaak instabiliteit als ze slecht ontworpen zijn. Voorbeelden van deze familie: TDL/Alureon in zijn evolutie.
Hybride systemen: combineren gebruikers- en kernelcomponenten om een balans te vinden tussen verhulling en stabiliteit, waardoor ze populair zijn bij aanvallers vanwege hun praktische veelzijdigheid.
Firmware/bootkits: Deze infecteren het BIOS/UEFI of de opstartsector (MBR/UEFI) om te laden vóór het besturingssysteem. Technologieën zoals Secure Boot hebben veel klassieke bootkits overbodig gemaakt, maar er zijn moderne UEFI-implantaten ontstaan.
Virtuele en geheugengebaseerde hypervisors: VMBR's laden een hypervisor onder het besturingssysteem en virtualiseren deze; geheugengebaseerde hypervisors bevinden zich alleen in het RAM-geheugen en verdwijnen na een herstart, wat erg handig is voor tijdelijke bewerkingen.
Voorbeelden en gemarkeerde chronologie
De eerste rootkits voor SunOS werden ontwikkeld in de jaren negentig; in 1999 beschreef Greg Hoglund NTRootkit (Windows, kernelmodus), en in 2003 verscheen HackerDefender (Windows 2000/XP, gebruikersmodus), wat leidde tot een "touwtrekkerij" met tools zoals RootkitRevealer.
In 2004 werd bij het zogenaamde "Griekse Watergate" een rootkit gebruikt om meer dan 100 telefoons op een GSM-netwerk te hacken; in 2005 werd ontdekt dat Sony BMG een antipiraterij-rootkit in sommige cd's had opgenomen, wat een enorme veiligheidscontroverse veroorzaakte.
Sinds 2008 zijn bootkits zoals TDL (TDL-1 tot TDL-4) geëvolueerd; in 2009 bewees "Machiavelli" dat macOS (toen nog Mac OS X) er ook niet immuun voor was; in 2010 gebruikte Stuxnet rootkitcomponenten om Iraanse industriële systemen te saboteren.
In 2012 verscheen Flame , een omvangrijke modulaire malware ; in 2018 werd LoJax de eerste UEFI-rootkit die in het wild werd gedetecteerd; en in 2019 combineerde Scranos diefstal van inloggegevens en verborgen inkomsten genereren met clickfarms via massaal gecompromitteerde browsers.
Bronnen en aanbevolen literatuur
Het onderzoek van Mark Russinovich naar de Sony-zaak en zijn artikel "Unearthing Rootkits" in Windows IT Pro helpen om het fenomeen en de techniek achter RKR te begrijpen; het boek "Rootkits: Subverting the Windows Kernel" van Greg Hoglund en Jamie Butler is de meest diepgaande verhandeling over dit onderwerp.
Het Phrack Archive, Peter Szor's "The Art of Computer Virus Research and Defense", Ed Skoudis en Lenny Zeltser's "Malware: Fighting Malicious Code" en de "Windows Internals"-serie (vanaf de 4e editie) zijn essentiële bronnen voor iedereen die zich verder wil verdiepen in architectuur en serieuze tegenmaatregelen.
RootkitRevealer in het Sysinternals-ecosysteem
RKR werkt samen met andere Sysinternals-hulpprogramma's die nuttig zijn voor onderzoek: AccessChk en AccessEnum (effectieve machtigingen), Autoruns (alles wat met het systeem start), Process Explorer (wie wat heeft geopend en met welke DLL), PsExec/PsTools (uitvoering en beheer op afstand), PsLogList en PsLoggedOn (gebeurtenissen en sessies), Sigcheck (digitale handtekeningen), SDelete (veilige verwijdering), ShareEnum (gedeelde resources) en Sysmon (geavanceerde telemetrie in het gebeurtenislogboek).
Het is gebruikelijk om in oude repositories verwijzingen naar "Download 1.71" te vinden, evenals "Nu uitvoeren" via Sysinternals Live. Hoewel het project al lang bestaat, blijft de denkwijze ervan – het vergelijken van benaderingen op hoog en laag niveau – essentieel voor het opsporen van rootkits.
RootkitRevealer is bovenal een les in defensieve engineering: als iets de resultaten van de API manipuleert, moet je onder de oppervlakte kijken en deze vergelijken met wat er daadwerkelijk op de schijf en in het register staat. Met goede werkwijzen, de juiste tools en offline verificatie waar nodig, is het mogelijk om te ontdekken wat zich probeert te verbergen op plekken waar niemand zal kijken.