← All hunts high TLP:CLEAR Part 1 of 2

Settra Persistence via MeshAgent and Remote Access

An adversary has established a beachhead via compromised external remote services and installed MeshAgent, potentially renamed, to maintain persistent command-and-control access.

Based on research by Huntress 2026-09-23 9 steps · 3 queries T1021.001 T1133 T1219

Brief

Why this hunt? 1004655389658742805

Huntress recently detailed a variant of Settra ransomware that uses MeshAgent for persistence. This legitimate remote management tool allows attackers to maintain access without triggering alerts for common backdoors. The report, Ready, Settra, Go: New Settra Ransomware Variant Deploys MeshAgent RMM, highlights how attackers establish initial access via remote services and then deploy MeshAgent. Hunting for this specific RMM behavior helps catch the intrusion before the attacker deploys the ransomware launcher or moves to file encryption.

How the Hunt Flows

The hunt begins by scoping successful sign-ins on remote access surfaces like RDP and VPN. This step identifies which hosts and users are most likely to be the entry point for the intrusion. By looking for successful logins from unusual sources or protocols, we create a targeted list of endpoints for more intensive investigation.

The next phase runs two queries in parallel to find evidence of MeshAgent. The first query searches process activity for rare binaries. It doesn't just look for filenames; it inspects the original file name metadata for "MeshAgent." This catches instances where the attacker renames the file to blend in with legitimate system processes, a common tactic in recent Settra incidents.

Simultaneously, the second query checks network telemetry for connections to specific IP addresses associated with Settra C2 infrastructure. If a host has a rare RMM binary and is also talking to these IPs, the suspicion of a malicious intrusion increases significantly. The hunt combines these signals to identify active persistence.

Finally, an analyst reviews the results. The goal is to link the initial remote login to the subsequent deployment of the tool and its network activity. If the signals align, the hunt provides a path for immediate host isolation to prevent the final ransomware stage.

What This Hunt Cannot See

Visibility depends heavily on the source telemetry. If the network fabric does not capture flow logs, the hunt can identify the MeshAgent process but cannot confirm if it successfully established a command-and-control channel. Furthermore, if the VPN provider does not integrate with the central authentication surface, the initial entry point may remain hidden. This makes it harder to correlate the entry point with the internal persistence activity.

In this series

Steps

  1. Remote access sign-ins

    Query · scoping

    Identify successful logins via RDP or VPN that may represent the initial beachhead for the threat actor.

    reads hb_auth_signinsql
    SELECT dst_endpoint_name AS device_hostname, actor_user_name, src_endpoint_ip, auth_protocol, MIN(time) AS first_signin, MAX(time) AS last_signin FROM hb_auth_signin WHERE status_id = 1 AND (LOWER(auth_protocol) LIKE '%rdp%' OR LOWER(auth_protocol) LIKE '%vpn%' OR LOWER(activity_name) LIKE '%remote%') AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY dst_endpoint_name, actor_user_name, src_endpoint_ip, auth_protocol ORDER BY last_signin DESC

    What a hit looks like. A list of hosts and users accessing the network remotely. Silence suggests either no remote access occurred or the activity is outside the logging visibility of the authentication surface.

  2. Rare MeshAgent-related processes

    Query · detection candidate

    Find rare processes associated with MeshAgent binaries by checking paths and original file name metadata across the estate.

    reads hb_process_activitysql
    SELECT LOWER(process_name) AS path, process_original_file_name, COUNT(DISTINCT device_hostname) AS hosts, COUNT(*) AS runs, MIN(time) AS first_seen FROM hb_process_activity WHERE ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND (LOWER(process_name) LIKE '%\mvtcs.exe' OR LOWER(process_name) LIKE '%\meshagent.exe' OR LOWER(process_original_file_name) LIKE '%' || LOWER('{{meshagent_metadata}}') || '%' OR LOWER(process_cmd_line) LIKE '%meshagent%') AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY 1, 2 HAVING hosts <= 3 ORDER BY hosts, runs

    What a hit looks like. The binary mvtcs.exe or meshagent.exe appearing on a very small number of hosts, or any process with MeshAgent original metadata. Silence proves no such processes ran on the scoped hosts.

  3. MeshAgent C2 traffic

    Query · enrichment

    Detect network connections from scoped hosts to the specific MeshAgent C2 IPs reported for Settra.

    reads hb_network_connectionsql
    SELECT device_hostname, process_name, dst_endpoint_ip, dst_endpoint_port, direction, time FROM hb_network_connection WHERE ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND instr(',' || '{{c2_ips}}' || ',', ',' || dst_endpoint_ip || ',') > 0 AND state_kind = 'log' AND time >= datetime('now', '-{{lookback_days}} days') ORDER BY time DESC

    What a hit looks like. Outbound connections to 45.13.122.7 or 193.5.65.114. Any matching connection is highly suspicious if paired with an unrecognized RMM binary.

  4. Triage verdict

    Agent triage

    Assess whether the remote access session on a specific host is followed by MeshAgent deployment and C2 traffic.

  5. Routing decision

    Decision

    Route the hunt based on the triage verdict.

  6. Isolate host

    Response action

    Immediately contain the host to prevent the next stage of the ransomware attack.

  7. Analyst review

    Analyst task

    Conduct a manual review of the suspicious activity and prepare for recovery.

  8. Close-out report

    Analyst task

    Document the findings and update detection rules.

