Question Analysis

A suspicious actor appears to have removed the USN change journal on a Windows workstation. Investigate process start records to find out exactly which command was used to delete the journal. What was the full command line invoked?

b4115c7a-0e92-47f0-a61e-17e7218b2435
Question ID
18/23
Models Correct
1
Valid Answer
78%
Success Rate
Reference Answer

Human-validated correct answer for this question

fsutil usn deletejournal /D C:\\
Model Performance Comparison

See how different AI models performed on this question

ModelAnswerKQL QueryStatusAttemptsTimeCost
gemini-2.5-flash-preview-04-17
"cmd.exe" /c fsutil usn deletejournal /D C:
DeviceProcessEvents | where ActionType == "ProcessCreated" | where ProcessCommandLine contains "fsutil usn deletejournal" | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine | order by TimeGenerated asc
Correct
1
10.54s
0.0045
gpt-35-turbo
No answer provided
No query generated
Incorrect
5
0.00s
0.0110
gpt-4-turbo-2024-04-09
"cmd.exe" /c fsutil usn deletejournal /D C:
DeviceProcessEvents | where ActionType == 'ProcessCreated' | where InitiatingProcessCommandLine has 'fsutil' and InitiatingProcessCommandLine has 'usn' and InitiatingProcessCommandLine has 'deletejournal' | project DeviceName, InitiatingProcessCommandLine, ProcessCreationTime
Correct
3
22.02s
0.1429
gpt-4.1
fsutil usn deletejournal /D C:
DeviceProcessEvents | where ProcessCommandLine has_any ("usn deletejournal", "fsutil usn deletejournal") | project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessAccountName, InitiatingProcessCommandLine
Correct
1
5.80s
0.0121
gpt-4.1-finetuned
fsutil usn deletejournal /D C:
DeviceProcessEvents // Use DeviceProcessEvents for process-level details | where ProcessCommandLine contains "usn" and ProcessCommandLine contains "deletejournal" | project TimeGenerated, DeviceName, InitiatingProcessAccountName, ProcessCommandLine, ActionType, FolderPath | order by TimeGenerated desc | take 1 // Ensure you only get the most recent event
Correct
4
14.93s
0.0305
gpt-4.1-mini
"cmd.exe" /c fsutil usn deletejournal /D C:
DeviceProcessEvents | where ProcessCommandLine has_any ("fsutil usn deletejournal", "fsutil usn delete", "$UsnJrnl") | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine, ProcessCreationTime | order by TimeGenerated desc
Correct
1
3.49s
0.0023
gpt-4.1-nano
No answer provided
No query generated
Incorrect
5
0.00s
0.0013
gpt-4o
fsutil usn deletejournal /D C:
DeviceProcessEvents | where ActionType =~ "ProcessCreated" and (ProcessCommandLine contains "delete" and ProcessCommandLine contains "USN" and ProcessCommandLine contains "journal") | project DeviceName, ProcessCommandLine, InitiatingProcessCommandLine, InitiatingProcessFileName, InitiatingProcessId, InitiatingProcessCreationTime, InitiatingProcessAccountName, InitiatingProcessAccountDomain | limit 100
Correct
5
30.24s
0.0694
gpt-5-high
fsutil usn deletejournal /D C:
DeviceProcessEvents | where FileName =~ "fsutil.exe" or ProcessCommandLine has "fsutil" | where ProcessCommandLine has_all ("usn", "deletejournal") | project Time=ProcessCreationTime, DeviceName, AccountDomain, AccountName, FileName, FolderPath, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountDomain, InitiatingProcessAccountName | order by Time desc
Correct
1
51.40s
0.0460
gpt-5-mini-high
fsutil usn deletejournal /D C:
// Search DeviceProcessEvents and DeviceEvents for process start records matching USN change journal deletion commands let keywords = dynamic(["usn","deletejournal","delete journal","fsutil usn","usn delete"]); // Helper to search a table for matching commandlines let SearchTable = (tableName: string) { toscalar( // we can't dynamic reference table by name easily, so we'll rely on union below print dummy=1 ) }; // Union the two relevant tables that contain process creation info union isfuzzy=true DeviceProcessEvents, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents | where TimeGenerated between (startofday(ago(30d)) .. now()) // placeholder; time range in function call will override | extend cmd = coalesce(ProcessCommandLine, InitiatingProcessCommandLine, ProcessCommandLine, ProcessCommandLine) | where isnotempty(cmd) | where cmd has_any ("usn", "deletejournal") or cmd contains_cs("fsutil usn") or cmd has_any ("\"deletejournal\"", "delete journal", "usn delete") | project TimeGenerated, DeviceName, DeviceId, ReportId, InitiatingProcessFileName, InitiatingProcessId, InitiatingProcessAccountName, ProcessId, ProcessCommandLine=cmd, ActionType, FileName | distinct DeviceName, DeviceId, InitiatingProcessId, ProcessId, ProcessCommandLine, TimeGenerated, InitiatingProcessFileName, InitiatingProcessAccountName, ActionType, ReportId, FileName | order by TimeGenerated desc | take 100
Correct
1
19.81s
0.0051
gpt-5-mini-low
"cmd.exe" /c fsutil usn deletejournal /D C:
(DeviceProcessEvents | where isnotempty(ProcessCommandLine) | where tostring(tolower(ProcessCommandLine)) has "usn" and (tostring(tolower(ProcessCommandLine)) has "deletejournal" or tostring(tolower(ProcessCommandLine)) has "delete journal") | project TimeGenerated, Timestamp, DeviceName, ProcessCommandLine, FileName, ProcessId, ProcessCreationTime, InitiatingProcessFileName, InitiatingProcessId, AccountName, AccountDomain = AccountDomain, InitiatingProcessAccountName, InitiatingProcessAccountDomain, ReportId, _ResourceId ) | union ( DeviceEvents | where isnotempty(ProcessCommandLine) or isnotempty(InitiatingProcessCommandLine) | extend ProcessCommandLine2 = iff(isnotempty(ProcessCommandLine), ProcessCommandLine, InitiatingProcessCommandLine) | where tostring(tolower(ProcessCommandLine2)) has "usn" and (tostring(tolower(ProcessCommandLine2)) has "deletejournal" or tostring(tolower(ProcessCommandLine2)) has "delete journal") | project TimeGenerated, Timestamp, DeviceName, ProcessCommandLine = ProcessCommandLine2, FileName, ProcessId = coalesce(ProcessId, InitiatingProcessId), ProcessCreationTime = coalesce(ProcessCreationTime, InitiatingProcessCreationTime), InitiatingProcessFileName, InitiatingProcessId, AccountName, AccountDomain = AccountDomain, InitiatingProcessAccountName, InitiatingProcessAccountDomain, ReportId, _ResourceId ) | extend CommandLower = tostring(tolower(ProcessCommandLine)) | summarize FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated), AnyProcessName = any(FileName), AnyInitiating = any(InitiatingProcessFileName), AnyProcessId = any(ProcessId), AnyAccount = any(iff(isnotempty(AccountName), AccountName, InitiatingProcessAccountName)), SampleCommand = any(ProcessCommandLine) by CommandLower, DeviceName | project DeviceName, FirstSeen, LastSeen, AnyAccount, AnyProcessName, AnyInitiating, AnyProcessId, SampleCommand | order by FirstSeen desc | limit 100
Correct
1
19.57s
0.0050
gpt-5-mini-medium
cmd.exe /c fsutil usn deletejournal /D C:
// Look for process creation events showing deletion of USN change journal let keywords = dynamic(["fsutil","usn","deletejournal","esentutl","esentutl /r","esentutl /p","del"]); DeviceProcessEvents | where TimeGenerated between (startofday(ago(30d)) .. now()) // ProcessCreationTime/TimeGenerated timeframe will be set by function call, but include a 30d fallback | where tostring(ProcessCommandLine) != "" | where tolower(ProcessCommandLine) contains "usn" and tolower(ProcessCommandLine) contains "deletejournal" // Include common variants and other utilities that might be used | where tolower(ProcessCommandLine) contains "fsutil" or tolower(ProcessCommandLine) contains "esentutl" or tolower(ProcessCommandLine) contains "deletejournal" | project TimeGenerated, DeviceName, DeviceId, AccountName, AccountDomain, AccountSid, InitiatingProcessAccountName, InitiatingProcessAccountDomain, InitiatingProcessId, InitiatingProcessFileName, InitiatingProcessCommandLine, ProcessId, FileName, ProcessCommandLine, ProcessCreationTime, ReportId | extend FullCommandLine = iff(isnotempty(ProcessCommandLine), ProcessCommandLine, InitiatingProcessCommandLine) | summarize any(FullCommandLine) by DeviceName, DeviceId, ProcessId, InitiatingProcessId, ProcessCreationTime, TimeGenerated, AccountName, InitiatingProcessAccountName, InitiatingProcessFileName, FileName | order by TimeGenerated desc | take 50 // Fallback to DeviceEvents if no hits in DeviceProcessEvents | union ( DeviceEvents | where TimeGenerated between (startofday(ago(30d)) .. now()) | where tostring(ProcessCommandLine) != "" | where tolower(ProcessCommandLine) contains "usn" and tolower(ProcessCommandLine) contains "deletejournal" | project TimeGenerated, DeviceName, DeviceId, AccountName, AccountDomain, AccountSid, InitiatingProcessAccountName, InitiatingProcessAccountDomain, InitiatingProcessId, InitiatingProcessFileName = InitiatingProcessFileName, InitiatingProcessCommandLine, ProcessId = InitiatingProcessId, FileName = InitiatingProcessFileName, ProcessCommandLine = InitiatingProcessCommandLine, ProcessCreationTime = InitiatingProcessCreationTime | extend FullCommandLine = ProcessCommandLine | order by TimeGenerated desc | take 50 ) | distinct *
Correct
1
19.37s
0.0052
gpt-5-nano-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0069
gpt-5-nano-medium
No answer provided
No query generated
Incorrect
5
0.00s
0.0055
grok-3-beta
"cmd.exe" /c fsutil usn deletejournal /D C:
DeviceProcessEvents | where ProcessCommandLine contains "fsutil" and ProcessCommandLine contains "deletejournal" | project Timestamp, DeviceName, AccountName, ProcessCommandLine | order by Timestamp desc
Correct
1
8.38s
0.0207
grok-3-mini-beta
"cmd.exe" /c fsutil usn deletejournal /D C:
DeviceProcessEvents | where ProcessCommandLine contains "fsutil" and ProcessCommandLine contains "usn" and ProcessCommandLine contains "deletejournal" | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine | order by TimeGenerated desc | limit 10
Correct
1
11.21s
0.0016
o1-high
fsutil usn deletejournal /D C:
union DeviceProcessEvents, DeviceEvents | where ActionType in~ ("CreateProcess","ProcessCreated") | where isnotempty(ProcessCommandLine) or isnotempty(InitiatingProcessCommandLine) | where (ProcessCommandLine has "fsutil" or InitiatingProcessCommandLine has "fsutil") and ((ProcessCommandLine has_any ("usn", "deletejournal") or InitiatingProcessCommandLine has_any ("usn", "deletejournal"))) | project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessCommandLine | order by TimeGenerated desc
Correct
3
99.25s
0.7405
o1-low
fsutil usn deletejournal /D C:
DeviceProcessEvents | where ProcessCommandLine has_any ("deletejournal", "usn") | project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, FolderPath, InitiatingProcessCommandLine, InitiatingProcessAccountName, InitiatingProcessFileName | order by TimeGenerated desc
Correct
1
60.66s
0.3655
o3-high
fsutil usn deletejournal /D C:
DeviceProcessEvents | where ActionType == "ProcessCreated" // only process start events | where tolower(ProcessCommandLine) has_all ("fsutil", "usn", "deletejournal") // optional: keep devices or users of interest // | where DeviceName =~ "<suspect host>" | project TimeGenerated, DeviceName, AccountDomain, AccountName, FileName, ProcessCommandLine, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountDomain, InitiatingProcessAccountName | order by TimeGenerated desc
Correct
1
42.98s
0.0264
o3-mini-high
cmd.exe /c fsutil usn deletejournal /D C:
DeviceProcessEvents | where InitiatingProcessCommandLine has_cs "fsutil" and InitiatingProcessCommandLine has_cs "deletejournal" | project TimeGenerated, DeviceName, InitiatingProcessCommandLine | sort by TimeGenerated asc
Correct
1
17.47s
0.0079
o3-mini-low
"cmd.exe" /c fsutil usn deletejournal /D C:
DeviceProcessEvents | where InitiatingProcessCommandLine contains "fsutil" and InitiatingProcessCommandLine contains "deleteJournal" | project TimeGenerated, DeviceName, InitiatingProcessCommandLine | sort by TimeGenerated asc
Correct
1
49.38s
0.0098
o4-mini-high
fsutil usn deletejournal /D C:
DeviceProcessEvents | where ActionType == "ProcessCreated" // Look specifically for the fsutil usn deletejournal command | where tolower(FileName) == "fsutil.exe" and tolower(ProcessCommandLine) contains "usn" and tolower(ProcessCommandLine) contains "deletejournal" // Show the relevant details including the full command line | project TimeGenerated, DeviceName, AccountName, ProcessId, ProcessCommandLine | sort by TimeGenerated asc
Correct
2
44.55s
0.0174
o4-mini-low
No answer provided
No query generated
Incorrect
5
0.00s
0.0332