MDaemon Exploitation and Backdoor Lifecycle
An adversary has exploited a public-facing MDaemon mail server or successfully phished a user, subsequently deploying a backdoor and using script-based decoys to evade security analysis by triggering AI safety guardrails.
Based on research by ESET Research 2026-10-29 12 steps · 5 queries T1027 T1059 T1190 T1555 T1566
Brief
Why now
Recent activity detailed in the ESET APT Activity Report Q2 2026–Q3 2026 highlights a strategic focus on public-facing mail servers and software developers. Adversaries are not just looking for a foothold; they are actively adapting their tradecraft to bypass modern analysis tools. This hunt tracks the progression from initial access through the deployment of custom backdoors, including a novel method of defense evasion designed to neutralize AI-driven security inspection.
How the hunt flows
The hunt begins by scoping the environment for MDaemon installations. The first query searches software inventory logs to identify hosts running the mail server or containing related installation paths. This step allows an analyst to narrow the subsequent network search and focus on high-risk assets.
Initial access leads come from two parallel paths. The hunt examines HTTP activity for suspicious POST requests to MDaemon's WorldClient or RemoteAdmin interfaces, which may indicate exploitation. Simultaneously, it baselines authentication logs to find successful sign-ins from rare IP and User-Agent combinations. This identifies potential credential compromise originating from recruitment-themed phishing.
Execution analysis pivots to endpoint telemetry. The hunt searches for process names associated with known backdoors like HELLAGE and HELLTAG, as well as command lines referencing known Gamaredon toolsets. This phase focuses on the immediate aftermath of an exploit or successful phishing interaction.
Defense evasion analysis targets the specific script-based decoys mentioned in the ESET report. The hunt scans script activity for content containing strings like "nuclear weapon" or "atomic bomb." The goal is to find script blocks where these decoys are used to trigger safety guardrails in automated analysis environments.
Blind spots
This hunt has two primary limitations. First, if HTTP traffic is encrypted and the environment lacks TLS inspection or server-side logs, the content of POST requests remains invisible. The hunt can see the connection, but not the exploitation payload. Second, the defense evasion search depends on PowerShell Script Block Logging or equivalent script content visibility. If these logs are missing, the decoy comments used to trigger AI safety blocks will not appear in the telemetry.
In this series
Steps
-
Scope MDaemon installations
Query · scopingIdentify hosts running MDaemon to narrow the search for exploitation leads.
reads hb_software_inventorysqlSELECT device_hostname, package_name, package_version, install_path FROM hb_software_inventory WHERE (LOWER(package_name) LIKE '%mdaemon%' OR LOWER(install_path) LIKE '%mdaemon%')What a hit looks like. A list of hosts hosting MDaemon. Absence means no such software is inventoried.
-
MDaemon exploitation traffic
Query · triageIdentify suspicious POST requests to MDaemon web paths.
reads hb_http_activitysqlSELECT device_hostname, url_path, http_method, status_code, src_endpoint_ip, time FROM hb_http_activity WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND (LOWER(url_path) LIKE '%worldclient%' OR LOWER(url_path) LIKE '%remoteadmin%') AND http_method = 'POST' AND time >= datetime('now', '-{{lookback_days}} days')What a hit looks like. Inbound POST requests to mail server paths from external IPs.
-
Phishing-related sign-in anomalies
Query · baselineFind successful sign-ins from rare IPs that may indicate credential compromise.
reads hb_auth_signinsqlSELECT LOWER(actor_user_name) AS user, src_endpoint_ip, user_agent, COUNT(DISTINCT device_hostname) as host_count, MIN(time) as first_seen FROM hb_auth_signin WHERE status_id = 1 AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY user, src_endpoint_ip, user_agent HAVING host_count < 3What a hit looks like. A sign-in from a user account on an IP/User-Agent combination seen on very few hosts.
-
Triage early-stage leads
Agent triageSummarize whether the initial access evidence suggests a real intrusion.
-
Backdoor process activity
Query · detection candidateDetect the execution of backdoor binaries named in the ESET report by matching filenames within the full process path.
reads hb_process_activitysqlSELECT device_hostname, process_name, process_cmd_line, parent_process_name, time FROM hb_process_activity WHERE (instr(',' || '{{backdoor_names}}' || ',', ',' || LOWER(REPLACE(process_name, rtrim(process_name, replace(process_name, '\', '')), '')) || ',') > 0 OR LOWER(process_cmd_line) LIKE '%rezzuar%') AND time >= datetime('now', '-{{lookback_days}} days')What a hit looks like. Processes launching with names associated with HELLAGE, HELLTAG, or Gamaredon tools extracted from full absolute paths.
-
AI guardrail evasion decoys
Query · triageIdentify script blocks containing nuclear-themed decoys designed to bypass AI security inspection using the evasion_decoys parameter.
reads hb_script_activitysqlSELECT device_hostname, script_name, script_content, time FROM hb_script_activity WHERE (instr(LOWER(script_content), '{{evasion_decoys}}') > 0 OR LOWER(script_content) LIKE '%nuclear weapon%' OR LOWER(script_content) LIKE '%atomic bomb%') AND time >= datetime('now', '-{{lookback_days}} days')What a hit looks like. Script blocks containing decoy comments about nuclear weapons or atomic bombs as defined in the evasion_decoys list.
-
Analyze full intrusion chain
Agent triageCorrelate access, execution, and evasion evidence to reach a final verdict.
-
Route on final verdict
DecisionDetermine whether to contain a host or move to analyst review.
-
Isolate host
Response actionPrevent further lateral movement or data theft from the compromised host.
-
Analyst review
Analyst taskManually verify the AI-evasion decoys and backdoor activity.
-
Close out
Analyst taskFinalize the hunt and record the negative result for the estate.
Coverage
Scenario coverage
| Stage | Covered | How, or why not |
|---|---|---|
| MDaemon Mail Server Exploitation T1190 |
Yes | scope-mdaemon-servers, mdaemon-exploit-leads |
| Recruitment-Themed Phishing T1566 |
Yes | phishing-access-leads |
| Backdoor Execution T1059 |
Yes | backdoor-execution |
| AI Guardrail Evasion Decoy T1027 |
Yes | evasion-decoys |
| Developer Credential Harvesting T1555 |
Out of scope | Belongs to another part of the 'ESET APT Activity Report Q2 2026–Q3 2026' series. |
| Source Code Injection T1195 |
Out of scope | Belongs to another part of the 'ESET APT Activity Report Q2 2026–Q3 2026' series. |
Blind spots
- Needs TLS inspection or server-side logs. An exploitation attempt may appear as normal POST traffic without visibility into the encrypted body. It would answer What was the payload inside the POST request?.
- Needs hb_script_activity with full block logging. Without PowerShell Script Block Logging, the decoy comments used for evasion will not be visible to the hunt. It would answer Was the nuclear decoy present in the executed script?.
Parameters & data
Parameters
| Parameter | Type | Default | What it is |
|---|---|---|---|
backdoor_names | list[string] | hellage.exe, helltag.exe, pterobox.exe, pteropsdoor.exe | Malware process names named in the ESET report. |
evasion_decoys | list[string] | nuclear weapon, atomic bomb, building a nuclear weapon | Decoy strings used in script comments to trigger AI safety guardrails. |
lookback_days | number | 14 | Days of history to examine. |
scope_hosts | list[host] | — | Hostnames running MDaemon; leave empty to hunt the whole estate. |
Telemetry
| Source | Category | Telemetry |
|---|---|---|
| Endpoint telemetry (hb_ surfaces) | endpoint | endpoint |
| Identity / sign-in telemetry | identity | identity |
| Web server / proxy logs | siem | network |
Source
---
analysis: A simple rule could look for a specific filename, but this hunt correlates
MDaemon exposure, anomalous authentication from rare IPs, and a novel behavioral
decoy across three surfaces, requiring analyst context to differentiate between
legitimate script comments and evasion tradecraft.
blind_spots:
- id: encrypted-http-traffic
question: What was the payload inside the POST request?
requires: TLS inspection or server-side logs
risk: An exploitation attempt may appear as normal POST traffic without visibility
into the encrypted body.
stage: initial-access-mdaemon-exploit
- id: script-logging-missing
question: Was the nuclear decoy present in the executed script?
requires: hb_script_activity with full block logging
risk: Without PowerShell Script Block Logging, the decoy comments used for evasion
will not be visible to the hunt.
stage: defense-evasion-llm-safety-trigger
coverage:
- stage: initial-access-mdaemon-exploit
status: covered
steps:
- scope-mdaemon-servers
- mdaemon-exploit-leads
- stage: initial-access-recruitment-phishing
status: covered
steps:
- phishing-access-leads
- stage: execution-backdoor-deployment
status: covered
steps:
- backdoor-execution
- stage: defense-evasion-llm-safety-trigger
status: covered
steps:
- evasion-decoys
- reason: "Belongs to another part of the 'ESET APT Activity Report Q2 2026\u2013\
Q3 2026' series."
stage: credential-access-developer-harvesting
status: out_of_scope
- reason: "Belongs to another part of the 'ESET APT Activity Report Q2 2026\u2013\
Q3 2026' series."
stage: initial-access-supply-chain-injection
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: Public-facing mail servers are strategic beachheads for APT groups.
This hunt proactively searches for their exploitation and a novel AI-evasion technique
that could bypass automated security analysis.
methodology: model-assisted
trigger: intel-report
hypothesis: An adversary has exploited a public-facing MDaemon mail server or successfully
phished a user, subsequently deploying a backdoor and using script-based decoys
to evade security analysis by triggering AI safety guardrails.
labels:
- hunt
- attack.t1190
- attack.t1566
- attack.t1059
- attack.t1027
- attack.t1555
- credential access
- defense evasion
- execution
- initial access
name: MDaemon Exploitation and Backdoor Lifecycle
parameters:
backdoor_names:
default:
- hellage.exe
- helltag.exe
- pterobox.exe
- pteropsdoor.exe
description: Malware process names named in the ESET report.
from:
kind: article
observed: '2026-10-28'
ref: "ESET APT Activity Report Q2 2026\u2013Q3 2026"
type: list[string]
evasion_decoys:
default:
- nuclear weapon
- atomic bomb
- building a nuclear weapon
description: Decoy strings used in script comments to trigger AI safety guardrails.
from:
kind: article
observed: '2026-10-28'
ref: "ESET APT Activity Report Q2 2026\u2013Q3 2026"
type: list[string]
lookback_days:
default: '14'
description: Days of history to examine.
from:
kind: manual
observed: '2026-10-28'
ref: standard hunt lookback
type: number
scope_hosts:
default: []
description: Hostnames running MDaemon; leave empty to hunt the whole estate.
from:
kind: manual
observed: '2026-10-28'
ref: scoping-step
type: list[host]
provenance:
authors:
- name: Huntbase hunt generation
org: huntbase.io
generated:
by: huntbase-hunt-generation
from: https://www.welivesecurity.com/en/eset-research/eset-apt-activity-report-q2-2026-q3-2026/
gates:
- dry-run
- lint
model: hb_google/gemini-3-flash-preview
rationale: The hunt begins by identifying every host running MDaemon. If no MDaemon
servers are present, the hunt still examines sign-in patterns and post-exploitation
signals across the general estate.
references:
- name: "ESET APT Activity Report Q2 2026\u2013Q3 2026"
url: https://www.welivesecurity.com/en/eset-research/eset-apt-activity-report-q2-2026-q3-2026/
related:
- hunt: developer-credential-harvesting-supply-chain
reason: This hunt focuses on the mail server and phishing paths; supply chain injection
via developer tokens is handled separately.
relation: out-of-scope-alternative
- hunt: development-pipeline-credential-abuse-injection
relation: follows
scenario:
stages:
- name: MDaemon Mail Server Exploitation
observables:
- MDaemon mail servers
- HELLAGE backdoor
- HELLTAG backdoor
slug: initial-access-mdaemon-exploit
tactic: initial-access
techniques:
- T1190
- name: Recruitment-Themed Phishing
observables:
- recruitment-themed social engineering
- AI-generated phishing lure images
slug: initial-access-recruitment-phishing
tactic: initial-access
techniques:
- T1566
- name: Developer Credential Harvesting
observables:
- harvesting developer credentials
- private source code repositories
slug: credential-access-developer-harvesting
tactic: credential-access
techniques:
- T1555
- name: Source Code Injection
observables:
- injecting malicious code into public and private source code repositories
slug: initial-access-supply-chain-injection
tactic: initial-access
techniques:
- T1195
- name: Backdoor Execution
observables:
- PteroBox
- PteroPSDoor
- Rezzuar
- HELLAGE
- HELLTAG
slug: execution-backdoor-deployment
tactic: execution
techniques:
- T1059
- name: AI Guardrail Evasion Decoy
observables:
- decoy request for instructions on building a nuclear weapon into a script comment
slug: defense-evasion-llm-safety-trigger
tactic: defense-evasion
techniques:
- T1027
summary: APT groups in Q2-Q3 2026 targeted development environments via credential
harvesting and source code injection, exploited MDaemon mail servers to deploy
backdoors, and utilized AI-generated content and decoys for social engineering
and defense evasion. Notable activities include North Korean DeceptiveDevelopment's
supply chain attacks and the first documented destructive operation by Belarus-aligned
FrostyNeighbor.
series:
index: 2
slug: eset-apt-activity-report-q2-2026-q3-2026
title: "ESET APT Activity Report Q2 2026\u2013Q3 2026"
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
web:
category: siem
name: Web server / proxy logs
telemetry:
- network
tlp: clear
type: investigation
---
# MDaemon Exploitation and Backdoor Lifecycle
This hunt tracks the lifecycle of recent APT activity targeting mail servers and software developers. It first scopes the estate for MDaemon installations, then examines HTTP traffic for exploitation attempts and sign-in anomalies. The second phase pivots to endpoint telemetry to find execution of known backdoor families like HELLAGE and HELLTAG, while specifically searching for a novel defense evasion technique where script comments contain nuclear-themed decoys designed to trip Large Language Model (LLM) safety guardrails and prevent security inspection.
## scope-mdaemon-servers
<!-- Scope MDaemon installations -->
Identify hosts running MDaemon to narrow the search for exploitation leads.
```sqlite target=endpoint role=scoping
~~~yaml
expected: A list of hosts hosting MDaemon. Absence means no such software is inventoried.
reads:
- device_hostname
- install_path
- package_name
- package_version
silence: not_evidence_of_absence
source: hb_software_inventory
verified: dry-run
verified_at: '2026-10-29'
~~~
SELECT device_hostname, package_name, package_version, install_path FROM hb_software_inventory WHERE (LOWER(package_name) LIKE '%mdaemon%' OR LOWER(install_path) LIKE '%mdaemon%')
```
## parallel-access
<!-- Identify initial access leads -->
parallel:
- → mdaemon-exploit-leads
- → phishing-access-leads
join: → triage-leads
## mdaemon-exploit-leads
<!-- MDaemon exploitation traffic -->
Identify suspicious POST requests to MDaemon web paths.
```sqlite target=web role=triage params=(scope_hosts=scope_hosts, lookback_days=lookback_days)
~~~yaml
expected: Inbound POST requests to mail server paths from external IPs.
reads:
- device_hostname
- http_method
- src_endpoint_ip
- status_code
- time
- url_path
silence: not_evidence_of_absence
source: hb_http_activity
verified: dry-run
verified_at: '2026-10-29'
~~~
SELECT device_hostname, url_path, http_method, status_code, src_endpoint_ip, time FROM hb_http_activity WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND (LOWER(url_path) LIKE '%worldclient%' OR LOWER(url_path) LIKE '%remoteadmin%') AND http_method = 'POST' AND time >= datetime('now', '-{{lookback_days}} days')
```
## phishing-access-leads
<!-- Phishing-related sign-in anomalies -->
Find successful sign-ins from rare IPs that may indicate credential compromise.
```sqlite target=identity role=baseline params=(lookback_days=lookback_days)
~~~yaml
baseline:
compare: first_seen
window: '{{lookback_days}}d'
expected: A sign-in from a user account on an IP/User-Agent combination seen on very
few hosts.
prevalence:
by: actor_user_name
key:
- src_endpoint_ip
- user_agent
rare_below: 3
reads:
- actor_user_name
- device_hostname
- src_endpoint_ip
- status_id
- time
- user_agent
silence: not_evidence_of_absence
source: hb_auth_signin
verified: dry-run
verified_at: '2026-10-29'
~~~
SELECT LOWER(actor_user_name) AS user, src_endpoint_ip, user_agent, COUNT(DISTINCT device_hostname) as host_count, MIN(time) as first_seen FROM hb_auth_signin WHERE status_id = 1 AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY user, src_endpoint_ip, user_agent HAVING host_count < 3
```
## triage-leads
<!-- Triage early-stage leads -->
```agent target=hunter
cite: required
context:
- mdaemon-exploit-leads
- phishing-access-leads
max_iterations: 3
objective: Determine if any host shows evidence of successful mail server exploitation
or anomalous authentication suggesting a phished credential was used.
success_criteria: A verdict of suspicious or malicious for hosts with supporting rows.
tools:
- endpoint
- identity
- web
```
## parallel-post-exploit
<!-- Hunt for execution and evasion -->
parallel:
- → backdoor-execution
- → evasion-decoys
join: → final-triage
## backdoor-execution
<!-- Backdoor process activity -->
Detect the execution of backdoor binaries named in the ESET report by matching filenames within the full process path.
```sqlite target=endpoint role=detection-candidate params=(backdoor_names=backdoor_names, lookback_days=lookback_days)
~~~yaml
expected: Processes launching with names associated with HELLAGE, HELLTAG, or Gamaredon
tools extracted from full absolute paths.
reads:
- device_hostname
- parent_process_name
- process_cmd_line
- process_name
- time
silence: evidence_of_absence
source: hb_process_activity
verified: dry-run
verified_at: '2026-10-29'
~~~
SELECT device_hostname, process_name, process_cmd_line, parent_process_name, time FROM hb_process_activity WHERE (instr(',' || '{{backdoor_names}}' || ',', ',' || LOWER(REPLACE(process_name, rtrim(process_name, replace(process_name, '\', '')), '')) || ',') > 0 OR LOWER(process_cmd_line) LIKE '%rezzuar%') AND time >= datetime('now', '-{{lookback_days}} days')
```
## evasion-decoys
<!-- AI guardrail evasion decoys -->
Identify script blocks containing nuclear-themed decoys designed to bypass AI security inspection using the evasion_decoys parameter.
```sqlite target=endpoint role=triage params=(evasion_decoys=evasion_decoys, lookback_days=lookback_days)
~~~yaml
expected: Script blocks containing decoy comments about nuclear weapons or atomic
bombs as defined in the evasion_decoys list.
reads:
- device_hostname
- script_content
- script_name
- time
silence: evidence_of_absence
source: hb_script_activity
verified: dry-run
verified_at: '2026-10-29'
~~~
SELECT device_hostname, script_name, script_content, time FROM hb_script_activity WHERE (instr(LOWER(script_content), '{{evasion_decoys}}') > 0 OR LOWER(script_content) LIKE '%nuclear weapon%' OR LOWER(script_content) LIKE '%atomic bomb%') AND time >= datetime('now', '-{{lookback_days}} days')
```
## final-triage
<!-- Analyze full intrusion chain -->
```agent target=hunter
cite: required
context:
- triage-leads
- backdoor-execution
- evasion-decoys
max_iterations: 6
objective: Determine if any host has transitioned from a suspicious access lead (from
triage-leads) to confirmed backdoor execution or AI-evasion behavior.
success_criteria: A definitive classification of malicious | suspicious | benign per
host.
tools:
- endpoint
- identity
- web
```
## route-verdict
<!-- Route on final verdict -->
if~: "the final-triage verdict is malicious for at least one host" (confidence: high, judge=hunter)
then: → containment
indeterminate: → analyst-review
unavailable: → analyst-review (blind_spot: script-logging-missing)
else: → close-out
## containment
<!-- Isolate host -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the host and revoke active cloud sessions for the user accounts identified as suspicious in the auth triage.
```
→ analyst-review
## analyst-review
<!-- Analyst review -->
```manual target=analyst
Review the script_content and process_cmd_line cited by the agent. Specifically confirm if the 'nuclear weapon' comments were used in proximity to obfuscated code or unauthorized backdoor execution.
```
→ end
## close-out
<!-- Close out -->
```manual target=analyst
Record the absence of these indicators. If MDaemon servers were identified, confirm they are patched against known CVEs and that no anomalous POST traffic was observed.
```
→ 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.