SystemBC C2 and WinSCP Exfiltration
An adversary is using SystemBC for proxy tunneling and WinSCP for unencrypted FTP exfiltration from the Public Music directory to known ransomware affiliate infrastructure.
Based on research by The DFIR Report 2026-09-20 9 steps · 3 queries T1048.003 T1090.003 T1105 T1560.001
Brief
Why this hunt
The DFIR Report recently published "Blurring the Lines" (https://thedfirreport.com/2025/09/08/blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs/), which describes a campaign involving multiple ransomware affiliates. These groups often share techniques, such as staging SystemBC in predictable locations. This malware is a proxy, allowing attackers to tunnel traffic into the environment or exfiltrate data. We designed this hunt to find these beachheads before the final ransomware deployment.
How the Hunt Flows
The hunt begins with a high-fidelity process execution check. The first query searches for Rundll32 processes that load DLLs from the Public Music directory. We specifically look for the string "reset" in the command line, as this export is a known marker for SystemBC initialization. This step identifies the specific hosts that require deeper inspection.
The second phase transitions from the endpoint to the network surface. The hunt fans out into two parallel paths. One path checks for egress to a list of hardcoded C2 IP addresses associated with SystemBC and SectopRAT. The other path looks for any outbound traffic on port 21 or any network activity originating from the WinSCP process. By filtering these network queries to only the hosts identified in the first step, we reduce noise and focus on compromised systems.
The final phase is the triage and correlation step. An analyst reviews the results from both the process and network queries. The goal is to find a direct link: did the host running the suspicious DLL also initiate the FTP or C2 connections? This correlation is what turns a broad search into a verified incident. The playbook then guides the user through isolating the host and collecting forensic artifacts like WakeWordEngine.dll.
What this Hunt Cannot See
The hunt has two primary blind spots. First, it relies on a set of known C2 IP addresses. If the adversary switches to new infrastructure or uses domain-based C2 that hides behind legitimate cloud providers, the IP filter will not catch the traffic. Second, point-in-time endpoint telemetry can miss short-lived events. If an adversary performs a very rapid exfiltration and closes WinSCP before the next polling interval, the network connection might not be recorded by some EDR surfaces.
Why this is a Hunt
This is not a simple detection because the components, like WinSCP or Rundll32, are often legitimate. We use the specific staging path in Public Music as a pivot point. The hunt requires an analyst to confirm the relationship between the staging activity and the network egress. This provides a higher level of confidence than a standalone alert on FTP traffic.
In this series
Steps
-
SystemBC DLL Execution via Rundll32
Query · detection candidateFind instances of SystemBC being launched from the Public Music directory, which is the primary staging marker for this affiliate.
reads hb_process_activitysqlSELECT device_hostname, process_cmd_line, user_name, time FROM hb_process_activity WHERE (LOWER(process_cmd_line) LIKE '%\users\public\music\%' AND LOWER(process_cmd_line) LIKE '%rundll32%' AND LOWER(process_cmd_line) LIKE '%reset%') AND time >= datetime('now', '-{{lookback_days}} days')What a hit looks like. A rundll32 process calling the Reset export on a DLL in the Music folder. This is a high-fidelity indicator of SystemBC execution.
-
SystemBC and SectopRAT C2 Connections
Query · enrichmentVerify that C2 traffic to known infrastructure is originating from the compromised hosts found in the lead step.
reads hb_network_connectionsqlSELECT device_hostname, dst_endpoint_ip, dst_endpoint_port, process_name, time FROM hb_network_connection WHERE (instr(',' || '{{c2_ips}}' || ',', ',' || dst_endpoint_ip || ',') > 0) AND ('{{infected_hosts}}' = '' OR instr(',' || '{{infected_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')What a hit looks like. Direct outbound connections to 45.141.87.55 or 149.28.101.219 from hosts running SystemBC.
-
Unencrypted FTP and WinSCP Activity
Query · baselineAttribute potential data theft to the same systems running SystemBC by looking for unencrypted FTP or WinSCP egress.
reads hb_network_connectionsqlSELECT device_hostname, dst_endpoint_ip, COUNT(*) AS connection_count, MIN(time) AS first_seen FROM hb_network_connection WHERE (dst_endpoint_port = 21 OR LOWER(process_name) LIKE '%winscp%') AND ('{{infected_hosts}}' = '' OR instr(',' || '{{infected_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY device_hostname, dst_endpoint_ipWhat a hit looks like. Connections on port 21 or from the winscp.exe process. Silence means no unencrypted exfiltration was seen on these ports.
-
Triage C2 and Exfiltration Evidence
Agent triageSynthesize process staging and network egress evidence to determine if a host is active as a C2 proxy or exfiltration source.
-
Route on Verdict
DecisionDirect response based on the agent findings.
-
Isolate Compromised Host
Response actionSever the C2 and exfiltration connection immediately.
-
Collect Forensic Evidence
Analyst taskGather artifacts for incident response.
-
Hunt Closure and Reporting
Analyst taskFinalize the hunt results.
Coverage
Scenario coverage
| Stage | Covered | How, or why not |
|---|---|---|
| WinRAR Staging and WinSCP Exfiltration T1560.001 · T1048.003 |
Yes | exfiltration-activity |
| SystemBC and Betruger C2 Infrastructure T1090.003 · T1105 |
Yes | systembc-execution, c2-infrastructure-connections |
| Trojanized EarthTime Installer T1204.002 · T1036.005 |
Out of scope | Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series. |
| SectopRAT Injection and C2 Fetch T1059.003 · T1127.001 · T1055 |
Out of scope | Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series. |
| Startup Shortcut and Local Account Creation T1547.001 · T1136.001 |
Out of scope | Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series. |
| DCSync and Veeam Credential Harvesting T1484.002 · T1003.006 · T1059.001 |
Out of scope | Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series. |
| Internal Discovery Tool Deployment T1087 · T1482 · T1018 · T1046 |
Out of scope | Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series. |
| Lateral Movement via RDP and PsExec T1021.001 · T1570 · T1021.002 |
Out of scope | Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series. |
| Security Tampering and Masquerading T1562.001 · T1027 · T1036 |
Out of scope | Belongs to another part of the 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware Gangs' series. |
Blind spots
- Needs Full network flow logs or decrypted TLS visibility. Connections to cloud providers might look like legitimate traffic if they avoid the reported IPs. It would answer whether SystemBC is using port 443 with domain-based C2 that bypasses IP filters.
- Needs Process-attributed network socket logging. A quick exfiltration event may not be captured by point-in-time snapshot surfaces. It would answer whether WinSCP was used and closed between polling intervals.
Parameters & data
Parameters
| Parameter | Type | Default | What it is |
|---|---|---|---|
c2_ips | list[ip] | 45.141.87.55, 149.28.101.219 | C2 infrastructure IPs associated with SystemBC and SectopRAT. |
infected_hosts | list[host] | — | Hostnames identified as compromised in the first step; filter network queries to these systems. |
lookback_days | number | 14 | Days of history to examine. |
Telemetry
| Source | Category | Telemetry |
|---|---|---|
| Endpoint telemetry (hb_ surfaces) | endpoint | endpoint |
| Network telemetry | network | network |
Source
---
analysis: This hunt pivots from the specific SystemBC staging path in Public Music
to the network egress plane. It requires an analyst to correlate suspicious process
execution with outbound traffic to verify exfiltration.
blind_spots:
- id: incomplete-network-telemetry
question: whether SystemBC is using port 443 with domain-based C2 that bypasses
IP filters
requires: Full network flow logs or decrypted TLS visibility
risk: Connections to cloud providers might look like legitimate traffic if they
avoid the reported IPs.
stage: command-and-control
- id: short-lived-exfiltration
question: whether WinSCP was used and closed between polling intervals
requires: Process-attributed network socket logging
risk: A quick exfiltration event may not be captured by point-in-time snapshot surfaces.
stage: collection-and-exfiltration
coverage:
- stage: collection-and-exfiltration
status: covered
steps:
- exfiltration-activity
- stage: command-and-control
status: covered
steps:
- systembc-execution
- c2-infrastructure-connections
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
With Three Major Ransomware Gangs'' series.'
stage: initial-access-trojanized-installer
status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
With Three Major Ransomware Gangs'' series.'
stage: execution-sectoprat-injection
status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
With Three Major Ransomware Gangs'' series.'
stage: persistence-mechanisms
status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
With Three Major Ransomware Gangs'' series.'
stage: credential-access-and-privilege-escalation
status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
With Three Major Ransomware Gangs'' series.'
stage: discovery-internal-reconnaissance
status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
With Three Major Ransomware Gangs'' series.'
stage: lateral-movement
status: out_of_scope
- reason: 'Belongs to another part of the ''Blurring the Lines: Intrusion Shows Connection
With Three Major Ransomware Gangs'' series.'
stage: defense-evasion
status: out_of_scope
guardrails:
claims: no_unsupported
evidence: citation_required
missing_data: not_benign
telemetry: untrusted
hunt:
applicability: campaign-specific
handoff: promote-to-detection
justification: SystemBC and WinSCP-based exfiltration are signature behaviors of
this ransomware affiliate. Identifying these egress patterns is critical to preventing
data loss.
methodology: model-assisted
trigger: intel-report
hypothesis: An adversary is using SystemBC for proxy tunneling and WinSCP for unencrypted
FTP exfiltration from the Public Music directory to known ransomware affiliate infrastructure.
labels:
- hunt
- attack.t1090.003
- attack.t1105
- attack.t1560.001
- attack.t1048.003
name: SystemBC C2 and WinSCP Exfiltration
parameters:
c2_ips:
default:
- 45.141.87.55
- 149.28.101.219
description: C2 infrastructure IPs associated with SystemBC and SectopRAT.
from:
kind: article
observed: '2025-09-08'
ref: dfir-report-2025-09-08
type: list[ip]
infected_hosts:
default: []
description: Hostnames identified as compromised in the first step; filter network
queries to these systems.
type: list[host]
lookback_days:
default: '14'
description: Days of history to examine.
type: number
provenance:
authors:
- name: Huntbase hunt generation
org: huntbase.io
generated:
by: huntbase-hunt-generation
from: https://thedfirreport.com/2025/09/08/blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs/
gates:
- dry-run
- lint
model: hb_google/gemini-3-flash-preview
rationale: Focus on file servers and domain controllers where SystemBC was observed
in the source article. Prioritize hosts with external network egress capabilities.
references:
- name: 'DFIR Report: Blurring the Lines'
url: https://thedfirreport.com/2025/09/08/blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs/
related:
- hunt: winrar-staging-behavior
reason: WinRAR archiving of file shares is a precursor to exfiltration that requires
hb_file_activity monitoring.
relation: out-of-scope-alternative
- hunt: identity-based-lateral-movement-and-credential-access
relation: follows
scenario:
stages:
- name: Trojanized EarthTime Installer
observables:
- EarthTime.exe from Downloads folder
- Brave Pragmatic Network Technology Co., Ltd. revoked certificate
- GlobalSign GCC R45 EV CodeSigning CA 2020
slug: initial-access-trojanized-installer
tactic: initial-access
techniques:
- T1204.002
- T1036.005
- name: SectopRAT Injection and C2 Fetch
observables:
- EarthTime.exe spawning cmd.exe spawning MSBuild.exe with no arguments
- Process injection into MSBuild.exe
- Pastebin connection for C2 configuration
slug: execution-sectoprat-injection
tactic: execution
techniques:
- T1059.003
- T1127.001
- T1055
- name: Startup Shortcut and Local Account Creation
observables:
- Shortcut (.lnk) created in %AppData%\Microsoft\Windows\Start Menu\Programs\Startup
- Creation of a new local account with administrative privileges
slug: persistence-mechanisms
tactic: persistence
techniques:
- T1547.001
- T1136.001
- name: DCSync and Veeam Credential Harvesting
observables:
- DCSync attack against Domain Controller
- PowerShell script executed on backup server to retrieve Veeam credentials
slug: credential-access-and-privilege-escalation
tactic: credential-access
techniques:
- T1484.002
- T1003.006
- T1059.001
- name: Internal Discovery Tool Deployment
observables:
- AdFind.exe
- SharpHound.exe
- netscan.exe (SoftPerfect)
- GT_NET.exe (Grixba)
- ipconfig
- nltest
slug: discovery-internal-reconnaissance
tactic: discovery
techniques:
- T1087
- T1482
- T1018
- T1046
- name: Lateral Movement via RDP and PsExec
observables:
- RDP connections (port 3389) using created local account and built-in Administrator
- PsExec used to execute SystemBC on remote hosts
- wmiexec used for remote reconnaissance commands
slug: lateral-movement
tactic: lateral-movement
techniques:
- T1021.001
- T1570
- T1021.002
- name: WinRAR Staging and WinSCP Exfiltration
observables:
- WinRAR archiving file shares
- WinSCP transferring archives to cloud host via unencrypted FTP
slug: collection-and-exfiltration
tactic: exfiltration
techniques:
- T1560.001
- T1048.003
- name: SystemBC and Betruger C2 Infrastructure
observables:
- WakeWordEngine.dll or conhost.dll (SystemBC) in C:\Users\Public\Music\
- rundll32.exe calling exported Reset function
- Betruger backdoor deployment
- 'C2 IPs: 45.141.87.55 (9000, 15647) and 149.28.101.219 (443)'
slug: command-and-control
tactic: command-and-control
techniques:
- T1090.003
- T1105
- name: Security Tampering and Masquerading
observables:
- Disabling Microsoft Defender protections
- Binaries with spoofed metadata (SentinelOne, Avast)
- Timestomping activities
- Use of C:\Users\Public\Music\ as staging directory
slug: defense-evasion
tactic: defense-evasion
techniques:
- T1562.001
- T1027
- T1036
summary: An affiliate threat actor likely linked to multiple ransomware groups used
a trojanized version of the EarthTime application to deploy SectopRAT and SystemBC.
They performed extensive internal discovery with tools like AdFind and Grixba,
moved laterally via RDP and PsExec, and ultimately archived and exfiltrated sensitive
data via WinSCP over clear-text FTP.
series:
index: 3
slug: blurring-the-lines-intrusion-shows-connection-with-three-major-ransomware-gangs
title: 'Blurring the Lines: Intrusion Shows Connection With Three Major Ransomware
Gangs'
total: 3
severity: high
targets:
analyst:
name: Tier-2 analyst
role: analyst
endpoint:
category: endpoint
name: Endpoint telemetry (hb_ surfaces)
telemetry:
- endpoint
hunter:
agent: true
name: Hunt agent
network:
category: network
name: Network telemetry
telemetry:
- network
tlp: clear
type: investigation
---
# SystemBC C2 and WinSCP Exfiltration
This hunt targets the command-and-control and exfiltration phases of a ransomware affiliate operation. It identifies the execution of SystemBC payloads from the Public Music directory. It then fans out to inspect network connections for both hardcoded C2 infrastructure and unencrypted FTP activity. By correlating process execution with egress traffic, we identify the specific hosts serving as exfiltration beachheads.
## systembc-execution
<!-- SystemBC DLL Execution via Rundll32 -->
Find instances of SystemBC being launched from the Public Music directory, which is the primary staging marker for this affiliate.
```sqlite target=endpoint role=detection-candidate params=(lookback_days=lookback_days)
~~~yaml
expected: A rundll32 process calling the Reset export on a DLL in the Music folder.
This is a high-fidelity indicator of SystemBC execution.
prevalence:
by: device_hostname
key:
- process_cmd_line
rare_below: 3
reads:
- device_hostname
- process_cmd_line
- user_name
- time
silence: evidence_of_absence
source: hb_process_activity
verified: dry-run
verified_at: '2026-09-20'
~~~
SELECT device_hostname, process_cmd_line, user_name, time FROM hb_process_activity WHERE (LOWER(process_cmd_line) LIKE '%\users\public\music\%' AND LOWER(process_cmd_line) LIKE '%rundll32%' AND LOWER(process_cmd_line) LIKE '%reset%') AND time >= datetime('now', '-{{lookback_days}} days')
```
## network-fan-out
<!-- Examine Network Egress -->
parallel:
- → c2-infrastructure-connections
- → exfiltration-activity
join: → triage-c2-and-exfil
## c2-infrastructure-connections
<!-- SystemBC and SectopRAT C2 Connections -->
Verify that C2 traffic to known infrastructure is originating from the compromised hosts found in the lead step.
```sqlite target=network role=enrichment params=(lookback_days=lookback_days, c2_ips=c2_ips, infected_hosts=infected_hosts)
~~~yaml
expected: Direct outbound connections to 45.141.87.55 or 149.28.101.219 from hosts
running SystemBC.
reads:
- device_hostname
- dst_endpoint_ip
- dst_endpoint_port
- process_name
- time
silence: not_evidence_of_absence
source: hb_network_connection
verified: dry-run
verified_at: '2026-09-20'
~~~
SELECT device_hostname, dst_endpoint_ip, dst_endpoint_port, process_name, time FROM hb_network_connection WHERE (instr(',' || '{{c2_ips}}' || ',', ',' || dst_endpoint_ip || ',') > 0) AND ('{{infected_hosts}}' = '' OR instr(',' || '{{infected_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')
```
## exfiltration-activity
<!-- Unencrypted FTP and WinSCP Activity -->
Attribute potential data theft to the same systems running SystemBC by looking for unencrypted FTP or WinSCP egress.
```sqlite target=network role=baseline params=(lookback_days=lookback_days, infected_hosts=infected_hosts)
~~~yaml
baseline:
compare: first_seen
window: '{{lookback_days}}d'
expected: Connections on port 21 or from the winscp.exe process. Silence means no
unencrypted exfiltration was seen on these ports.
prevalence:
by: device_hostname
key:
- dst_endpoint_ip
rare_below: 3
reads:
- device_hostname
- dst_endpoint_ip
- dst_endpoint_port
- process_name
- time
silence: not_evidence_of_absence
source: hb_network_connection
verified: dry-run
verified_at: '2026-09-20'
~~~
SELECT device_hostname, dst_endpoint_ip, COUNT(*) AS connection_count, MIN(time) AS first_seen FROM hb_network_connection WHERE (dst_endpoint_port = 21 OR LOWER(process_name) LIKE '%winscp%') AND ('{{infected_hosts}}' = '' OR instr(',' || '{{infected_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY device_hostname, dst_endpoint_ip
```
## triage-c2-and-exfil
<!-- Triage C2 and Exfiltration Evidence -->
```agent target=hunter
cite: required
context:
- systembc-execution
- c2-infrastructure-connections
- exfiltration-activity
max_iterations: 4
objective: Evaluate whether the combination of SystemBC staging in Public Music and
outbound connections confirm an active compromise.
success_criteria: Verdicts for every host found in the queries.
tools:
- endpoint
- network
```
## route-on-verdict
<!-- Route on Verdict -->
if~: "the triage-c2-and-exfil verdict is malicious for at least one host" (confidence: high, judge=hunter)
then: → isolate-host
indeterminate: → forensic-collection
unavailable: → forensic-collection (blind_spot: incomplete-network-telemetry)
else: → hunt-closure
## isolate-host
<!-- Isolate Compromised Host -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the host from the network. Stop the rundll32 processes identified as SystemBC. Secure the Public Music folder for forensic analysis.
```
→ forensic-collection
## forensic-collection
<!-- Collect Forensic Evidence -->
```manual target=analyst
Collect WakeWordEngine.dll and conhost.dll from the Public Music folder. Export WinSCP connection logs and WinRAR temporary staging directories if found.
```
→ hunt-closure
## hunt-closure
<!-- Hunt Closure and Reporting -->
```manual target=analyst
Record the findings. If SystemBC staging was detected but no network traffic was observed, increase monitoring on those hosts for lateral movement.
```
→ end
Run it
Take this hunt into your environment.
Open it in Huntbase to run every step against your own connections, with Scout weighing the evidence and your analysts in command. Or take the open hunt.md file anywhere that reads the format.
Machine-drafted by huntbase-hunt-generation using hb_google/gemini-3-flash-preview, gated by dry-run, lint, then reviewed by a person.