|
| 1 | +[metadata] |
| 2 | +creation_date = "2025/07/23" |
| 3 | +integration = ["network_traffic"] |
| 4 | +maturity = "production" |
| 5 | +updated_date = "2025/07/23" |
| 6 | + |
| 7 | +[rule] |
| 8 | +author = ["Elastic"] |
| 9 | +building_block_type = "default" |
| 10 | +description = """ |
| 11 | +Detects potential remote code execution (RCE) attempts targeting IIS web servers running SharePoint via malicious |
| 12 | +VIEWSTATE payloads in HTTP POST requests. Attackers may exploit insecure deserialization in the VIEWSTATE parameter to |
| 13 | +execute arbitrary code. This rule identifies suspicious requests containing VIEWSTATE data and other indicators of |
| 14 | +exploitation, specifically those associated with the Toolshell exploit chain. Toolshell leverages vulnerabilities |
| 15 | +(CVE-2025-53770 and CVE-2025-53771) for initial access, enabling adversaries to deploy a webshell, steal machine keys, |
| 16 | +sign VIEWSTATE payloads offline, and subsequently send signed payloads to the server to achieve code execution. |
| 17 | +""" |
| 18 | +from = "now-119m" |
| 19 | +interval = "60m" |
| 20 | +index = ["logs-network_traffic.http*"] |
| 21 | +language = "kuery" |
| 22 | +license = "Elastic License v2" |
| 23 | +max_signals = 100 |
| 24 | +name = "Potential VIEWSTATE RCE Attempt on SharePoint/IIS" |
| 25 | +references = [ |
| 26 | + "https://research.eye.security/sharepoint-under-siege/", |
| 27 | + "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53771", |
| 28 | + "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53770", |
| 29 | + "https://msrc.microsoft.com/blog/2025/07/customer-guidance-for-sharepoint-vulnerability-cve-2025-53770/", |
| 30 | +] |
| 31 | +risk_score = 47 |
| 32 | +rule_id = "99c9af5a-67cf-11f0-b69e-f661ea17fbcd" |
| 33 | +setup = """### Network Traffic Setup |
| 34 | +
|
| 35 | +This rule requires network traffic logs to be collected from HTTP endpoints, focusing on IIS web servers and SharePoint sites. Ensure logging captures HTTP request and response details, including headers and request bodies for POST requests. Monitoring VIEWSTATE content is critical for detecting deserialization attacks. |
| 36 | +""" |
| 37 | +severity = "medium" |
| 38 | +tags = [ |
| 39 | + "Domain: Network", |
| 40 | + "Tactic: Initial Access", |
| 41 | + "Use Case: Exploit Detection", |
| 42 | + "Data Source: Network Traffic", |
| 43 | + "Data Source: Network Traffic HTTP Logs", |
| 44 | + "Rule Type: BBR" |
| 45 | +] |
| 46 | +timestamp_override = "event.ingested" |
| 47 | +type = "query" |
| 48 | + |
| 49 | +query = ''' |
| 50 | +data_stream.dataset : "network_traffic.http" and |
| 51 | + network.direction: "ingress" and |
| 52 | + http.request.method: "POST" and |
| 53 | + http.request.referrer: *SignOut.aspx and |
| 54 | + http.request.body.content: *__VIEWSTATE=* and |
| 55 | + http.request.body.bytes >= 500 and |
| 56 | + http.response.headers.server: Microsoft-IIS* |
| 57 | +''' |
| 58 | + |
| 59 | + |
| 60 | +[[rule.threat]] |
| 61 | +framework = "MITRE ATT&CK" |
| 62 | +[[rule.threat.technique]] |
| 63 | +id = "T1190" |
| 64 | +name = "Exploit Public-Facing Application" |
| 65 | +reference = "https://attack.mitre.org/techniques/T1190/" |
| 66 | + |
| 67 | + |
| 68 | +[rule.threat.tactic] |
| 69 | +id = "TA0001" |
| 70 | +name = "Initial Access" |
| 71 | +reference = "https://attack.mitre.org/tactics/TA0001/" |
| 72 | + |
0 commit comments