← All hunts high TLP:CLEAR Part 2 of 2

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

  1. Scope MDaemon installations

    Query · scoping

    Identify hosts running MDaemon to narrow the search for exploitation leads.

    reads hb_software_inventorysql
    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%')

    What a hit looks like. A list of hosts hosting MDaemon. Absence means no such software is inventoried.

  2. MDaemon exploitation traffic

    Query · triage

    Identify suspicious POST requests to MDaemon web paths.

    reads hb_http_activitysql
    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')

    What a hit looks like. Inbound POST requests to mail server paths from external IPs.

  3. Phishing-related sign-in anomalies

    Query · baseline

    Find successful sign-ins from rare IPs that may indicate credential compromise.

    reads hb_auth_signinsql
    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

    What a hit looks like. A sign-in from a user account on an IP/User-Agent combination seen on very few hosts.

  4. Triage early-stage leads

    Agent triage

    Summarize whether the initial access evidence suggests a real intrusion.

  5. Backdoor process activity

    Query · detection candidate

    Detect the execution of backdoor binaries named in the ESET report by matching filenames within the full process path.

    reads hb_process_activitysql
    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')

    What a hit looks like. Processes launching with names associated with HELLAGE, HELLTAG, or Gamaredon tools extracted from full absolute paths.

  6. AI guardrail evasion decoys

    Query · triage

    Identify script blocks containing nuclear-themed decoys designed to bypass AI security inspection using the evasion_decoys parameter.

    reads hb_script_activitysql
    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')

    What a hit looks like. Script blocks containing decoy comments about nuclear weapons or atomic bombs as defined in the evasion_decoys list.

  7. Analyze full intrusion chain

    Agent triage

    Correlate access, execution, and evasion evidence to reach a final verdict.

  8. Route on final verdict

    Decision

    Determine whether to contain a host or move to analyst review.

  9. Isolate host

    Response action

    Prevent further lateral movement or data theft from the compromised host.

  10. Analyst review

    Analyst task

    Manually verify the AI-evasion decoys and backdoor activity.

  11. Close out

    Analyst task

    Finalize the hunt and record the negative result for the estate.

Coverage

Scenario coverage

StageCoveredHow, 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

ParameterTypeDefaultWhat it is
backdoor_nameslist[string]hellage.exe, helltag.exe, pterobox.exe, pteropsdoor.exeMalware process names named in the ESET report.
evasion_decoyslist[string]nuclear weapon, atomic bomb, building a nuclear weaponDecoy strings used in script comments to trigger AI safety guardrails.
lookback_daysnumber14Days of history to examine.
scope_hostslist[host]—Hostnames running MDaemon; leave empty to hunt the whole estate.

Telemetry

SourceCategoryTelemetry
Endpoint telemetry (hb_ surfaces)endpointendpoint
Identity / sign-in telemetryidentityidentity
Web server / proxy logssiemnetwork

Source

Download hunt.md Definition (JSON) An open hunt.md file; it runs anywhere that reads the format.
---
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.

Locked pack

Sign up to unlock

Pack contents are available to Huntbase users.