EXPLORE
← Back to Explore
splunk_escuTTP

Windows Rundll32 WebDav With Network Connection

The following analytic detects the execution of rundll32.exe with command-line arguments loading davclnt.dll and the davsetcookie function to access a remote WebDav instance. It uses data from Endpoint Detection and Response (EDR) agents, correlating process execution and network traffic data. This activity is significant as it may indicate exploitation of CVE-2023-23397, a known vulnerability. If confirmed malicious, this could allow an attacker to establish unauthorized remote connections, potentially leading to data exfiltration or further network compromise.

MITRE ATT&CK

Detection Query

| tstats `security_content_summariesonly` count
  min(_time) as firstTime
  max(_time) as lastTime
FROM datamodel=Endpoint.Processes where
  Processes.parent_process_name=svchost.exe
  `process_rundll32`
  Processes.process IN (
    "*\\windows\\system32\\davclnt.dll,*davsetcookie*",
    "*\\windows\\syswow64\\davclnt.dll,*davsetcookie*")
by host _time span=1h
  Processes.action Processes.dest Processes.original_file_name Processes.parent_process
  Processes.parent_process_exec Processes.parent_process_guid Processes.parent_process_id
  Processes.parent_process_name Processes.parent_process_path Processes.process Processes.process_exec
  Processes.process_guid Processes.process_hash  Processes.process_id Processes.process_integrity_level
  Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product