Coverage

Scenario coverage

StageCoveredHow, or why not
External Remote Service Compromise
T1133 · T1021.001
Yes remote-access-signins
Persistence via MeshAgent RMM Yes rare-rmm-processes, meshagent-c2-traffic
BYOVD Security Tool Disabling Out of scope Covered in the following hunt in the Settra series.
Settra Ransomware Execution Out of scope Covered in the following hunt in the Settra series.
Inhibit Recovery and Clear Logs
T1059.001
Out of scope Covered in the following hunt in the Settra series.
Data Encrypted for Impact
T1486
Out of scope Covered in the following hunt in the Settra series.

Blind spots

  • Needs hb_network_connection with state_kind = 'log'. If the endpoint agent or network fabric does not capture flow logs, we only see the process execution and not the confirmation of active C2. It would answer Did the MeshAgent binary successfully establish a C2 channel?.
  • Needs hb_auth_signin with VPN provider integration. If the VPN provider is not integrated with the authentication surface, we cannot correlate the entry point with the internal persistence. It would answer Which VPN logins are tied to the intrusion?.

Parameters & data

Parameters

ParameterTypeDefaultWhat it is
c2_ipslist[ip]45.13.122.7, 193.5.65.114C2 IP addresses associated with MeshAgent in Settra incidents; no spaces between entries.
lookback_daysnumber14Days of history to examine.
meshagent_metadatastringMeshAgentThe expected original filename or product name in the PE metadata.
scope_hostslist[host]—A list of hostnames to focus the hunt on, typically derived from the scoping step.

Telemetry

SourceCategoryTelemetry
Endpoint telemetry (hb_ surfaces)endpointendpoint
Identity / sign-in telemetryidentityidentity
Network telemetrynetworknetwork

Source

Download hunt.md Definition (JSON) An open hunt.md file; it runs anywhere that reads the format.
---
analysis: A standard rule might detect MeshAgent, but this hunt pivots between authentication
  logs to establish a beachhead and uses prevalence stack-counting to identify renamed
  RMM binaries that would otherwise blend in.
blind_spots:
- id: missing-network-logs
  question: Did the MeshAgent binary successfully establish a C2 channel?
  requires: hb_network_connection with state_kind = 'log'
  risk: If the endpoint agent or network fabric does not capture flow logs, we only
    see the process execution and not the confirmation of active C2.
  stage: persistence-rmm-meshagent
