o4-mini-low
KQL Benchmark Performance Analysis
Performance Overview
Success Rate
43.1%
(81 / 188 successful)
Average Attempts
3.46
per question
Avg. Execution Time
36.72s
Total Cost
$5.8428
Detailed Test Results
Showing 1 to 50 of 188 results
Page 1 of 4
# | Prompt (Question) | MITRE ATT&CK | Correct Answer | LLM Answer | Correct | KQL Query from LLM |
---|---|---|---|---|---|---|
1 | In a Linux environment, an elevated process was used to execute a command that read /etc/shadow and redirected its output to a file. Identify what file name was employed to store these results. | T1003.008.txt | /tmp/T1003.008.txt | ✓ | DeviceProcessEvents
| where ProcessCommandLine contains "/etc/shadow"
| where ProcessCommandLine matches regex @">\s*\S+"
| where InitiatingProcessAccountName == "root"
| extend OutputFile = extract(@">\s*(\S+)", 1, ProcessCommandLine)
| where isnotempty(OutputFile)
| distinct OutputFile | |
2 | An analyst suspects a user or script ran a service enumeration command on a Linux system. Review process events to find the service-listing invocation and specify the full command that was executed. | systemctl --type=service | systemctl status himdsd | ✗ | let LinuxDevices = DeviceInfo
| where OSPlatform =~ "Linux"
| summarize by DeviceId;
DeviceProcessEvents
| where DeviceId in (LinuxDevices)
| where ProcessCommandLine matches regex @"\b(systemctl|chkconfig|service|update-rc\.d)\b"
and ProcessCommandLine has_any ("list","status","--status-all")
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessAccountDomain, FileName, ProcessId, ProcessCommandLine
| order by TimeGenerated desc | |
3 | Identify the PowerShell cmdlet used on Windows to format and display the raw volume bytes after an attacker read the boot sector via a DOS device path. | Format-Hex | Format-Hex | ✓ | DeviceProcessEvents
| where FileName in~ ("powershell.exe", "pwsh.exe")
| where ProcessCommandLine has "Format-Hex"
// Optionally narrow to DOS device paths
| where ProcessCommandLine has "\\.\\"
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, ProcessCommandLine | |
4 | On a Linux system, review process creation logs to spot any dd commands reading from /proc/*/mem. What was the name of the file where the dumped memory was written? | T1003.007.bin | /tmp/T1003.007.bin | ✓ | DeviceProcessEvents
| where ActionType == "ProcessCreated"
| where ProcessCommandLine has "dd" and ProcessCommandLine has "if=/proc/"
| extend DumpFile = extract(@"of=(\S+)", 1, ProcessCommandLine)
| project TimeGenerated, DeviceName, ProcessCommandLine, DumpFile | |
5 | An analyst notices a PowerShell process on a Windows host that appears to be checking SMB connectivity. Which PowerShell cmdlet was executed to perform this outbound port 445 test? | Test-NetConnection | Test-NetConnection | ✓ | DeviceNetworkEvents
| where InitiatingProcessFileName == "powershell.exe" // only PowerShell processes
| where RemotePort == 445 // SMB port
| project Timestamp, DeviceName, InitiatingProcessId, InitiatingProcessCommandLine
| distinct InitiatingProcessCommandLine | |
6 | On a Windows host, someone appears to have run a built-in network shell utility to list saved wireless network profiles and their passwords in clear text. Review the process creation logs to discover the exact command that was executed. | netsh wlan show profile * key=clear | netsh wlan show profile * key=clear | ✓ | DeviceProcessEvents
| where tolower(FileName) == "netsh.exe"
| where tolower(ProcessCommandLine) contains "wlan show profile"
and tolower(ProcessCommandLine) contains "key=clear"
| project ProcessCreationTime, DeviceName, InitiatingProcessAccountName, ProcessCommandLine | |
7 | On Windows devices, identify the full command used when the built-in credential manager utility was invoked to list stored credentials. What was the exact command? | cmdkey /list | cmdkey.exe /list | ✓ | DeviceProcessEvents
| where FileName =~ "cmdkey.exe"
| where ProcessCommandLine has "/list"
| project TimeGenerated, DeviceName, DeviceId, InitiatingProcessAccountName, ProcessCommandLine
| order by TimeGenerated desc | |
8 | On a Windows host, an attacker leveraged COMSVCS.DLL via rundll32.exe to dump the memory of svchost.exe into a file under the Temp directory. Review the file creation logs to determine the exact name of the dump file that was generated. | svchost-exe.dmp | N/A | ✗ | ||
9 | On a Linux host, a ping command was executed to test internet connectivity. Determine which IP address was used as the ping target. | 8.8.8.8 | N/A | ✗ | ||
10 | Using Windows process event logs, investigate PowerShell activity around lsass.exe memory capture. What was the name of the script file invoked to perform the dump? | Out-Minidump.ps1 | N/A | ✗ | ||
11 | On a Windows endpoint, review process creation logs to uncover when a built-in utility was used to reveal ARP entries. What exact command was used to list the ARP cache? | arp -a | arp -a | ✓ | DeviceProcessEvents
| where ActionType == "ProcessCreated"
// Match either "arp" or "arp.exe"
| where FileName has_cs "arp"
// Look for the common ARP list switches (case-insensitive): -a, -g, /a, /g
| where ProcessCommandLine matches regex @"(?i)\barp\s+[-/][ag]\b"
| project ProcessCreationTime, DeviceName, InitiatingProcessAccountName, ProcessCommandLine
| sort by ProcessCreationTime asc | |
12 | A Linux host’s Syslog shows a shell-based network discovery script ran multiple commands. One of them listed current TCP connections. Which utility was invoked? | netstat | N/A | ✗ | ||
13 | Review Linux process execution records for any commands that list TCP metric cache entries and filter out loopback interfaces. Which utility was used? | ip | ip | ✓ | DeviceProcessEvents
// Look for TCP metric cache listing commands (ss -M/--metrics or ip tcp_metrics)
| where (ProcessCommandLine has "ss" and (ProcessCommandLine has "-M" or ProcessCommandLine has "--metrics"))
or (ProcessCommandLine has "ip" and ProcessCommandLine has "tcp_metrics")
// Exclude any references to the loopback interface
| where ProcessCommandLine !contains " lo" and ProcessCommandLine !contains "dev lo"
// Extract the invoked utility name from the full path
| extend UtilityPath = tostring(split(ProcessCommandLine, ' ')[0])
| extend Utility = tostring(split(UtilityPath, '/')[array_length(split(UtilityPath, '/')) - 1])
// Count invocations per utility and sort by highest usage
| summarize InvocationCount = count() by Utility
| order by InvocationCount desc | |
14 | A Windows host shows a process launch with an extremely obfuscated command line that dynamically builds and invokes code at runtime. Which process name was used to execute this payload? | powershell | powershell.exe | ✓ | DeviceProcessEvents
| where ActionType == "ProcessCreated"
// Look for common obfuscation and dynamic code invocation patterns
| where ProcessCommandLine matches regex @"(?i)\b(IEX|Invoke-Expression|FromBase64String|Add-Type|Reflection|Assembly\.Load)\b"
| project TimeGenerated, DeviceName, ProcessName = FileName, ProcessCommandLine
| sort by TimeGenerated desc
| distinct ProcessName | |
15 | A Windows host executed an ICMP-based network reconnaissance using a looping instruction in cmd.exe. Identify the exact command line that was used to perform the ping sweep. | for /l %i in (1,1,254) do ping -n 1 -w 100 192.168.1.%i | "cmd.exe" /c for /l %i in (1,1,254) do ping -n 1 -w 100 192.168.1.%i | ✓ | DeviceProcessEvents
| where FileName == "cmd.exe"
| where ProcessCommandLine has "for /L" and ProcessCommandLine has "ping"
| project TimeGenerated, DeviceName, AccountName, ProcessCommandLine
| sort by TimeGenerated asc | |
16 | On a Windows endpoint, look for evidence of a base64-encoded PowerShell payload execution. Which executable launched the encoded command? | powershell.exe | N/A | ✗ | ||
17 | On Windows hosts, look through recent PowerShell execution records to find any elevated session where remote management was turned on. What exact command was run to enable PSRemoting? | Enable-PSRemoting -Force | N/A | ✗ | ||
18 | A process is running under a familiar Windows host name but originates from a user's AppData folder rather than the System32 directory. Identify the filename used to masquerade the PowerShell binary on this Windows device. | taskhostw.exe | taskhostw.exe | ✓ | DeviceProcessEvents
| where FolderPath has "\\AppData\\" // Running out of a user profile AppData folder
| where ProcessVersionInfoOriginalFileName endswith "powershell.exe" // Internally still PowerShell
| where FileName != "powershell.exe" // Exclude the real PowerShell binary name
| distinct FileName | |
19 | A threat actor on a Windows system crafted and registered a service named almost identically to the standard time service, but redirecting execution to a custom script. Review the logging data to determine which native command-line tool was used to perform this action. What utility was invoked? | sc | sc | ✓ | DeviceProcessEvents
| where ProcessCommandLine has_cs "sc create"
| project TimeGenerated, DeviceName, Account=InitiatingProcessAccountName, FileName, ProcessCommandLine
| order by TimeGenerated desc | |
20 | On a Linux system, spotting a file‐size change by exactly one byte can indicate hash tampering via padding. Review process execution logs for invocations that increased a file’s size by one byte. Which utility was invoked to perform this padding? | truncate | N/A | ✗ | ||
21 | On a Linux system, identify the script that was generated by decoding a base64 data file and then executed. What was the filename of that script? | art.sh | N/A | ✗ | ||
22 | A Windows host shows a core command-line utility being duplicated from its System32 location to a user-profile folder and subsequently run. Identify the name of the executable that was copied. | cmd.exe | svchost.exe | ✗ | let CopiedExecutables = DeviceFileEvents
| where ActionType == "FileCreated"
// File copied into a user profile folder
| where FolderPath startswith @"C:\Users\"
// Copying process came from System32
| where InitiatingProcessFolderPath has @"\System32\"
| extend FullPath = strcat(FolderPath, "\\", FileName)
| project FileName, FullPath, CopyTime = TimeGenerated;
DeviceProcessEvents
| where ActionType == "ProcessCreated"
// Process started from a user profile folder (the copied executable)
| where FolderPath startswith @"C:\Users\"
| extend ProcessPath = strcat(FolderPath, "\\", FileName)
// Join on the exact path to ensure we only see processes launched from our copied file
| join kind=inner CopiedExecutables on $left.ProcessPath == $right.FullPath
| project ExecutableName = FileName, CopiedAt = CopyTime, LaunchedAt = TimeGenerated | |
23 | On a Windows system, someone ran PowerShell to copy a file from a remote machine’s C$ share to the local TEMP folder. Using process event logs, what full PowerShell command was executed to perform this action? | copy-item -Path "\\127.0.0.1\C$\Windows\temp\Easter_Bunny.password" -Destination "$Env:TEMP\Easter_egg.password" | "powershell.exe" & {copy-item -Path "\\127.0.0.1\C$\Windows\temp\Easter_Bunny.password" -Destination "$Env:TEMP\Easter_egg.password"} | ✓ | DeviceProcessEvents
| where ActionType == "ProcessCreated"
// Only look at PowerShell processes
| where FileName has "powershell" or ProcessCommandLine has "powershell"
// Filter for UNC path pointing to a C$ share and local TEMP folder
| where ProcessCommandLine has "\\"
| where tolower(ProcessCommandLine) has "c$"
| where tolower(ProcessCommandLine) has "temp"
// Select relevant fields
| project TimeGenerated, DeviceName, AccountName, ProcessCommandLine
// Order by most recent
| order by TimeGenerated desc | |
24 | In a Linux environment, you observe a process labeled like the cron daemon but running from an unexpected path. Investigate creation events to uncover the actual filename used by this fake cron process. | crond | N/A | ✗ | ||
25 | A user launched a Windows command prompt and executed a built-in utility to enumerate all active network connections. Using process creation logs, identify the exact tool that produced the list of current connections. | netstat | netstat | ✓ | DeviceProcessEvents
| where InitiatingProcessFileName == "cmd.exe"
// Filter to child processes of cmd.exe that enumerate network connections
| where ProcessCommandLine contains "netstat"
// Select relevant details to identify the tool and context
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName, FileName, ProcessCommandLine | |
26 | In a Windows log analytics workspace, search for PowerShell processes that were used to enumerate network connections. Determine which PowerShell cmdlet was executed to list active TCP connections. | Get-NetTCPConnection | Get-NetTCPConnection | ✓ | DeviceProcessEvents
| where FileName endswith "powershell.exe"
| where ProcessCommandLine has_any ("Get-NetTCPConnection", "Get-NetUDPEndpoint", "Get-NetTCPStats", "netstat")
| extend Cmdlet = extract(@"(?i)(Get-NetTCPConnection|Get-NetUDPEndpoint|Get-NetTCPStats|netstat)\b", 1, ProcessCommandLine)
| summarize Count = count() by Cmdlet
| order by Count desc | |
27 | A Linux host briefly hosted an HTTP service under /tmp. Examine process creation logs to determine the exact python3 command that was used to start the server on port 9090. | python3 -m http.server 9090 | python3 -m http.server 9090 | ✓ | DeviceProcessEvents
| where FileName == "python3" or ProcessCommandLine has "python3"
| where ProcessCommandLine has "/tmp"
and (ProcessCommandLine has "http.server" or ProcessCommandLine has "SimpleHTTPServer" or ProcessCommandLine has "-m http.server")
| where ProcessCommandLine has "9090"
| project ProcessCreationTime, DeviceName, ProcessId, ProcessCommandLine
| sort by ProcessCreationTime asc | |
28 | On a Windows endpoint you observe a PowerShell process that fetches a script from the internet and immediately executes an RPC service scan against the spooler. Which function name was invoked to perform that scan? | spoolvulnscan | N/A | ✗ | ||
29 | You suspect malicious persistence via scheduled tasks on a Windows endpoint. Review the process execution logs to identify the built-in utility used to register tasks at logon or startup. What is the name of this utility? | schtasks | schtasks.exe | ✓ | DeviceProcessEvents
| where FileName in ("schtasks.exe", "at.exe")
| where ProcessCommandLine has "/create"
| project Timestamp, DeviceName, FileName, ProcessCommandLine
| distinct FileName | |
30 | Windows process creation logs show a PowerShell-driven file transfer to an FTP service. Which executable was leveraged to perform this exfiltration? | rclone.exe | N/A | ✗ | ||
31 | A reconnaissance tool was executed on a Windows system. Identify the specific function of the tool that was executed. The function has a name from something you can eat | fruit | N/A | ✗ | ||
32 | Linux hosts may log events when new files are added to /var/spool/cron/crontabs. Query those logs for a creation or write action in that directory and determine the file name that was added. | persistevil | persistevil | ✓ | DeviceFileEvents
| where FolderPath startswith "/var/spool/cron/crontabs"
| where ActionType in ("FileCreated", "FileWrite", "FileModified")
| project TimeGenerated, DeviceName, FileName, FolderPath, ActionType, InitiatingProcessCommandLine
| sort by TimeGenerated desc | |
33 | On a Windows device, PowerShell was used to collect a snapshot of running processes. Identify the exact cmdlet that was executed. | Get-Process | Get-Process | ✓ | DeviceProcessEvents
| where FileName == "powershell.exe"
| where ProcessCommandLine has_any ("Get-Process", "gps")
| extend ScriptBlockText = tostring(AdditionalFields.ScriptBlockText)
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, ProcessCommandLine, ScriptBlockText
| order by TimeGenerated desc | |
34 | While reviewing Windows process events, you spot a PowerShell process executing a WMI enumeration cmdlet. What WMI class name did the attacker query? | Win32_Process | Win32_Process | ✓ | DeviceProcessEvents
| where FileName =~ "powershell.exe"
| where ProcessCommandLine has_any ("Get-WmiObject", "gwmi", "Get-CimInstance", "Invoke-WmiMethod")
| extend WmiClass = extract(@"(?i)(?:-ClassName|-Class)\s+([A-Za-z0-9_:.]+)", 1, ProcessCommandLine)
| where isnotempty(WmiClass)
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, WmiClass, ProcessCommandLine
| sort by TimeGenerated desc | |
35 | A Windows endpoint recorded a command-line activity through cmd.exe that lists all running processes. Determine which built-in tool was executed to perform this action. | tasklist | tasklist.exe | ✓ | DeviceProcessEvents
| where InitiatingProcessFileName == "cmd.exe"
| where ProcessCommandLine has "tasklist" or ProcessCommandLine has_cs "wmic process list"
| summarize Occurrences = count() by BuiltInTool = strcat(FolderPath, "\\", FileName)
| project BuiltInTool, Occurrences | |
36 | On Windows, review recent registry changes to detect when the MSC file association was hijacked by a reg add operation. What executable file was configured as the default command under HKCU\Software\Classes\mscfile\shell\open\command? | calc.exe | N/A | ✗ | ||
37 | On a Windows device, review the process execution logs to find instances where a built-in listing tool was piped into a string filter. Identify the process name that the attacker was searching for. | lsass | lsass | ✓ | DeviceProcessEvents
| where ActionType == "ProcessCreated"
// Identify invocations of built-in listing tools piped into findstr
| where ProcessCommandLine has "|" and ProcessCommandLine has "findstr"
| where ProcessCommandLine has_any ("dir","tasklist")
// Extract the search term passed to findstr
| extend SearchTerm = extract(@"findstr\s+""?([^""\s]+)""?", 1, ProcessCommandLine)
| where isnotempty(SearchTerm)
// Select relevant details and count occurrences
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, SearchTerm, ProcessCommandLine
| summarize Occurrences = count() by SearchTerm
| sort by Occurrences desc | |
38 | On a Windows host, find any scheduled task that was registered using PowerShell native cmdlets instead of schtasks.exe. What was the name given to the new task? | AtomicTask | N/A | ✗ | ||
39 | On a Windows host, investigate process events to find when Task Manager was launched via cmd with an unusual flag. What was the full command executed? | taskmgr.exe /7 | N/A | ✗ | ||
40 | Analyze Windows process events for any schtasks.exe commands that created a new task invoking PowerShell. What is the name of the .ps1 script specified to run? | T1036.004_NonExistingScript.ps1 | T1036.004_NonExistingScript.ps1 | ✓ | DeviceProcessEvents
| where FileName =~ "schtasks.exe"
| where ProcessCommandLine has "/create"
| where ProcessCommandLine has "powershell"
| parse ProcessCommandLine with * "-File " ScriptNameRaw:string ".ps1" *
| extend Ps1Script = strcat(trim('"', ScriptNameRaw), ".ps1")
| where isnotempty(Ps1Script)
| project TimeGenerated, DeviceName, AccountName, Ps1Script, ProcessCommandLine
| sort by TimeGenerated desc | |
41 | A malicious actor may attempt to list running processes on a Windows machine using a WMI-based command. Review the process creation events to find out which utility was invoked to perform this enumeration. | wmic.exe | N/A | ✗ | ||
42 | Review the process creation logs on a Windows host to uncover any tool execution indicative of a special APC injection for shellcode execution. What was the name of the executable used? | NtQueueApcThreadEx.exe | N/A | ✗ | ||
43 | An attacker on a Linux host may try to enumerate installed shells by reading the system file that lists valid shells. Using process or syslog data, determine which command was executed to perform this enumeration. | cat /etc/shells | cat /etc/shells | ✓ | let ShellFilePath = "/etc/shells";
// 1) Find any processes that reference /etc/shells in their command line
let ProcHits = DeviceProcessEvents
| where ProcessCommandLine contains ShellFilePath
| project TimeGenerated, DeviceName, AccountName, CommandLine = ProcessCommandLine;
// 2) Find any file‐access events reading the /etc/shells file
let FileHits = DeviceFileEvents
| where FileName == "shells" and FolderPath endswith "/etc"
| where ActionType has "Read"
| project TimeGenerated, DeviceName, AccountName = InitiatingProcessAccountName, CommandLine = InitiatingProcessCommandLine;
// Combine and sort
union ProcHits, FileHits
| sort by TimeGenerated desc | |
44 | On a Linux system, find any process creation record where awk is used with a BEGIN rule to launch a shell. What was the exact command invoked? | awk 'BEGIN {system("/bin/sh &")}’ | awk 'BEGIN {system("/bin/sh &")}' | ✓ | let linuxDevices = DeviceInfo
| where OSPlatform == "Linux"
| distinct DeviceId;
DeviceProcessEvents
| where DeviceId in (linuxDevices)
| where tolower(ProcessCommandLine) has "awk"
// look for BEGIN rule and system call launching a shell
| where tolower(ProcessCommandLine) has "begin" and tolower(ProcessCommandLine) has "system(\"/bin/sh"
| project TimeGenerated, DeviceName, ProcessId, FileName, ProcessCommandLine
| sort by TimeGenerated desc | |
45 | Which full interactive shell command, as recorded in the Linux process logs, repeatedly echoed a distinctive marker message to the terminal? | for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done | N/A | ✗ | ||
46 | On a Linux host, identify the process invocation that altered a user’s login shell. What was the full command used? | chsh -s /bin/sh art | N/A | ✗ | ||
47 | On a Linux system, review process execution records for any shell process that set an environment variable containing executable code and then piped it into another shell instance. Determine which environment variable name was used to store the script content. | ART | N/A | ✗ | ||
48 | On a Linux system, analyze the process logs for suspicious command line activity that includes a sequence of commands indicating a pipe-to-shell operation. Identify the tool that was used to execute this piped command, paying special attention to its use in downloading and running script content. | bash | curl | ✗ | let LinuxDevices = DeviceInfo
| where OSPlatform == "Linux"
| distinct DeviceId;
DeviceProcessEvents
| where DeviceId in (LinuxDevices)
// Note: the TimeGenerated filter is set via the external time range picker
| where ProcessCommandLine matches regex "(?i)\\b(?:curl|wget|fetch)\\b.*\\|\\s*(?:bash|sh|zsh)\\b"
| extend
DownloaderTool = tostring(extract("(?i)\\b(curl|wget|fetch)\\b", 1, ProcessCommandLine)),
ShellUsed = tostring(extract("\\|\\s*(bash|sh|zsh)\\b", 1, ProcessCommandLine))
| project
TimeGenerated,
DeviceName,
AccountName = InitiatingProcessAccountName,
DownloaderTool,
ShellUsed,
ProcessCommandLine,
InitiatingProcessFileName,
ProcessId
| order by TimeGenerated desc | |
49 | During a Linux investigation, you notice processes spawning curl and wget commands that pull a script from a remote GitHub raw URL and pipe it into bash. Identify the name of the script that was retrieved and executed. | echo-art-fish.sh | pipe-to-shell.sh | ✗ | DeviceProcessEvents
| where ActionType == "ProcessCreated"
// Only look for curl or wget invocations
| where ProcessCommandLine contains "curl" or ProcessCommandLine contains "wget"
// Focus on raw GitHub URLs
| where ProcessCommandLine contains "raw.githubusercontent.com"
// Extract the full URL being fetched
| extend DownloadUrl = extract(@"(https?://raw\.githubusercontent\.com/[^\s'""\|]+)", 1, ProcessCommandLine)
| where isnotempty(DownloadUrl)
// Derive the script name from the URL by taking the last path segment
| extend ScriptName = tostring(split(DownloadUrl, "/")[-1])
// Filter for typical shell script extensions
| where ScriptName endswith ".sh" or ScriptName endswith ".bash"
// Summarize by script name to see which scripts were pulled and executed
| summarize Count = count() by ScriptName
| sort by Count desc | |
50 | Examine the logs from the Linux system for events related to the systemd timer activation. Identify any records indicating that a new timer unit was started and enabled, and determine which timer name was used. | art-timer.timer | N/A | ✗ |
Page 1 of 4