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