- id: vpn-auth-visibility
  question: Which VPN logins are tied to the intrusion?
  requires: hb_auth_signin with VPN provider integration
  risk: If the VPN provider is not integrated with the authentication surface, we
    cannot correlate the entry point with the internal persistence.
  stage: initial-access-remote-services
coverage:
- stage: initial-access-remote-services
  status: covered
  steps:
  - remote-access-signins
- stage: persistence-rmm-meshagent
  status: covered
  steps:
  - rare-rmm-processes
  - meshagent-c2-traffic
- reason: Covered in the following hunt in the Settra series.
  stage: defense-evasion-byovd
  status: out_of_scope
- reason: Covered in the following hunt in the Settra series.
  stage: execution-ransomware-launcher
  status: out_of_scope
- reason: Covered in the following hunt in the Settra series.
  stage: anti-recovery-and-evasion
  status: out_of_scope
- reason: Covered in the following hunt in the Settra series.
  stage: impact-data-encryption
  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: Settra ransomware uses legitimate RMM tools for persistence to survive
    standard security measures; detecting this channel before the launcher executes
    provides the best opportunity to prevent impact.
  methodology: model-assisted
  trigger: intel-report
hypothesis: An adversary has established a beachhead via compromised external remote
  services and installed MeshAgent, potentially renamed, to maintain persistent command-and-control
  access.
labels:
- hunt
- attack.t1133
- attack.t1021.001
- attack.t1219
name: Settra Persistence via MeshAgent and Remote Access
parameters:
  c2_ips:
    default:
    - 45.13.122.7
    - 193.5.65.114
    description: C2 IP addresses associated with MeshAgent in Settra incidents; no
      spaces between entries.
    from:
      kind: article
      observed: '2026-09-17'
      ref: huntress-settra-ransomware
    type: list[ip]
  lookback_days:
    default: '14'
    description: Days of history to examine.
    type: number
  meshagent_metadata:
    default: MeshAgent
    description: The expected original filename or product name in the PE metadata.
    from:
      kind: article
      observed: '2026-09-17'
      ref: huntress-settra-ransomware
    type: string
  scope_hosts:
    default: []
    description: A list of hostnames to focus the hunt on, typically derived from
      the scoping step.
    type: list[host]
provenance:
  authors:
  - name: Huntbase hunt generation
    org: huntbase.io
  generated:
    by: huntbase-hunt-generation
    from: https://www.huntress.com/blog/new-settra-ransomware-variant
    gates:
    - dry-run
    - lint
    model: hb_google/gemini-3-flash-preview
rationale: Start by identifying all successful RDP and VPN sign-ins. If you find high-volume
  access from unusual IPs, use those hostnames as the scope_hosts parameter to narrow
  the expensive process and network queries.
references:
- name: "Huntress \u2014 New Settra Ransomware Variant Deploys MeshAgent RMM"
  url: https://www.huntress.com/blog/new-settra-ransomware-variant
related:
- hunt: settra-ransomware-evasion-and-encryption
  reason: This hunt targets the persistence stage; the following hunt covers the BYOVD
    evasion and file encryption stages.
  relation: follows
