This hypothesis targets the execution of the hVNC backdoor, a tool frequently used by threat actors to establish covert remote access channels for command and control or data exfiltration. Proactively hunting for these known malicious URLs in Azure Sentinel allows the SOC to identify compromised endpoints before the adversary can leverage the backdoor for lateral movement or privilege escalation.
Threat: hVNC Total URLs: 4 Active URLs: 3
| URL | Status | Threat | Date Added |
|---|---|---|---|
hxxps://windowsdiagnostics.st/api/static/exodus.asar | online | malware_download | 2026-09-16 |
hxxps://windowsdiagnostics.st/api/static/svhost | online | malware_download | 2026-09-16 |
hxxps://windowsdiagnostics.st/api/static/index.js | online | malware_download | 2026-09-16 |
hxxps://windowsdiagnostics.st/api/static/python | offline | malware_download | 2026-09-16 |
// Hunt for DNS resolution of URLhaus malicious domains
// Threat: hVNC
let malicious_domains = dynamic(["windowsdiagnostics.st"]);
DnsEvents
| where Name has_any (malicious_domains)
| project TimeGenerated, Computer, Name, IPAddresses
| order by TimeGenerated desc
// Hunt for web traffic to URLhaus malicious domains
let malicious_domains = dynamic(["windowsdiagnostics.st"]);
CommonSecurityLog
| where RequestURL has_any (malicious_domains) or DestinationHostName has_any (malicious_domains)
| project TimeGenerated, SourceIP, RequestURL, DestinationHostName, DeviceAction
| order by TimeGenerated desc
| Sentinel Table | Notes |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DnsEvents | Ensure this data connector is enabled |
Legacy Application Health Checks: A legacy internal web application (e.g., built on older ASP.NET or Java frameworks) performs automated health checks or “ping” requests to external monitoring services or CDN endpoints that happen to be hosted on the same IP/domain as the hVNC malicious URLs.
svc-legacy-app or app-health-checker) when the destination URL matches the known hVNC list, provided the source port is ephemeral and the user-agent string matches the legacy app’s default (e.g., Mozilla/5.0 (compatible; LegacyHealthCheck/1.0)).Scheduled Backup Verification Jobs: A scheduled PowerShell or Python script runs nightly to verify backup integrity by fetching metadata from a cloud storage endpoint or third-party backup verification service. If the backup provider’s CDN or API endpoint shares a domain or IP with the hVNC URL, the script’s HTTP GET request triggers the rule.
VeeamBackup.exe, CommvaultAgent.exe, or python.exe running verify_backup.py) when the destination URL is in the hVNC list and the request method is GET with a 200 OK response, ensuring no file download or execution occurs.Developer Localhost Proxying: A developer uses a local proxy tool (e.g., ngrok, localtunnel, or frp) to expose a local development server to the internet for testing. The proxy service assigns a temporary URL that may coincide with the hVNC domain, or the developer manually configures the proxy to route through a shared endpoint that matches the malicious URL.