SOC Prime Bias: High

02 Nov 2026 15:03 UTC

Attackers Exploit Camera Management Software for Initial Access

Author Photo
SOC Prime Team linkedin icon Follow
Attackers Exploit Camera Management Software for Initial Access
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

Attackers are compromising camera management software to gain initial access to enterprise environments. After establishing access, they deploy a reverse shell and use DLL sideloading through legitimate Windows binaries to maintain persistence and establish command-and-control beaconing. This approach allows malicious code to execute alongside trusted system processes and helps attackers evade detection.

Investigation

Huntress analysts identified a campaign in which CMS.exe served as the initial entry point. The investigation uncovered the deployment of rs.win32.exe in user-writable directories, followed by abuse of WpcMon.exe to sideload modified zlib DLLs. Network analysis also confirmed beaconing activity communicating with a specific external IP address.

Mitigation

Organizations should inventory camera management platforms, restrict access to them, and treat these systems as part of the critical attack surface. Implementing application control to prevent executables and DLLs from launching from user-writable locations such as AppData is strongly recommended. Defenders should also monitor for unusual process chains involving legitimate Windows binaries.

Response

When this activity is detected, security teams should isolate affected endpoints to prevent further lateral movement or C2 communication. Review process trees for instances of CMS.exe or rs.win32.exe launching WpcMon.exe from non-standard directories. Conduct an environment-wide hunt for the identified malicious DLLs and associated C2 IP address.

Attack Flow

Detections

Possible Persistence Points [ASEPs – Software/NTUSER Hive] (via registry_event)

SOC Prime Team
02 Nov 2026

Possible Iphlpapi Library Side Loading (via image_load)

SOC Prime Team
02 Nov 2026

IOCs (HashSha256) to detect: Who Watches the Watchers?

SOC Prime AI Rules
02 Nov 2026

IOCs (SourceIP) to detect: Who Watches the Watchers?

SOC Prime AI Rules
02 Nov 2026

IOCs (DestinationIP) to detect: Who Watches the Watchers?

SOC Prime AI Rules
02 Nov 2026

External Command-and-Control (C2) Server Beaconing [Windows Network Connection]

SOC Prime AI Rules
02 Nov 2026

Compromised Camera Management Software Initial Access and DLL Sideloading [Windows Process Creation]

SOC Prime AI Rules
02 Nov 2026

Simulation Execution

  • Attack Narrative & Commands: The adversary has successfully achieved initial access via a phishing attachment. To establish persistence and command-and-control, they intend to use a “Living off the Land” (LotL) technique. They will utilize rundll32.exe to execute a network request to the known C2 server 144.172.116.37. This is done to blend in with legitimate Windows system processes, making it harder for basic process-name-based detections to identify the malicious activity. The goal is to trigger the firewall rule by generating a connection to the blacklisted IP.

  • Regression Test Script:

    # Simulation script to trigger the C2 IP detection rule
    # We use rundll32 to initiate a connection to the target IP
    # Note: This may produce an error in the console as the IP is not a valid DLL entry point, 
    # but the network connection attempt will be logged by the OS/Firewall.
    
    $C2_IP = "144.172.116.37"
    Write-Host "Simulating C2 connection to $C2_IP via rundll32.exe..."
    Start-Process "rundll32.exe" -ArgumentList "javascript:alert('C2_SIM');$C2_IP" -WindowStyle Hidden
    
    # Alternative method using PowerShell to ensure connection attempt
    Write-Host "Attempting TCP connection to $C2_IP on port 443..."
    $tcpClient = New-Object System.Net.Sockets.TcpClient
    try {
        $tcpClient.Connect($C2_IP, 443)
    } catch {
        Write-Host "Connection failed as expected (IP is likely unreachable), but telemetry should be generated."
    } finally {
        $tcpClient.Close()
    }
  • Cleanup Commands:

    # No persistent artifacts are created by this specific simulation
    Write-Host "Simulation cleanup complete. No files or registry keys modified."