scenario:
  stages:
  - name: External Remote Service Compromise
    observables:
    - VPN credential compromise
    - RDP session usage
    slug: initial-access-remote-services
    tactic: initial-access
    techniques:
    - T1133
    - T1021.001
  - name: Persistence via MeshAgent RMM
    observables:
    - mvtcs.exe
    - MeshAgent RMM installation
    - 45.13.122.7
    - 193.5.65.114
    - Workstation name WIN-LIVFRVQFMKO
    slug: persistence-rmm-meshagent
    tactic: persistence
  - name: BYOVD Security Tool Disabling
    observables:
    - gdrv.sys
    - Disable antivirus services
    slug: defense-evasion-byovd
    tactic: defense-evasion
  - name: Settra Ransomware Execution
    observables:
    - '*_win64.exe'
    - C:\Perflogs
    - \Documents\*_win64.exe
    slug: execution-ransomware-launcher
    tactic: execution
  - name: Inhibit Recovery and Clear Logs
    observables:
    - reagentc /disable
    - ipconfig /flushdns
    - diskpart.exe execution with recovery partition script
    - 'cipher /w:'
    - wevtutil log clearing (Application, Security, System, Setup, ForwardedEvents)
    - Microsoft-Windows-TerminalServices-LocalSessionManager/Operational
    - Microsoft-Windows-TerminalServices-RDPClient/Operational
    - Microsoft-Windows-Sysmon/Operational
    - Microsoft-Windows-PowerShell/Operational
    - Microsoft-Windows-WinRM/Operational
    - Microsoft-Windows-TaskScheduler/Operational
    - Microsoft-Windows-Windows-Defender/Operational
    slug: anti-recovery-and-evasion
    tactic: defense-evasion
    techniques:
    - T1059.001
  - name: Data Encrypted for Impact
    observables:
    - .locked extension
    - .locked_wip extension
    - RESTORE_FILES.txt
    slug: impact-data-encryption
    tactic: impact
    techniques:
    - T1486
  summary: Settra ransomware incidents involve initial persistence via MeshAgent RMM
    and the use of BYOVD (gdrv.sys) to disable security tools before executing a ransomware
    binary named after the victim domain. The threat actor employs extensive anti-recovery
    measures including clearing multiple event logs, disabling the Windows Recovery
    Environment, and overwriting free disk space using native Windows utilities.
series:
  index: 1
  slug: ready-settra-go-new-settra-ransomware-variant-deploys-meshagent-rmm
  title: 'Ready, Settra, Go: New Settra Ransomware Variant Deploys MeshAgent RMM'
  total: 2
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
  identity:
    category: identity
    name: Identity / sign-in telemetry
    telemetry:
    - identity
  network:
    category: network
    name: Network telemetry
    telemetry:
    - network
tlp: clear
type: investigation
---


# Settra Persistence via MeshAgent and Remote Access

This hunt identifies the early stages of a Settra ransomware intrusion by correlating remote access sign-ins with the subsequent deployment of the MeshAgent RMM tool. MeshAgent is a legitimate remote management utility that Settra operators use for persistence, often renaming the binary to mvtcs.exe. The hunt pivots from scoping successful RDP or VPN sessions to stack-counting rare binaries and identifying network telemetry reaching out to specific C2 infrastructure reported in recent Settra incidents.

## remote-access-signins
<!-- Remote access sign-ins -->
Identify successful logins via RDP or VPN that may represent the initial beachhead for the threat actor.

```sqlite target=identity role=scoping params=(lookback_days=lookback_days)
~~~yaml
expected: A list of hosts and users accessing the network remotely. Silence suggests
  either no remote access occurred or the activity is outside the logging visibility
  of the authentication surface.
reads:
- dst_endpoint_name
- actor_user_name
- src_endpoint_ip
- auth_protocol
- status_id
- activity_name
- time
silence: not_evidence_of_absence
source: hb_auth_signin
verified: dry-run
verified_at: '2026-09-23'
~~~
SELECT dst_endpoint_name AS device_hostname, actor_user_name, src_endpoint_ip, auth_protocol, MIN(time) AS first_signin, MAX(time) AS last_signin FROM hb_auth_signin WHERE status_id = 1 AND (LOWER(auth_protocol) LIKE '%rdp%' OR LOWER(auth_protocol) LIKE '%vpn%' OR LOWER(activity_name) LIKE '%remote%') AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY dst_endpoint_name, actor_user_name, src_endpoint_ip, auth_protocol ORDER BY last_signin DESC
```

## persistence-corroboration
<!-- Corroborate persistence -->
parallel:
- → rare-rmm-processes
- → meshagent-c2-traffic
join: → triage-verdict

## rare-rmm-processes
<!-- Rare MeshAgent-related processes -->
Find rare processes associated with MeshAgent binaries by checking paths and original file name metadata across the estate.

