Zum Inhalt springen
← Zurück zum Blog

Anmeldedaten in pagefile.sys finden

20.5.2026 · 4 Min. Lesezeit

pagefile.sys ist bekanntermaßen ein Ort, an dem Klartext- Anmeldedaten landen, die das nie tun sollten. Software hantiert ständig im Speicher mit Secrets: HTTP-Clients bauen Authorization-Header, Browser entschlüsseln gespeicherte Passwörter bei Bedarf, Datenbankbibliotheken setzen Connection-Strings zusammen, SSH-Agents halten Schlüsselmaterial, OAuth-Flows reichen Bearer-Tokens durch. Der Kernel hat keine Ahnung, welche dieser Speicherbereiche sensibel sind — wenn also Speicherdruck eine kalte Seite trifft, kann diese Seite im Klartext auf der Disk landen.

Dieser Beitrag zeigt die Credential-Formen, die sich in einem gesicherten Pagefile am ehesten zu suchen lohnen, und wie dieses Tool sie sichtbar macht.

Warum es passiert

Der Windows-Memory-Manager / Speichermanager weiß nicht, was in einer Seite steht — nur, wie kalt sie ist. Moderner Prozessspeicher hält:

  • HTTP-Request-/Response-Puffer mit Authorization-Headern im Klartext.
  • WebView-/Chrome-/Edge-Tabs, die gespeicherte Passwörter ins RAM entschlüsseln, während sie ein Formular ausfüllen.
  • Datenbank-Client-Bibliotheken, die Server=…;Password=…-Connection- Strings zusammensetzen.
  • JWTs, die in JS-Heaps gecacht werden (Browser-Tabs, Electron-Apps, Teams, Slack).
  • Das Working Set von lsass.exe — wenn LSASS-Seiten abkühlen, lassen sich Fragmente mit NTLM-Hashes, Kerberos-Tickets und LSA-Secrets finden.
  • CLI-Tools: AWS CLI, gcloud, az, kubectl halten jeweils kürzlich ausgestellte Credentials im Speicher.

Die meisten davon schreiben das Secret bewusst nie in eine Datei — gegen das Auslagern der Seite, in der es zufällig liegt, sind sie aber nicht geschützt. pagefile.sys ist dann eine langlebige On-Disk-Kopie von „dem, was im RAM heiß war, aber jetzt nicht mehr ganz so heiß ist".

Wonach man sucht

Die Artefakt-Regex-Sweeps dieses Parsers enthalten eine Credential-Kategorie, aber hier die ergiebigsten Suchmuster, wenn Sie einen Strings-Export per Hand durchgreppen.

Klartext-Passwortfelder

password=
pwd=
passwd=
PASSWORD=
Pwd=

Oft in Connection-Strings:

Server=db01;Database=app;User Id=app_rw;Password=hunter2;

…oder in HTTP-Form-Bodies:

username=admin&password=hunter2&csrf=…

HTTP-Authorization-Header

Authorization: Basic dXNlcjpwYXNzd29yZA==
Authorization: Bearer eyJ…
Authorization: Negotiate YIIE…

Die Basic-Form dekodiert sich (base64) zu user:password. Das Bearer ist meist ein opakes Token oder ein JWT.

JWTs

Drei base64url-Segmente, durch Punkte getrennt, beginnend mit eyJ:

eyJhbGciOiJSUzI1NiIsImtpZCI6Ii4uLiJ9.eyJzdWIiOiI...".dHJ1c3RtZQ

Das erste Segment dekodiert zum Header (alg, kid), das zweite zu den Claims (sub, iss, aud, exp, …). Alles, was noch innerhalb seines exp-Fensters liegt, ist potenziell nutzbar.

NTLM und Kerberos

  • NTLMSSP-Messages: nach der Magic NTLMSSP\0 (4E 54 4C 4D 53 53 50 00) suchen.
  • Type-2-Challenges enthalten den Server-Challenge-Nonce; Type-3-Responses enthalten Net-NTLMv1/v2-Hashmaterial, das sich offline mit hashcat knacken lässt (-m 5500 / -m 5600).
  • Kerberos-Tickets: große Binär-Blobs in der Nähe der Strings krbtgt, LSA Kerberos oder Service-Principal-Names (HTTP/host, MSSQLSvc/host, …). Vollständige Tickets aus einem Pagefile herauszuziehen ist schwieriger als aus RAM, aber Kerberos-TGT-/-TGS- Material überlebt manchmal.

LSA-Secrets und Domain Cached Credentials

