Da ich mich nun viel mit Forensik unter Verwendung von Open-Source-Tools beschäftige, bin ich auf Andrea Fortunas Seite mit vielen nützlichen Informationen gestoßen. In einem Fall liegt er jedoch (nun) leider falsch. Das hängt möglicherweise von der Windows 10 Version ab. Ich habe hier Win10 Edu 21H2 für meine Untersuchung verwendet. Da Andrea Fortunas Seite scheinbar der einzige Hinweis auf technische Infos zum Thema pagefile.sys Forensik mit yara von Virustotal ist, möchte ich das hier für interessierte Leser korrigieren, um false positive zu verhindern. Hier sind Andreas Fortunas Infos dazu zu finden:
https://andreafortuna.org/2019/04/17/how-to-extract-forensic-artifacts-from-pagefile-sys/
Die dort beschrieben Anwendung von yara und eines Scans nach URL-Artefakten mit „strings“ führen zu Fehlalarmen, die durch Microsoft Defender-Speicherartefakte durch Malware-Signaturen verursacht werden, selbst bei einem frisch installierten Windows:
Yara findet bei mir (frisch installiertes Windows 10, gerade mal 5 Minuten mit dem Internet verbunden):
APT1_LIGHTBOLT pagefile.sys
Tofu_Backdoor pagefile.sys
APT9002Code pagefile.sys
APT9002Strings pagefile.sys
APT9002 pagefile.sys
Cobalt_functions pagefile.sys
NK_SSL_PROXY pagefile.sys
Industroyer_Malware_1 pagefile.sys
Industroyer_Malware_2 pagefile.sys
malware_red_leaves_memory pagefile.sys
GEN_PowerShell pagefile.sys
SharedStrings pagefile.sys
Trojan_W32_Gh0stMiancha_1_0_0 pagefile.sys
spyeye pagefile.sys
with_sqlite pagefile.sys
MALW_trickbot_bankBot pagefile.sys
XMRIG_Miner pagefile.sys
Ursnif pagefile.sys
easterjackpos pagefile.sys
Bolonyokte pagefile.sys
Cerberus pagefile.sys
DarkComet_1 pagefile.sys
xtreme_rat pagefile.sys
xtremrat pagefile.sys
Was definitiv falsch positiv ist!
Ich habe die malware_index.yar von
wget https://github.com/Yara-Rules/rules/archive/refs/heads/master.zip
verwendet.
Selbst wenn das frisch installierte Windows 10 vorher vollständig vom Netzwerk isoliert war, findet yara schon einige Artefakte:
APT1_LIGHTBOLT pagefile.sys
GEN_PowerShell pagefile.sys
with_sqlite pagefile.sys
Bolonyokte pagefile.sys
Die Liste der extrahierten URLs mit dem Unix-Befehl „strings“
$ strings pagefile.sys | egrep "^https?://" | sort | uniq > url_findings.txt
wird unter Windows selbst als Malware erkannt, weil dort Malware-URLs gefunden werden, wenn die Maschine jemals mit dem Netz verbunden war ;-). Ohne Netz finden sich keine Malware URLs. Meine Vermutung war, dass der Ursprung des Malware-Artefakts der Windows Defender war. Für die Malware URLs kann aber auch „safe browsing“ im Edge die Ursache sein. Um dies zu klären, habe ich einige Experimente durchgeführt.
Da der Windows Defender ein integraler Bestandteil von Windows 10 und 11 ist, ist es nicht einfach, den Windows Defender bei einer Neuinstallation vollständig zu entfernen. Alle Anleitungen, die ich gefunden habe, funktionierten mit den aktuellen Windows 10 Versionen seit 21H2 nicht mehr. Schließlich habe ich ein PowerShell-Skript auf Jeremy Website bidouillesecurity.com gefunden:
https://bidouillesecurity.com/disable-windows-defender-in-powershell/
Danach habe ich die pagefile.sys einmal komplett geschreddert, damit sicher ist, dass keine Artefakte zurück bleiben. Allerdings versucht Windows Update auch dann nach Anwendung dieses Skriptes, Malware-Signaturen herunterzuladen, die dann wieder als Artefaktes in der pagefile.sys landen. Nur wenn ich den Internetzugang der neu erstellten Installation komplett sperre, erscheinen keine Malware-Artefakte mehr in der pagefile.sys. Auch das Deaktivieren von Windows-Updates ist heutzutage keine leichte Aufgabe mehr. Einfach die Ethernet-Verbindung auf „metered connection“ (im Deutschen „getaktete Verbindung“) zu stellen, funktioniert in den aktuellen Versionen nicht mehr. (Warum auch immer, Zitat aus 2001, Odyssee im Weltraum: Ich kann dich das nicht tun lassen Dave 😉
Für meine Experimente habe ich virtuelle Maschinen im VMWare Player unter Linux erstellt, die VMDK-Images mit qemu in das Raw-Format konvertiert und die pagefile.sys aus dem Image für die Forensik entnommen.
qemu-img convert -p -O raw /pfad/meinWin10.vmdk vm.raw
Das loop device intitialisieren:
losetup /dev/loop100 -P vm.raw
Option P nach Paritionen scannen, loop device loop100 erzwingen (-f zeigt das nächste freie Gerät, aber loop100 sollte immer frei sein)
Mounten dss Images:
mount /dev/loop100p3 /mnt/image
Kopieren:
cp /mnt/image/pagefile.sys .
Yara scannen:
yara /home/bischoff/yara-rules/rules-master/malware_index.yar pagefile.sys > yara_neu.log
URL-Extraktion:
strings pagefile.sys | egrep "^https?://" | sort | uniq > alle_urls.txt
Um die ursprüngliche pagefile.sys vollständig zu löschen (zu schreddern 😉 und um zu verhindern, dass Plattenplatz einfach wieder alloziert und nicht wirklich gelöscht wird, habe ich folgenden Befehl verwendet:
shred -uvz /mnt/image/pagefile.sys
Unmounten des Images und Entkoppeln des Loop-Devices:
umount /mnt/image
losetup -d /dev/loop100
Konvertieren des Roh-Images zurück in ein VMWare-Image:
qemu-img convert -p -O vmdk vm.raw /pfad/meinWin10.vmdk
Auch mit obigem Powershell-Script, also deaktiviertem Defender, holt sich das Windows Update offensichtlich immer wieder neue Signaturen, sobald eine Verbindung zum Internet besteht.
Selbst wenn man an keinen Speicherauszug eines infizierten Rechners herankommt, liefert eine hyberfile.sys oder eine pagegefile.sys dem Forensiker indirekte Informationen über den Speicherinhalt. Vorsicht ist jedoch geboten bei Defender-Artefakten, die zu falsch positiven Erkennungen führen können.