```sqlite target=endpoint role=detection-candidate params=(lookback_days=lookback_days, meshagent_metadata=meshagent_metadata, scope_hosts=scope_hosts)
~~~yaml
baseline:
  compare: first_seen
  window: '{{lookback_days}}d'
expected: The binary mvtcs.exe or meshagent.exe appearing on a very small number of
  hosts, or any process with MeshAgent original metadata. Silence proves no such processes
  ran on the scoped hosts.
prevalence:
  by: device_hostname
  key:
  - path
  - process_original_file_name
  rare_below: 3
reads:
- device_hostname
- process_name
- process_original_file_name
- process_cmd_line
- time
silence: evidence_of_absence
source: hb_process_activity
verified: dry-run
verified_at: '2026-09-23'
~~~
SELECT LOWER(process_name) AS path, process_original_file_name, COUNT(DISTINCT device_hostname) AS hosts, COUNT(*) AS runs, MIN(time) AS first_seen FROM hb_process_activity WHERE ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND (LOWER(process_name) LIKE '%\mvtcs.exe' OR LOWER(process_name) LIKE '%\meshagent.exe' OR LOWER(process_original_file_name) LIKE '%' || LOWER('{{meshagent_metadata}}') || '%' OR LOWER(process_cmd_line) LIKE '%meshagent%') AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY 1, 2 HAVING hosts <= 3 ORDER BY hosts, runs
```

## meshagent-c2-traffic
<!-- MeshAgent C2 traffic -->
Detect network connections from scoped hosts to the specific MeshAgent C2 IPs reported for Settra.

```sqlite target=network role=enrichment params=(lookback_days=lookback_days, c2_ips=c2_ips, scope_hosts=scope_hosts)
~~~yaml
expected: Outbound connections to 45.13.122.7 or 193.5.65.114. Any matching connection
  is highly suspicious if paired with an unrecognized RMM binary.
reads:
- device_hostname
- process_name
- dst_endpoint_ip
- dst_endpoint_port
- direction
- state_kind
- time
silence: not_evidence_of_absence
source: hb_network_connection
verified: dry-run
verified_at: '2026-09-23'
~~~
SELECT device_hostname, process_name, dst_endpoint_ip, dst_endpoint_port, direction, time FROM hb_network_connection WHERE ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND instr(',' || '{{c2_ips}}' || ',', ',' || dst_endpoint_ip || ',') > 0 AND state_kind = 'log' AND time >= datetime('now', '-{{lookback_days}} days') ORDER BY time DESC
```

## triage-verdict
<!-- Triage verdict -->
```agent target=hunter
cite: required
context:
- remote-access-signins
- rare-rmm-processes
- meshagent-c2-traffic
max_iterations: 5
objective: Determine if the remote access session led to the installation of MeshAgent
  RMM and whether that RMM is communicating with known-malicious infrastructure.
success_criteria: A verdict of malicious if MeshAgent is found connecting to the report's
  IPs on the same host where a remote sign-in occurred.
tools:
- endpoint
- identity
- network
```

## routing-decision
<!-- Routing decision -->
if~: "the triage verdict is malicious for at least one host, citing the presence of a rare MeshAgent binary and connections to Settra C2 IPs" (confidence: high, judge=hunter)
then: → isolate-host
indeterminate: → analyst-review
unavailable: → analyst-review (blind_spot: missing-network-logs)
else: → close-out-report

## isolate-host
<!-- Isolate host -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the host from the network. Kill any running instances of mvtcs.exe or meshagent.exe. Revoke active sessions for the user account identified in the sign-in step.
```
→ analyst-review

## analyst-review
<!-- Analyst review -->
```manual target=analyst
Review the full process tree for the rare binary. Check for scheduled tasks or registry run keys that might restart MeshAgent. Pivot to the next stage hunt (BYOVD and Ransomware Launcher) to check for further progression.
```
→ close-out-report

## close-out-report
<!-- Close-out report -->
```manual target=analyst
Record all confirmed IPs and filenames. If mvtcs.exe was found, promote the process query to a standing detection rule.
```
→ 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.