Skip to content

Wo liegen geplante Aufgaben? Speicherorte und Sicherung

Alle Orte, an denen Windows geplante Aufgaben ablegt: System32\Tasks, SysWOW64\Tasks, C:\Windows\Tasks und TaskCache, plus Sicherung mit KAPE oder Velociraptor.

Veröffentlicht am 5 Min. Lesezeit

Kurz gesagt. Sichern Sie vier Dinge: C:\Windows\System32\Tasks (rekursiv), C:\Windows\SysWOW64\Tasks, C:\Windows\Tasks und den SOFTWARE-Hive mit SOFTWARE.LOG1 und SOFTWARE.LOG2. Dazu kommen Security.evtx und das Protokoll TaskScheduler/Operational. KAPE mit --target ScheduledTasks,RegistryHivesSystem oder Velociraptors Windows.Triage.Targets mit denselben beiden Targets erledigt das in einem Durchgang. Behalten Sie die Originalpfade bei: Die Ordnerstruktur unter Tasks ist der Aufgabenpfad.

Dieser Artikel ist die Ergänzung zur Sicherung für den vollständigen Leitfaden zur Forensik geplanter Aufgaben.

Die Speicherorte nach Artefakt

ArtefaktPfadFormatWindows-Versionen
Task-XMLC:\Windows\System32\Tasks\ und UnterordnerXML ohne Endung, meist UTF-16LE mit Byte Order MarkAb Vista
Task-XML (WOW64)C:\Windows\SysWOW64\Tasks\Identisch64-Bit-Systeme; oft leer, trotzdem sichern
Alte JobsC:\Windows\Tasks\*.jobBinäre .job-Datei, MS-TSCHHauptspeicherort bis XP / 2003; danach nur noch Altbestand
Altes Scheduler-ProtokollC:\Windows\SchedLgU.txtTextÜberwiegend ältere Systeme
TaskCacheC:\Windows\System32\config\SOFTWARE, Schlüssel Microsoft\Windows NT\CurrentVersion\Schedule\TaskCacheRegistry-HiveAb Vista
Transaktionsprotokolle des HivesC:\Windows\System32\config\SOFTWARE.LOG1, SOFTWARE.LOG2Registry-LogAb Vista
EreignisprotokolleC:\Windows\System32\winevt\Logs\Security.evtx, Microsoft-Windows-TaskScheduler%4Operational.evtxEVTXAb Vista

Das KapeFiles-Target ScheduledTasks führt dieselben XML-Ordner auf, dazu C:\Windows\Tasks\*.job, SchedLgU.txt, die Entsprechungen unter Windows.old und die PowerShell-Ordner ScheduledJobs in jedem Benutzerprofil. Wurde das System per In-Place-Upgrade aktualisiert, kann C:\Windows.old Aufgabendefinitionen aus der Zeit vor dem Upgrade enthalten: Sichern Sie den Ordner, wenn er existiert.

Wie der XML-Ordner aufgebaut ist

Jeder Ordner in der Aufgabenplanungsbibliothek ist ein echter Ordner auf dem Datenträger. Eine Aufgabe, die als \Microsoft\Windows\Defrag\ScheduledDefrag registriert ist, ist die Datei C:\Windows\System32\Tasks\Microsoft\Windows\Defrag\ScheduledDefrag. Die Datei hat keine Endung, und ihr Element <URI> wiederholt normalerweise denselben Pfad. Dieser Pfad ist zugleich der Schlüsselname unter TaskCache\Tree; darüber werden XML und Registry einander zugeordnet.

Aufgaben im Stammordner (C:\Windows\System32\Tasks\<name>) verdienen Aufmerksamkeit: Microsofts Überwachungsempfehlungen zu Ereignis 4698 weisen darauf hin, dass manuell angelegte und bösartige Aufgaben häufig im Stammknoten landen. Dort liegen aber auch viele legitime Updater von Drittanbietern. Die Lage im Stammordner ist also ein Sortierkriterium, kein Befund.

TaskCache im SOFTWARE-Hive

Auf einem laufenden System lautet der Schlüssel HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache. Offline steckt er in der Datei C:\Windows\System32\config\SOFTWARE. Seine Unterschlüssel sind Tree, Tasks, Boot, Logon, Plain und Maintenance (cyber.wtf). Was die einzelnen Werte bedeuten, behandelt TaskCache-Forensik in der Registry.

Warum die Transaktionsprotokolle zählen

Seit Windows 8.1 werden Registry-Änderungen zuerst in die Transaktionsprotokolle des Hives (.LOG1, .LOG2) geschrieben und erst verzögert in die Hauptdatei übernommen (Registry-Formatnotizen von Maxim Suhanov). Eine Kopie von SOFTWARE von einem laufenden Rechner ist deshalb oft dirty: Die Sequenznummern im Header stimmen nicht überein, und die neuesten Änderungen existieren nur in den Protokollen. Bei geplanten Aufgaben sind das genau die Daten, die Sie brauchen: Eine Aufgabe, die zehn Minuten vor der Sicherung registriert wurde, oder ein Wert SD, der gelöscht wurde, um sie zu verstecken, steht womöglich noch nicht in der Hauptdatei.

Sichern Sie die Protokolle zusammen mit dem Hive. Spielen Sie sie dann mit einem Werkzeug ein, das dies unterstützt, bevor Sie sich auf ein "Fehlen" in TaskCache verlassen. Der Scheduled Tasks Parser liest den primären Hive und warnt, wenn er dirty ist; er spielt die Protokolle selbst nicht ein. Eine solche Warnung bedeutet also: "Diesen Hive mit einem Werkzeug prüfen, das die Protokolle berücksichtigt."

Möglichkeiten der Sicherung

KAPE