| `drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| rename dest as src
| join host process_id
[
  | tstats `security_content_summariesonly` count
    latest(All_Traffic.dest) as dest
    latest(All_Traffic.dest_ip) as dest_ip
    latest(All_Traffic.dest_port) as dest_port
  FROM datamodel=Network_Traffic.All_Traffic where
    All_Traffic.dest_port!=0
    NOT (All_Traffic.dest_ip IN (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16))
  by host All_Traffic.action All_Traffic.app All_Traffic.bytes All_Traffic.bytes_in All_Traffic.bytes_out
          All_Traffic.dest  All_Traffic.dest_ip All_Traffic.dest_port All_Traffic.dvc All_Traffic.protocol
          All_Traffic.protocol_version All_Traffic.src All_Traffic.src_ip All_Traffic.src_port
          All_Traffic.transport All_Traffic.user All_Traffic.vendor_product All_Traffic.direction
          All_Traffic.process_id
  | `drop_dm_object_name(All_Traffic)`
]
| `windows_rundll32_webdav_with_network_connection_filter`

Author

Michael Haag, Splunk

Created

2026-03-10

Data Sources

Sysmon EventID 1 AND Sysmon EventID 3

Tags

CVE-2023-23397 Outlook Elevation of Privilege
Raw Content
name: Windows Rundll32 WebDav With Network Connection
id: f03355e0-28b5-4e9b-815a-6adffc63b38c
version: 10
date: '2026-03-10'
author: Michael Haag, Splunk
type: TTP
status: production
data_source:
    - Sysmon EventID 1 AND Sysmon EventID 3
description: The following analytic detects the execution of rundll32.exe with command-line arguments loading davclnt.dll and the davsetcookie function to access a remote WebDav instance. It uses data from Endpoint Detection and Response (EDR) agents, correlating process execution and network traffic data. This activity is significant as it may indicate exploitation of CVE-2023-23397, a known vulnerability. If confirmed malicious, this could allow an attacker to establish unauthorized remote connections, potentially leading to data exfiltration or further network compromise.
search: |
    | tstats `security_content_summariesonly` count
      min(_time) as firstTime
      max(_time) as lastTime
    FROM datamodel=Endpoint.Processes where
      Processes.parent_process_name=svchost.exe
      `process_rundll32`
      Processes.process IN (
        "*\\windows\\system32\\davclnt.dll,*davsetcookie*",
        "*\\windows\\syswow64\\davclnt.dll,*davsetcookie*")
    by host _time span=1h
      Processes.action Processes.dest Processes.original_file_name Processes.parent_process
      Processes.parent_process_exec Processes.parent_process_guid Processes.parent_process_id
      Processes.parent_process_name Processes.parent_process_path Processes.process Processes.process_exec
      Processes.process_guid Processes.process_hash  Processes.process_id Processes.process_integrity_level
      Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product
    | `drop_dm_object_name(Processes)`
    | `security_content_ctime(firstTime)`
    | `security_content_ctime(lastTime)`
    | rename dest as src
    | join host process_id
    [
      | tstats `security_content_summariesonly` count
        latest(All_Traffic.dest) as dest
        latest(All_Traffic.dest_ip) as dest_ip
        latest(All_Traffic.dest_port) as dest_port
      FROM datamodel=Network_Traffic.All_Traffic where
        All_Traffic.dest_port!=0
        NOT (All_Traffic.dest_ip IN (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16))
      by host All_Traffic.action All_Traffic.app All_Traffic.bytes All_Traffic.bytes_in All_Traffic.bytes_out
              All_Traffic.dest  All_Traffic.dest_ip All_Traffic.dest_port All_Traffic.dvc All_Traffic.protocol
              All_Traffic.protocol_version All_Traffic.src All_Traffic.src_ip All_Traffic.src_port
              All_Traffic.transport All_Traffic.user All_Traffic.vendor_product All_Traffic.direction
              All_Traffic.process_id
      | `drop_dm_object_name(All_Traffic)`
    ]
    | `windows_rundll32_webdav_with_network_connection_filter`
how_to_implement: |
    The detection is based on data that originates from Endpoint Detection
    and Response (EDR) agents. These agents are designed to provide security-related
    telemetry from the endpoints where the agent is installed. To implement this search,
    you must ingest logs that contain the process GUID, process name, and parent process.
    Additionally, you must ingest complete command-line executions. These logs must
    be processed using the appropriate Splunk Technology Add-ons that are specific to
    the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
    data model. Use the Splunk Common Information Model (CIM) to normalize the field
    names and speed up the data modeling process.
known_false_positives: |
    False positives will be present based on legitimate software, filtering may need to occur.
references:
    - https://strontic.github.io/xcyclopedia/library/davclnt.dll-0EA3050E7CC710526E330C413C165DA0.html
    - https://twitter.com/ACEResponder/status/1636116096506818562?s=20
    - https://twitter.com/domchell/status/1635999068282408962?s=20
    - https://msrc.microsoft.com/blog/2023/03/microsoft-mitigates-outlook-elevation-of-privilege-vulnerability/
    - https://www.pwndefend.com/2023/03/15/the-long-game-persistent-hash-theft/
drilldown_searches:
    - name: View the detection results for - "$dest$"
      search: '%original_detection_search% | search  dest = "$dest$"'
      earliest_offset: $info_min_time$
      latest_offset: $info_max_time$
    - name: View risk events for the last 7 days for - "$dest$"
      search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$") starthoursago=168  | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
      earliest_offset: $info_min_time$
      latest_offset: $info_max_time$
rba:
    message: An instance of $parent_process_name$ spawning $process_name$ was identified on endpoint $dest$ by user $user$ attempting to contact a remote WebDav server.
    risk_objects:
        - field: user
          type: user
          score: 50
        - field: dest
          type: system
          score: 50
    threat_objects:
        - field: parent_process_name
          type: parent_process_name
        - field: process_name
          type: process_name
tags:
    analytic_story:
        - CVE-2023-23397 Outlook Elevation of Privilege
    asset_type: Endpoint
    cve:
        - CVE-2023-23397
    mitre_attack_id:
        - T1048.003
    product:
        - Splunk Enterprise
        - Splunk Enterprise Security
        - Splunk Cloud
    security_domain: endpoint
tests:
    - name: True Positive Test
      attack_data:
        - data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1048.003/cve-2023-23397/webdav_windows-sysmon.log
          source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
          sourcetype: XmlWinEventLog