Question Analysis

On a Windows device, an attacker ran a PowerShell script to collect system settings including UI language and locale. Identify which cmdlet in the command line was used to obtain the system locale.

1f23bfe8-36d4-49ce-903a-19a1e8c6631b
Question ID
14/23
Models Correct
1
Valid Answer
61%
Success Rate
Reference Answer

Human-validated correct answer for this question

Get-WinSystemLocale
Model Performance Comparison

See how different AI models performed on this question

ModelAnswerKQL QueryStatusAttemptsTimeCost
gemini-2.5-flash-preview-04-17
No answer provided
No query generated
Incorrect
5
0.00s
0.0183
gpt-35-turbo
Get-WinSystemLocale
DeviceProcessEvents | where ProcessCommandLine contains 'Get-WinSystemLocale'
Correct
1
3.05s
0.0030
gpt-4-turbo-2024-04-09
No answer provided
No query generated
Incorrect
5
0.00s
0.2293
gpt-4.1
Get-WinSystemLocale
DeviceProcessEvents | where FileName =~ "powershell.exe" | where ProcessCommandLine has_any ("Get-WinSystemLocale", "Get-Culture", "Get-UICulture") | extend CmdletUsed = case(ProcessCommandLine has "Get-WinSystemLocale", "Get-WinSystemLocale", ProcessCommandLine has "Get-Culture", "Get-Culture", ProcessCommandLine has "Get-UICulture", "Get-UICulture", "Unknown") | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine, CmdletUsed
Correct
1
4.75s
0.0117
gpt-4.1-finetuned
Get-WinSystemLocale
DeviceProcessEvents | where ProcessCommandLine has "Get-Culture" or ProcessCommandLine has "CultureInfo" or ProcessCommandLine has "CultureInfo" | distinct ProcessCommandLine | take 10
Correct
5
37.73s
0.0359
gpt-4.1-mini
Get-WinSystemLocale
DeviceProcessEvents | where InitiatingProcessFileName has_cs "powershell.exe" and (ProcessCommandLine has "Get-Culture" or ProcessCommandLine has "Get-UICulture" or ProcessCommandLine has "Get-WinSystemLocale" or ProcessCommandLine has "Get-WinUserLanguageList") | project Timestamp, DeviceName, InitiatingProcessAccountName, ProcessCommandLine | order by Timestamp desc
Correct
2
19.90s
0.0030
gpt-4.1-nano
Get-WinSystemLocale
DeviceProcessEvents | where ProcessCommandLine contains 'Get-Culture' or ProcessCommandLine contains 'Get-WinSystemLocale' | project TimeGenerated, DeviceName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessId
Correct
1
2.89s
0.0005
gpt-4o
No answer provided
No query generated
Incorrect
5
0.00s
0.0481
gpt-5-high
Get-WinSystemLocale
DeviceProcessEvents | where FileName in~ ("powershell.exe","pwsh.exe","powershell_ise.exe") // Look for typical locale/UI language collection commands | where ProcessCommandLine has_any ( "Get-WinSystemLocale", "Get-Culture", "Get-UICulture", "[CultureInfo]::InstalledUICulture", "Get-WinUserLanguageList", "reg query", "Get-ItemProperty" ) // Extract the specific cmdlet/technique used for system locale | extend LocaleCmdlet = coalesce( extract(@"(?i)\b(Get-WinSystemLocale|Get-Culture|Get-UICulture|Get-WinUserLanguageList)\b", 1, ProcessCommandLine), iff(ProcessCommandLine has_cs "[CultureInfo]::InstalledUICulture", "[CultureInfo]::InstalledUICulture", ""), iff(ProcessCommandLine has "reg query" and ProcessCommandLine matches regex @"(?i)\\Control\\Nls\\Language", "reg query Nls\\Language", ""), iff(ProcessCommandLine has "Get-ItemProperty" and ProcessCommandLine matches regex @"(?i)\\Control\\Nls\\Language", "Get-ItemProperty Nls\\Language", "") ) | where isnotempty(LocaleCmdlet) | project TimeGenerated, DeviceName, AccountName, InitiatingProcessAccountName, FileName, ProcessCommandLine, LocaleCmdlet | order by TimeGenerated desc
Correct
1
60.76s
0.0427
gpt-5-mini-high
Get-WinSystemLocale
union DeviceProcessEvents, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents | where isnotempty(ProcessCommandLine) or isnotempty(InitiatingProcessCommandLine) | extend cmdline = coalesce(ProcessCommandLine, InitiatingProcessCommandLine, InitiatingProcessCommandLine) // look for common cmdlets/expressions used to get locale/UI language | where cmdline has_any ("Get-WinSystemLocale", "Get-Culture", "Get-WinUserLanguageList", "Get-UICulture", "InstalledUICulture") | extend DetectedCmdlet = extract(@"(?i)\b(Get-WinSystemLocale|Get-Culture|Get-WinUserLanguageList|Get-UICulture|InstalledUICulture)\b", 1, cmdline) | project TimeGenerated, DeviceName, DeviceId, AccountName, InitiatingProcessAccountName, InitiatingProcessFileName, ProcessId, cmdline, DetectedCmdlet | order by TimeGenerated desc | take 50
Correct
1
21.75s
0.0052
gpt-5-mini-low
Get-WinSystemLocale
union isfuzzy=true DeviceProcessEvents, DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceRegistryEvents | extend CommandLine = coalesce(ProcessCommandLine, InitiatingProcessCommandLine, '') | where isnotempty(CommandLine) // Focus on PowerShell (classic and pwsh) | where tolower(CommandLine) contains "powershell" or tolower(CommandLine) contains "pwsh" // Extract known locale/culture cmdlets and common access patterns | extend MatchedCmdlet = extract(@"(?i)\b(Get-WinSystemLocale|Get-Culture|Get-UICulture|Get-WinUserLanguageList|Get-UserPreferredUILanguages|Get-ItemPropertyValue|Get-ItemProperty|Get-Item|Get-ChildItem|Get-Content|reg\s+query|InstalledUICulture|CurrentCulture|CultureInfo)\b", 1, CommandLine) // Also capture registry access patterns that indicate locale queries (HKLM/HKEY_LOCAL_MACHINE paths with locale-related keys) | extend MatchedRegistry = extract(@"(?i)(HKLM:\\|HKEY_LOCAL_MACHINE\\)[^\r\n;]*?(InstallLanguage|InstallLocale|LocaleName|Locale|MUI|CurrentCulture|Nls|Language)[^\r\n;]*", 0, CommandLine) | where isnotempty(MatchedCmdlet) or isnotempty(MatchedRegistry) | project TimeGenerated, DeviceName, DeviceId, ReportId, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessId, ProcessId, MatchedCmdlet, MatchedRegistry, CommandLine | sort by TimeGenerated desc | take 200
Correct
2
48.39s
0.0160
gpt-5-mini-medium
Get-WinSystemLocale
union isfuzzy=true DeviceProcessEvents, DeviceEvents | extend ProcFile = tolower(coalesce(FileName, InitiatingProcessFileName)) | extend CmdLine = coalesce(ProcessCommandLine, InitiatingProcessCommandLine) | where ProcFile in ("powershell.exe", "pwsh.exe", "pwsh", "pwsh-preview.exe", "powershell7.exe") | where isnotempty(CmdLine) // Look for common PowerShell cmdlets / patterns that reveal system/UI locale | where CmdLine matches regex @"(?i)(Get-CultureInfo|Get-Culture|Get-UICultureInfo|Get-UICulture|Get-WinSystemLocale|Get-WinUserLanguageList|Get-ItemPropertyValue|Get-ItemProperty|Get-CimInstance|Get-WmiObject|gwmi|HKLM:\\(SYSTEM|System)\\CurrentControlSet\\Control\\Nls\\Locale|Nls\\Locale)" | extend MatchedCmdlet = extract(@"(?i)\b(Get-CultureInfo|Get-Culture|Get-UICultureInfo|Get-UICulture|Get-WinSystemLocale|Get-WinUserLanguageList|Get-ItemPropertyValue|Get-ItemProperty|Get-CimInstance|Get-WmiObject|gwmi)\b", 1, CmdLine) | project TimeGenerated, DeviceName, DeviceId, AccountName, InitiatingProcessAccountName, ProcFile, ProcessId = coalesce(ProcessId, InitiatingProcessId), CmdLine, MatchedCmdlet | sort by TimeGenerated desc | take 500
Correct
2
39.46s
0.0095
gpt-5-nano-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0089
gpt-5-nano-medium
No answer provided
No query generated
Incorrect
5
0.00s
0.0062
grok-3-beta
wmic
DeviceProcessEvents | where InitiatingProcessFileName in ('powershell.exe', 'pwsh.exe') | where ProcessCommandLine has_any ('Get-Culture', 'Get-UICulture', 'locale', 'language', 'region') | project DeviceName, Timestamp, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, AccountName | order by Timestamp desc
Incorrect
1
10.57s
0.0213
grok-3-mini-beta
Get-WinSystemLocale
DeviceProcessEvents | where FileName == 'powershell.exe' | where ProcessCommandLine contains 'Get-Culture' or ProcessCommandLine contains 'Get-WinSystemLocale' | project Timestamp, DeviceName, ProcessCommandLine, AccountName | order by Timestamp desc
Correct
1
11.37s
0.0016
o1-high
Get-WinSystemLocale
union DeviceEvents, DeviceFileEvents, DeviceImageLoadEvents, DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents, DeviceRegistryEvents | where TimeGenerated >= ago(7d) // Combine possible command line fields for different event types | extend FullCommandLine = coalesce(InitiatingProcessCommandLine, ProcessCommandLine, AdditionalFields.CommandLine) | where isnotempty(FullCommandLine) | where tolower(FullCommandLine) has "powershell" and tolower(FullCommandLine) has_any ("get-culture", "get-uiculture", "get-winsystemlocale", "locale") // Extract the relevant cmdlet name found | extend LocaleCmdlet = extract(@"(get-culture|get-uiculture|get-winsystemlocale|locale)", 0, tolower(FullCommandLine)) | project TimeGenerated, DeviceName, FullCommandLine, LocaleCmdlet, InitiatingProcessAccountName, InitiatingProcessAccountDomain | order by TimeGenerated desc
Correct
5
105.49s
0.7295
o1-low
Get-WinSystemLocale
DeviceProcessEvents | where TimeGenerated >= ago(14d) // Adjust the time range as needed | where (InitiatingProcessCommandLine contains "powershell" or ProcessCommandLine contains "powershell" or InitiatingProcessCommandLine contains "pwsh" or ProcessCommandLine contains "pwsh") | where (InitiatingProcessCommandLine has_any ("Get-Culture","Get-UICulture","Get-WinSystemLocale","wmic os get locale","Get-CimInstance","Get-WmiObject","Win32_OperatingSystem") or ProcessCommandLine has_any ("Get-Culture","Get-UICulture","Get-WinSystemLocale","wmic os get locale","Get-CimInstance","Get-WmiObject","Win32_OperatingSystem")) | project TimeGenerated, DeviceId, DeviceName, AccountName, InitiatingProcessCommandLine, ProcessCommandLine | order by TimeGenerated desc
Correct
3
63.57s
0.4904
o3-high
Get-WinSystemLocale
DeviceProcessEvents // limit to PowerShell invocations | where FileName has_any ("powershell.exe", "pwsh.exe", "powershell_ise.exe") // look for commands that query the system locale | where ProcessCommandLine has_any ("Get-WinSystemLocale", "Get-Culture") // extract the exact cmdlet that was used | extend LocaleCmdlet = extract(@"(?i)(Get-WinSystemLocale|Get-Culture)", 1, ProcessCommandLine) | where isnotempty(LocaleCmdlet) | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine, LocaleCmdlet | order by TimeGenerated desc
Correct
1
25.23s
0.0181
o3-mini-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0348
o3-mini-low
No answer provided
No query generated
Incorrect
5
0.00s
0.0387
o4-mini-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0456
o4-mini-low
Get-WinSystemLocale
DeviceProcessEvents | where FileName in~ ("powershell.exe", "pwsh.exe") | where ProcessCommandLine matches regex @"(?i)Get-(Culture|UICulture|WinSystemLocale)" | extend Cmdlet = extract(@"(?i)(Get-(?:Culture|UICulture|WinSystemLocale))", 1, ProcessCommandLine) | summarize Count = count(), SampleCommandLine = any(ProcessCommandLine) by Cmdlet | order by Count desc
Correct
2
72.13s
0.0162