Ausführungsnachweis mit BAM: ein Lateral-Movement-Fall
Eine fiktive Untersuchung auf FIN-WKS-07 mit BAM: Phishing, ein gekapertes Dienstkonto, Scans, PsExec, RDP und rclone – und was BAM nicht zeigen konnte.
TL;DR. Fiktives Szenario, synthetische Daten. Auf FIN-WKS-07 legt BAM allein einen Vormittag offen: alice öffnet eine „Rechnung“ mit doppelter Dateiendung und 24 Sekunden später PowerShell; eine Stunde danach startet das Dienstkonto svc_backup – das eigentlich nur einen Backup-Agenten ausführen sollte – cmd.exe, legt ein Binary in ProgramData ab, startet einen IP-Scanner von einem zweiten Volume, öffnet RDP und führt PsExec, 7-Zip und rclone aus. Ein falsches svchost.exe läuft als SYSTEM aus Windows\Temp. BAM liefert das Wer, Was und Wann; Befehle, Hashes und Ziele liefert es nicht, und dieser Artikel benennt jede dieser Lücken ausdrücklich.
Alles in diesem Artikel ist fiktiv. Host, Konten, SIDs, Pfade und Zeiten stammen aus den synthetischen Hives hinter der Schaltfläche „Beispiel testen“ des BAM/DAM Parser. Es werden keine realen Organisationen, Personen oder Vorfälle beschrieben. Sie können dieselben Daten laden und mitarbeiten.
Die Ausgangslage
Ein Rechner der Buchhaltung, FIN-WKS-07, löste am 14. September 2026 einen Alarm wegen ausgehenden Datenverkehrs zu einem Cloud-Speicheranbieter aus. Der Analyst sicherte SYSTEM, SYSTEM.LOG1/LOG2 und SOFTWARE mit KAPE, bevor jemand den Rechner neu startete – was, wie der Artikel zu den Grenzen erklärt, die BAM-Einträge gelöschter Tools am Leben hält.
Nach dem Laden der Hives in das Tool zeigt die Kopfzeile:
| Feld | Wert |
|---|---|
| Host | FIN-WKS-07 |
| Zeitzone | Romance Standard Time (Paris, im September UTC+2) |
| Aktives Control Set | 1 |
| Konten | alice (…-1104), svc_backup (…-1119), SYSTEM (S-1-5-18) |
Alle folgenden Zeiten sind UTC, so wie BAM sie speichert. Für die Ortszeit in Paris zwei Stunden addieren.
Phase 1 – Erstzugriff unter alice
Gefiltert auf alice und nach letzter Ausführung sortiert:
| Letzte Ausführung (UTC) | Programm | Pfad | Markierungen |
|---|---|---|---|
| 08:51:13 | explorer.exe (DAM) | \Windows\explorer.exe | |
| 08:55:02 | MSTeams | Paket MSTeams_8wekyb3d8bbwe | |
| 08:58:40 | OUTLOOK.EXE | \Program Files\Microsoft Office\root\Office16\ | |
| 09:03:11 | chrome.exe | \Program Files\Google\Chrome\Application\ | |
| 09:12:07 | Invoice_2026-0914.pdf.exe | \Users\alice\Downloads\ | vom Benutzer beschreibbarer Ordner, doppelte Dateiendung |
| 09:12:31 | powershell.exe | \Windows\System32\WindowsPowerShell\v1.0\ |
Was BAM stützt: ein normaler Arbeitsbeginn (Teams, Outlook, Chrome), dann ein Programm mit der Doppelendung .pdf.exe aus Downloads, dann PowerShell 24 Sekunden später – alles unter alice.
Was BAM nicht zeigt: wie die Datei ankam (Browser-Download oder Mailanhang), ihren Hash, ob PowerShell ihr Kindprozess war oder was PowerShell ausführte. Denken Sie daran, dass die Zeit die zuletzt erfasste Aktivität ist – aktualisiert bei Prozessstart und -ende (Suhanov) –, die „Rechnung“ könnte also etwas vor 09:12:07 gestartet sein, wenn sie eine Weile lief.
Nächste Schritte in einem echten Fall: Chrome-Verlauf und Zone.Identifier-Stream für die Download-Quelle (Browser Forensics), Amcache für den SHA-1, PowerShell-Operational-Protokolle (4104, Skriptblockprotokollierung, sofern aktiviert) in EVTX Parser.
Vergleich der Control Sets. Schaltet man „Nur aktives Control Set“ ab, erscheint ControlSet002 mit nur vier Einträgen von alice – Chrome, Outlook, Excel, Notepad. Dieser ältere Stand enthält keine der verdächtigen Zeilen, was zu einer jüngeren Aktivität passt. Ein Vergleichspunkt, kein Beweis für den zeitlichen Ablauf.
Phase 2 – Das Dienstkonto erwacht
svc_backup ist ein Backup-Dienstkonto. In einer gesunden Umgebung enthielte sein BAM-Schlüssel höchstens den Backup-Agenten. Hier:
| Letzte Ausführung (UTC) | Programm | Pfad | Markierungen |
|---|---|---|---|
| 10:02:16 | cmd.exe | \Windows\System32\ | |
| 10:09:44 | m64.exe | \ProgramData\Intel\ | vom Benutzer beschreibbarer Ordner |
| 10:15:58 | Advanced_IP_Scanner.exe | \Device\HarddiskVolume7\tools\ | Dual-Use |
| 10:18:40 | mstsc.exe | \Windows\System32\ | |
| 10:21:03 | PsExec64.exe | \Users\svc_backup\Downloads\ | vom Benutzer beschreibbarer Ordner, Dual-Use |
| 10:39:25 | 7z.exe | \Program Files\7-Zip\ | |
| 10:47:12 | rclone.exe | \Users\Public\ | vom Benutzer beschreibbarer Ordner, Dual-Use |
Das ist der Kernbefund, und genau hier ist BAM einzigartig: Ausführung, die einem bestimmten Konto zugeordnet ist. Der Artikel zur Zuordnung erklärt, warum es „unter dem Konto svc_backup ausgeführt“ heißen sollte – BAM kann nicht sagen, ob eine Person die Befehle tippte oder ein Tool die Zugangsdaten nutzte.
Zuordnung zu MITRE ATT&CK für den Bericht:
Advanced_IP_Scanner.exe→ Erkundung von Netzwerkdiensten (T1046).mstsc.exe→ ausgehendes RDP (T1021.001).PsExec64.exe→ Dienstausführung auf entfernten Hosts (T1569.002).7z.exe, dannrclone.exe→ Bereitstellung und Exfiltration in einen Cloud-Speicher (T1567.002).
Was die Pfade verraten
\Device\HarddiskVolume7\tools\– nicht das Systemvolume (HarddiskVolume3). BAM erfasst keine ausführbaren Dateien auf als wechselbar gekennzeichneten Medien (Suhanov), dieses Volume wurde also anders präsentiert: ein eingebundenes VHD/ISO oder eine externe Platte, die sich als fest ausgibt, kommen in Frage. Ordnen Sie es mit anderen Artefakten zu, bevor Sie „USB“ schreiben. Zu Gerätepfaden siehe den Artikel zum Werteformat.\ProgramData\Intel\m64.exe– ein unbekanntes Binary in einem seriös wirkenden Ordner. Was es ist, kann BAM nicht sagen; der SHA-1 aus Amcache schon.\Users\Public\rclone.exe– ein für alle beschreibbarer Ordner, häufig zum Bereitstellen von Daten missbraucht.
Was fehlt
Kein net.exe, whoami.exe oder nltest.exe, obwohl solche Erkundungsbefehle in einer cmd.exe-Sitzung typisch sind. Das ist zu erwarten: Aus einer Kommandozeilensitzung gestartete Konsolenprogramme erhielten in Beobachtungen keine BAM-Einträge (Suhanov). Das Fehlen sagt nichts aus. Diese Befehle tauchen in Prefetch und in 4688/Sysmon-Ereignissen auf.
Phase 3 – SYSTEM aus einem Temp-Ordner
Unter S-1-5-18:
| Letzte Ausführung (UTC) | Pfad | Markierungen |
|---|---|---|
| 07:45:00 | \Windows\System32\svchost.exe | |
| 10:05:01 | \Windows\Temp\svchost.exe | vom Benutzer beschreibbarer Ordner, Systemdatei am falschen Ort |
Ein svchost.exe außerhalb von System32, das als LocalSystem läuft, drei Minuten nachdem svc_backup eine Shell geöffnet hat und vier Minuten bevor m64.exe auftaucht. Klassische Tarnung (T1036). Wie es an SYSTEM-Rechte kam – Dienstinstallation, geplante Aufgabe, der PsExec-Dienst selbst – klären die Ereignisse 7045/4697 und der Schlüssel Services.
Die zusammengeführte Timeline
| UTC | Konto | Ereignis (BAM) |
|---|---|---|
| 09:12:07 | alice | „Rechnung“ mit doppelter Endung aus Downloads |
| 09:12:31 | alice | PowerShell |
| 10:02:16 | svc_backup | cmd.exe |
| 10:05:01 | SYSTEM | Falsches svchost.exe in Windows\Temp |
| 10:09:44 | svc_backup | m64.exe in ProgramData\Intel |
| 10:15:58 | svc_backup | IP-Scanner von HarddiskVolume7 |
| 10:18:40 | svc_backup | RDP-Client |
| 10:21:03 | svc_backup | PsExec |
| 10:39:25 | svc_backup | 7-Zip |
| 10:47:12 | svc_backup | rclone |
Die vierzig Minuten zwischen PowerShell und der ersten Shell des Dienstkontos sind die offensichtliche Lücke: Wie kam der Angreifer an die Zugangsdaten von svc_backup? BAM weiß es nicht. Zu prüfende Hypothesen: Zugangsdaten in einem Skript oder einer Konfiguration, die alice lesen konnte, ein Credential-Dump (Prefetch/Amcache für Dump-Tools, LSASS-Zugriffsereignisse) oder eine Anmeldung von einem anderen Host (4624 Typ 3/10).
Was in den Bericht kam
- Die BAM-Befunde, jeweils formuliert als „zuletzt erfasste Aktivität unter Konto X um T UTC“, mit dem Pfad des SID-Schlüssels.
- Die ausdrücklichen Grenzen: keine Befehlszeilen, keine Hashes, keine Konsolen-Tools, keine Ausführungen von Wechsel- oder Netzwerkpfaden, ein Zeitstempel pro Programm.
- Der Plan zur Bestätigung: Amcache (Hashes von
m64.exe, der Rechnung, rclone), Prefetch (Zähler, erste Ausführungen), EVTX (Anmeldungen, Dienstinstallationen, PowerShell), SRUM (vonrclone.exegesendete Bytes) sowie die BAM-Schlüssel der per PsExec und RDP erreichten Hosts, auf denen dasselbe Konto (oder SYSTEM) ebenfalls Tools gestartet haben könnte. - Der Umfang: Die übrigen von
mstsc.exeundPsExec64.exeerreichten Hosts werden genauso gesichert.
Selbst ausprobieren
Öffnen Sie den BAM/DAM Parser, klicken Sie auf Beispiel testen und bauen Sie jede Tabelle mit dem Kontenfilter, „Nur markierte“ und der Sortierung nach. Die Schritt-für-Schritt-Anleitung erklärt jedes Bedienelement, und der Vergleich mit Prefetch, ShimCache und Amcache zeigt, was jedes bestätigende Artefakt beitragen würde.