Question Analysis

On a Windows system, an attacker used the command prompt to remove one or more default administrative shares. Which share names were deleted?

4299eff5-90f1-4446-b2f3-7f4f5cfd5d62
Question ID
10/23
Models Correct
3
Valid Answers
43%
Success Rate
Reference Answers

Human-validated correct answers for this question

C$IPC$ADMIN$
Model Performance Comparison

See how different AI models performed on this question

ModelAnswerKQL QueryStatusAttemptsTimeCost
gemini-2.5-flash-preview-04-17
C$, IPC$, ADMIN$
DeviceProcessEvents | where ActionType == "ProcessCreated" | where FileName =~ "cmd.exe" | where ProcessCommandLine contains "net share" and ProcessCommandLine contains "/delete" | extend ShareNameDeleted = extract(@'net share ([^\s]+) /delete', 1, ProcessCommandLine) | where isnotempty(ShareNameDeleted) | project Timestamp, DeviceName, InitiatingProcessCommandLine, ProcessCommandLine, ShareNameDeleted, AccountName
Correct
1
12.53s
0.0058
gpt-35-turbo
No answer provided
No query generated
Incorrect
5
0.00s
0.0107
gpt-4-turbo-2024-04-09
C$ IPC$ ADMIN$
DeviceProcessEvents | where ProcessCommandLine contains 'net share' and (ProcessCommandLine contains '/delete' or ProcessCommandLine contains ' /d') | project DeviceName, ProcessCommandLine, TimeGenerated
Correct
1
9.04s
0.0507
gpt-4.1
No answer provided
No query generated
Incorrect
5
0.00s
0.0510
gpt-4.1-finetuned
No answer provided
No query generated
Incorrect
5
0.00s
0.0515
gpt-4.1-mini
No answer provided
No query generated
Incorrect
5
0.00s
0.0079
gpt-4.1-nano
No answer provided
No query generated
Incorrect
5
0.00s
0.0016
gpt-4o
No answer provided
No query generated
Incorrect
5
0.00s
0.0513
gpt-5-high
ADMIN$,IPC$,C$
let defaultAdminShares = dynamic(["ADMIN$","IPC$","C$","D$","E$","F$","G$","H$","I$","J$","K$","L$","M$","N$","O$","P$","Q$","R$","S$","T$","U$","V$","W$","X$","Y$","Z$"]); DeviceProcessEvents | where ActionType == "ProcessCreated" | where FileName in~ ("net.exe","net1.exe") | where InitiatingProcessFileName =~ "cmd.exe" // ensured run from Command Prompt | extend cmd = tostring(ProcessCommandLine) | where cmd matches regex @"(?i)\bnet(\.exe)?\s+share\b" and cmd matches regex @"(?i)\s/(?:delete|del)\b" | extend ShareName = toupper(extract(@"(?i)\bshare\s+['\""]?([A-Za-z0-9_\-]+[$])['\""]?", 1, cmd)) | where ShareName in (defaultAdminShares) | distinct ShareName
Correct
1
77.84s
0.0428
gpt-5-mini-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0234
gpt-5-mini-low
No answer provided
No query generated
Incorrect
5
0.00s
0.0209
gpt-5-mini-medium
C$,ADMIN$,IPC$
// Find deletions of administrative shares (e.g., C$, ADMIN$, IPC$) performed via cmd.exe/net.exe/reg.exe union isfuzzy=true DeviceEvents, DeviceProcessEvents | where (ProcessCommandLine has_cs "net share" or ProcessCommandLine has_cs "net share" or InitiatingProcessCommandLine has_cs "net share" or ProcessCommandLine has_cs "net.exe" or InitiatingProcessCommandLine has_cs "net.exe" or ProcessCommandLine has_cs "reg delete" or InitiatingProcessCommandLine has_cs "reg delete" or ProcessCommandLine has_cs "sc delete" or InitiatingProcessCommandLine has_cs "sc delete") and (FileName has_cs "cmd.exe" or FileName has_cs "net.exe" or FileName has_cs "reg.exe" or FileName has_cs "sc.exe" or InitiatingProcessFileName has_cs "cmd.exe" or InitiatingProcessFileName has_cs "net.exe" or InitiatingProcessFileName has_cs "reg.exe" or InitiatingProcessFileName has_cs "sc.exe") | extend cmdline = coalesce(ProcessCommandLine, InitiatingProcessCommandLine) | extend share = extract(@"(?:net\s+share\s+)([A-Za-z0-9\$]+)", 1, tostring(cmdline)) | extend share_reg = extract(@"(?:\\\?\\)?HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SvcHost\\.*?" , 0, tostring(RegistryKey)) | extend share2 = iff(isnotempty(share), share, extract(@"(?:/delete\s+|delete\s+)([A-Za-z0-9\$]+)", 1, tostring(cmdline))) | extend share3 = iff(isnotempty(share2), share2, extract(@"([A-Za-z]:\$|[A-Za-z0-9_]+\$)", 1, tostring(cmdline))) | project TimeGenerated, DeviceName, AccountName, InitiatingProcessAccountName, FileName, InitiatingProcessFileName, cmdline, share = share3 | where isnotempty(share) | summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), Count=count() by DeviceName, share | order by LastSeen desc
Correct
1
17.15s
0.0043
gpt-5-nano-high
ADMIN$,IPC$
let AllDeletedShares = union DeviceProcessEvents, DeviceNetworkEvents, DeviceFileEvents | where TimeGenerated >= ago(30d) | extend CmdLine = coalesce(InitiatingProcessCommandLine, ProcessCommandLine) | where CmdLine contains "net share" | extend ShareName = tostring(extract(@"net\s+share\s+([^\\s/]+)", 1, CmdLine)) | where isnotempty(ShareName) | summarize DeletedShareNames = makeset(ShareName); AllDeletedShares
Correct
2
78.33s
0.0049
gpt-5-nano-medium
No answer provided
No query generated
Incorrect
5
0.00s
0.0073
grok-3-beta
No answer provided
No query generated
Incorrect
5
0.00s
0.0925
grok-3-mini-beta
C$, IPC$, ADMIN$
DeviceProcessEvents | where ProcessCommandLine contains 'net share' and ProcessCommandLine contains '/delete' | extend ShareName = extract(@'net share (\S+)', 1, ProcessCommandLine) // Extracts the share name after 'net share' | where isnotempty(ShareName) // Ensures only valid extractions are kept | project Timestamp, DeviceName, ShareName, ProcessCommandLine // Projects key fields for review
Correct
1
20.29s
0.0016
o1-high
No answer provided
No query generated
Incorrect
5
0.00s
1.0645
o1-low
C$,IPC$,ADMIN$
DeviceProcessEvents | where FileName =~ "cmd.exe" | where ProcessCommandLine has_all ("net", "share", "/delete") | parse kind=regex ProcessCommandLine with @"net share " ShareName @" /delete" * | project TimeGenerated, DeviceName, InitiatingProcessAccountName, ShareName, ProcessCommandLine
Correct
1
35.22s
0.2235
o3-high
admin$,ipc$,c$
// Administrative shares deleted from the endpoint DeviceProcessEvents | where TimeGenerated between (startofday(ago(7d)) .. now()) // << replace/override with your time-picker | where FileName in~ ("net.exe", "wmic.exe", "powershell.exe") // Normalise the command line for easier string matching | extend cmd = tolower(ProcessCommandLine) // Keep only executions that look like a share-deletion command | where (FileName =~ "net.exe" and cmd contains " share " and cmd contains "/delete") or (FileName =~ "wmic.exe" and cmd contains " share " and cmd contains " delete") or (FileName =~ "powershell.exe" and cmd contains "remove-smbshare") // Extract the name of the share that is being deleted – pattern differs per tool | extend DeletedShare = case( FileName =~ "net.exe", extract("net\\s+share\\s+([^\\s]+)", 1, cmd), FileName =~ "wmic.exe", extract("name=\"([^\"]+)\"", 1, cmd), FileName =~ "powershell.exe", extract("-name\\s+\"([^\"]+)\"", 1, cmd), "") | where isnotempty(DeletedShare) and DeletedShare endswith "$" // focus on default admin shares | project TimeGenerated, DeviceName, User = iff(isempty(AccountDomain), AccountName, strcat(AccountDomain, "\\", AccountName)), FileName, ProcessCommandLine, DeletedShare | sort by TimeGenerated desc
Correct
5
162.96s
0.0973
o3-mini-high
%i
DeviceProcessEvents | where InitiatingProcessFileName =~ "cmd.exe" | where InitiatingProcessCommandLine contains "net share" and InitiatingProcessCommandLine contains "/delete" | extend shareName = extract("net\\s+share\\s+([^\\s]+)\\s+/delete", 1, InitiatingProcessCommandLine) | where isnotempty(shareName) | summarize by shareName | project shareName
Incorrect
2
21.73s
0.0136
o3-mini-low
No answer provided
No query generated
Incorrect
5
0.00s
0.0351
o4-mini-high
C$, IPC$, ADMIN$
// 1) Registry-based share deletions let RegistryDeletion = DeviceRegistryEvents | where ActionType == "ValueDeleted" | where RegistryKey startswith @"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares" | extend ShareName = RegistryValueName | project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessCommandLine, ShareName; // 2) "net share <ShareName> /delete" command let NetShareDelete = DeviceProcessEvents | where ActionType == "ProcessCreated" | where ProcessCommandLine matches regex @"(?i)\bnet\s+share\s+\S+\s+/delete\b" | extend ShareName = tostring(split(trim(@"/", ProcessCommandLine), ' ')[2]) | project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessCommandLine, ShareName; // 3) PowerShell Remove-SmbShare -Name <ShareName> let RemoveSmbShare = DeviceProcessEvents | where ActionType == "ProcessCreated" | where ProcessCommandLine matches regex @"(?i)\bRemove-SmbShare\s+-Name\s+\S+\b" | extend ShareName = extract(@"Remove-SmbShare\s+-Name\s+(\S+)", 1, ProcessCommandLine) | project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessCommandLine, ShareName; // Combine all and sort descending by time RegistryDeletion | union NetShareDelete | union RemoveSmbShare | sort by TimeGenerated desc
Correct
1
35.57s
0.0137
o4-mini-low
ADMIN$, IPC$, C$
DeviceProcessEvents | where ActionType == "ProcessCreated" // Catch both 32-bit and 64-bit invocations of net.exe | where FileName in~ ("net.exe", "net1.exe") // Look for the share deletion syntax | where tolower(ProcessCommandLine) has "share" and tolower(ProcessCommandLine) has "/delete" // Extract the share name between "net share" and "/delete" | extend ShareName = extract(@"(?i)net\s+share\s+([^\s]+)\s+/delete", 1, ProcessCommandLine) | where isnotempty(ShareName) // List each deletion or aggregate by share | summarize DeletionCount = count() by ShareName | sort by DeletionCount desc
Correct
2
67.66s
0.0180