Detection rules › Elastic
Windows System Information Discovery
Detects the execution of commands used to discover information about the system, which attackers may use after compromising a system to gain situational awareness.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Execution | T1047 Windows Management Instrumentation, T1059.003 Command and Scripting Interpreter: Windows Command Shell |
| Discovery | T1082 System Information Discovery |
Event coverage
| Provider | Event | Title |
|---|---|---|
| Sysmon | Event ID 1 | Process creation |
| Security-Auditing | Event ID 4688 | A new process has been created. |
Rule body elastic
[metadata]
bypass_bbr_timing = true
creation_date = "2023/07/06"
integration = ["windows", "endpoint", "system"]
maturity = "production"
updated_date = "2026/03/24"
[rule]
author = ["Elastic"]
building_block_type = "default"
description = """
Detects the execution of commands used to discover information about the system, which attackers may use after
compromising a system to gain situational awareness.
"""
from = "now-9m"
index = [
"endgame-*",
"logs-endpoint.events.process-*",
"logs-system.security*",
"logs-windows.*",
"winlogbeat-*",
]
language = "eql"
license = "Elastic License v2"
name = "Windows System Information Discovery"
risk_score = 21
rule_id = "51176ed2-2d90-49f2-9f3d-17196428b169"
severity = "low"
tags = [
"Domain: Endpoint",
"OS: Windows",
"Use Case: Threat Detection",
"Tactic: Discovery",
"Rule Type: BBR",
"Data Source: Elastic Defend",
"Data Source: Elastic Endgame",
"Data Source: Windows Security Event Logs",
]
timestamp_override = "event.ingested"
type = "eql"
query = '''
process where host.os.type == "windows" and event.type == "start" and
(
(
process.name : "cmd.exe" and process.args : "ver*" and not
process.parent.executable : (
"?:\\Users\\*\\AppData\\Local\\Keybase\\upd.exe",
"?:\\Users\\*\\python*.exe"
)
) or
process.name : ("systeminfo.exe", "hostname.exe") or
(process.name : "wmic.exe" and process.args : "os" and process.args : "get")
) and not
process.parent.executable : (
"?:\\Program Files\\*",
"?:\\Program Files (x86)\\*",
"?:\\ProgramData\\*"
) and not user.id : "S-1-5-18"
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1082"
name = "System Information Discovery"
reference = "https://attack.mitre.org/techniques/T1082/"
[rule.threat.tactic]
id = "TA0007"
name = "Discovery"
reference = "https://attack.mitre.org/tactics/TA0007/"
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1047"
name = "Windows Management Instrumentation"
reference = "https://attack.mitre.org/techniques/T1047/"
[[rule.threat.technique]]
id = "T1059"
name = "Command and Scripting Interpreter"
reference = "https://attack.mitre.org/techniques/T1059/"
[[rule.threat.technique.subtechnique]]
id = "T1059.003"
name = "Windows Command Shell"
reference = "https://attack.mitre.org/techniques/T1059/003/"
[rule.threat.tactic]
id = "TA0002"
name = "Execution"
reference = "https://attack.mitre.org/tactics/TA0002/"
Stages and Predicates
Stage 1: process
process where host.os.type == "windows" and event.type == "start" and
(
(
process.name : "cmd.exe" and process.args : "ver*" and not
process.parent.executable : (
"?:\\Users\\*\\AppData\\Local\\Keybase\\upd.exe",
"?:\\Users\\*\\python*.exe"
)
) or
process.name : ("systeminfo.exe", "hostname.exe") or
(process.name : "wmic.exe" and process.args : "os" and process.args : "get")
) and not
process.parent.executable : (
"?:\\Program Files\\*",
"?:\\Program Files (x86)\\*",
"?:\\ProgramData\\*"
) and not user.id : "S-1-5-18"
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
process.parent.executable | starts_with | ?:\Program Files\, ?:\Program Files (x86)\, ?:\ProgramData\ |
user.id | eq | S-1-5-18 |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
event.type | eq |
|
process.args | wildcard |
|
process.name | wildcard |
|