kape.exe --tsource C: --tdest C:\triage\kape --target ScheduledTasks,RegistryHivesSystem

ScheduledTasks holt die Aufgabenordner, .job-Dateien und SchedLgU.txt; RegistryHivesSystem holt SOFTWARE mit SOFTWARE.LOG* sowie die übrigen System-Hives. Nehmen Sie ein Target für Ereignisprotokolle hinzu, wenn Sie auch die EVTX-Dateien möchten. KAPE liest gesperrte Dateien über Raw-Disk-Zugriff, sodass die Kopie des Hives zum Zeitpunkt der Sicherung zu ihren Protokollen passt.

Velociraptor

Führen Sie das Artefakt Windows.Triage.Targets aus (als Hunt in der GUI oder als Offline-Collector) und wählen Sie die Targets ScheduledTasks und RegistryHivesSystem. Das Artefakt baut auf den KapeFiles-Regeln auf (Velociraptor-Triage-Dokumentation), die Dateiauswahl entspricht also der von KAPE. Das resultierende ZIP können Sie unverändert in den Parser ziehen: Er kommt mit den prozentkodierten Pfaden und den Eintragsnamen mit Backslashes von Velociraptor zurecht.

Bordmittel, wenn sonst nichts verfügbar ist

Aus einer Eingabeaufforderung mit erhöhten Rechten auf dem laufenden System:

reg save HKLM\SOFTWARE C:\triage\SOFTWARE /y
robocopy C:\Windows\System32\Tasks C:\triage\Tasks /E
robocopy C:\Windows\SysWOW64\Tasks C:\triage\SysWOW64Tasks /E
robocopy C:\Windows\Tasks C:\triage\LegacyTasks /E

reg save erzeugt einen sauberen, in sich konsistenten Hive (separate Protokolle sind nicht nötig), läuft aber über die Registry-API und ist damit ein Eingriff in das laufende System: Notieren Sie den Zeitpunkt in Ihrem Fallprotokoll. Robocopy erhält den Ordnerbaum, den Sie für die Aufgabenpfade brauchen. Für eine Triage ist diese Methode in Ordnung; für Beweismittel, die Sie vorlegen wollen, sind ein forensisches Image oder ein Collector mit Raw-Zugriff vorzuziehen.

Datenträgerimages

Binden Sie das Image schreibgeschützt ein und exportieren Sie dieselben Pfade. Suchen Sie außerdem nach Volume Shadow Copies: Ältere Versionen von SOFTWARE und des Ordners Tasks können zeigen, wann eine Aufgabe aufgetaucht ist oder wie sie aussah, bevor sie verändert wurde.

Fallstricke bei Zugriff und Verstecken auf laufenden Systemen

  • Abfragen mit schtasks /query oder über die Konsole listen eine Aufgabe nicht auf, deren Wert SD entfernt wurde, und unter Umständen auch keine mit restriktivem Deskriptor. Genau darum geht es bei der Tarrask-Technik. Die Sicherung von Dateien und Hive umgeht das Problem.
  • Die XML-Dateien sind für Administratoren lesbar, manche sind jedoch per ACL eingeschränkt. Collectors mit Raw-Zugriff vermeiden Lücken durch "Zugriff verweigert"; ein einfaches copy überspringt Dateien womöglich stillschweigend.
  • Öffnen Sie die Aufgabe nicht in der Konsole, "um mal nachzusehen": Speichern aus der Konsole schreibt das XML und den TaskCache-Eintrag neu.

Nach der Sicherung

Hashen Sie alles, behalten Sie den Originalbaum bei und notieren Sie die Zeitzone des Rechners, wenn Sie sie ermitteln können (aus dem Schlüssel TimeZoneInformation im SYSTEM-Hive oder aus Ihren Sicherungsnotizen). Sie brauchen sie für XML-Zeiten ohne Zeitzone, wie in Aufbau des Task-XML erklärt. Danach geht es ans Parsen: geplante Aufgaben im Browser analysieren.

FAQ

Wo liegen die Dateien geplanter Aufgaben unter Windows 10 und 11?

Aufgabendefinitionen sind XML-Dateien ohne Endung unter C:\Windows\System32\Tasks, in Unterordnern, die den Aufgabenpfad abbilden. Die Registry-Kopie liegt im SOFTWARE-Hive unter Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache. Alte .job-Dateien, falls vorhanden, liegen in C:\Windows\Tasks.

Brauche ich die Transaktionsprotokolle der Registry?

Ja. Ein SOFTWARE-Hive, der von einem laufenden System kopiert wurde, ist oft dirty: Jüngste Änderungen, etwa eine frisch registrierte oder versteckte Aufgabe, können noch in SOFTWARE.LOG1 oder SOFTWARE.LOG2 stehen. Sichern Sie die Protokolle zusammen mit dem Hive und spielen Sie sie ein, bevor Sie Schlüsse ziehen.

Welche KAPE-Targets sichern geplante Aufgaben?

ScheduledTasks sichert die XML-Ordner, .job-Dateien und SchedLgU.txt; RegistryHivesSystem sichert den SOFTWARE-Hive samt Transaktionsprotokollen. Verwenden Sie beide.

Verwandte Artikel

Schritt für Schritt: Task-XML, .job-Dateien und SOFTWARE-Hive im kostenlosen Browser-Parser auswerten, versteckte Tasks finden, Zeitzonen klären, exportieren.
Checkliste für bösartige geplante Aufgaben: beschreibbare Pfade, kodiertes PowerShell, LOLBins, SYSTEM, Zufallsnamen, versteckte Tasks, XML/Registry-Abweichungen.
Wie Tarrask geplante Aufgaben durch Löschen des TaskCache-Werts SD versteckte, welche Varianten es gibt und wie Sie versteckte Aufgaben offline im SOFTWARE-Hive finden.