lsass.exe hält Secret-Material im Speicher. Wenn LSASS-Seiten kalt genug sind, um verdrängt zu werden, tauchen Fragmente auf — darunter:

  • DCC2 (MS-Cache v2): 16-Byte-Hashes in der Nähe von NL$KM-/_SC_-Strings.
  • Service-Account-Passwörter im Klartext, falls LsaCfgFlags nicht gesetzt ist.

Diese benötigen ein spezialisiertes Werkzeug zur vollständigen Dekodierung (mimikatz / pypykatz gegen ein Memory-Image), aber rohe Fragmente lassen sich hier finden.

SSH- und PGP-Schlüsselmaterial

OpenSSH-Private-Keys im Speicher beginnen mit -----BEGIN OPENSSH PRIVATE KEY----- oder -----BEGIN RSA PRIVATE KEY-----. Genauso PGP-Secret-Keys (-----BEGIN PGP PRIVATE KEY BLOCK-----). Solange der Agent den Schlüssel entsperrt hält, liegt er im Speicher, bis er gelöscht wird — und kann währenddessen ausgelagert werden.

Cloud-CLI-Tokens

  • AWS: aws_access_key_id, aws_secret_access_key, aws_session_token, STS-Tokens (oft JWT-förmig).
  • GCP: gecachte gcloud auth-Tokens (access_token, Refresh-Tokens), häufig in JSON.
  • Azure: gecachte Az.Accounts-Tokens; MSAL.Token-Formen.
  • Kubernetes: Service-Account-JWTs (eyJhbGciOiJSUzI1NiIsImtpZCI…).

Datenbank-Client-Artefakte

  • ODBC-/OLEDB-Connection-Strings: Provider=…;Data Source=…;User ID=…;Password=…;.
  • Argumente von sqlcmd -P, mysql -p überleben in der Befehlszeile — siehe den Abschnitt zu Malware-Befehlszeilen für verwandte Muster.

Browser-gespeicherte Passwörter

Chrome / Edge / Brave speichern gespeicherte Passwörter DPAPI- verschlüsselt, aber sie entschlüsseln beim Autofill, und der Klartext liegt kurzzeitig im Heap des Renderers. Ein Pagefile, das kurz nach einer Browser-Session erfasst wurde, kann diese entschlüsselten Formulare enthalten.

Wie dieses Tool sie sichtbar macht

Der Tab Artifacts → Credential indicators des Parsers matcht:

  • password= / pwd= / passwd= in beliebigen Strings.
  • Authorization: Bearer … und Authorization: Basic …-Header.
  • JWT-förmige Tokens (drei base64url-Segmente, durch Punkte getrennt, beginnend mit eyJ).

Der Strings-Tab ist der Fang-alles — nutzen Sie das Filter-Feld nach Authorization, NTLMSSP, BEGIN OPENSSH, aws_secret, Bearer etc.

Alles, was eindeutig ein Binär-Blob ist (NTLM-Challenge-Bytes, Kerberos-Tickets), erscheint nicht als String, wird aber über den High-Entropy-Bucket in der Page Map markiert — dort weiterschauen.

Operative Hinweise

  • Zeit ist ein Faktor. Je länger ein System nach dem Laden eines Credentials weiterläuft, desto wahrscheinlicher wird die Seite mit neuerem ausgelagertem Inhalt überschrieben. Acquirieren Sie das Pagefile sobald Sie eine Kompromittierung vermuten.
  • Ein gepaarter RAM-Dump ist multiplikativ nützlicher für die Credential-Jagd — er liefert das lebende LSASS, den vollständigen Kerberos-Cache und prozess-attribuierte Secrets. Der Limitations-Beitrag erklärt, warum.
  • Starten Sie den verdächtigen Host nicht neu, bevor Sie pagefile.sys gesichert haben — Windows kann ausgelagerte Slots beim nächsten Boot überschreiben. Wenn es absolut nötig ist, vorher erfassen.
  • hiberfil.sys ist sogar besser für die Credential-Rekonstruktion, wenn vorhanden — es ist ein vollständiger RAM-Snapshot. Siehe den Vergleichsbeitrag.

Rechtlicher / ethischer Hinweis

Analysieren Sie nur Pagefiles von Systemen, für die Sie eine Untersuchungsberechtigung haben. Klartext-Anmeldedaten, die aus dem Rechner einer anderen Person extrahiert wurden, bleiben Anmeldedaten, und sie außerhalb des Engagements zu verwenden ist ein gesonderter Straftatbestand.