T1104 Multi-stage channels

How SOC leads and detection engineers recognize T1104 multi-stage channels, detect them with open-source tooling on Linux, macOS, Windows and ESXi, validate the rules and rehearse response in a private cyber range.

On this page

What T1104 multi-stage channels let an attacker keep

A SOC lead facing a suspected command and control session often sees beaconing from one host but cannot find the outbound connection that carries the operator's commands. That gap is the signature of multi-stage channels (T1104): the control traffic is split across more than one link, so a foothold on an internal system relays instructions through a second system before they reach the compromised host. MITRE defines the parent tactic, Command and Control (TA0011), as the adversary trying to communicate with compromised systems to control them. T1104 describes one way that communication is arranged, with stages that keep the operator one hop removed from any single connection.

In intrusions, this pattern usually appears where a stager or relay is placed on a system that has legitimate reasons to talk to the internet or to other internal segments, such as a jump host, build server or application node. Defenders rarely see one clean event. They see several linked records: a network connection from the first host to an intermediate system, a second connection onward, and a process on the intermediate system that handles relayed traffic. Correlating these records by time, host and process lineage is what turns a set of unrelated flows into a single suspected channel. Check whether your sensors preserve the process that owned each connection, because without it the links cannot be joined.

Detection logic is tied to the ATT&CK version it targets. Before you build or import rules, confirm the current technique mapping, its sub-techniques and the data components referenced for T1104 in the enterprise-attack 20.0 STIX bundle, and record the version in each rule's metadata. Techniques can be renamed, deprecated or revoked between releases, so a rule written against an older mapping can silently stop matching. Use the MITRE ATT&CK tactic page for Command and Control as the starting reference for scope, then verify the technique entry directly in the bundle.

Which telemetry reveals T1104 on Linux, macOS, Windows and ESXi

This table compares the four data components most useful for spotting T1104 Multi-Stage Channels, with the signal to look for, the platforms where each applies, and an open-source collector to start with. Read each row as a source of evidence, then confirm platform applicability against the ATT&CK data for the version you target. The main takeaway is that no single component covers the technique, so pair host-side process and connection telemetry with network flow and content visibility.

Data componentSignal to look forPlatforms and open-source collector
Network Connection Creation (DC0082)Long-lived outbound sessions from a process that does not normally talk to the internet, followed by new sessions from a different process to the same destination after the first stage runs.Linux, macOS, Windows, ESXi where host telemetry exists. Collect with the Wazuh agent or Velociraptor. Confirm ESXi coverage with your own build.
Process Creation (DC0032)A process started by an earlier stage that then spawns a second process which opens its own channel, showing a staged chain of parent and child relationships.Linux, macOS, Windows. Collect with the Wazuh agent (auditd, Sysmon-equivalent event feeds) or Velociraptor artifacts. Confirm ESXi process visibility before relying on it.
Network Traffic Flow (DC0078)Flow records showing a single internal host with several outbound channels that open in sequence, carry small periodic exchanges and change destination after an initial callback.Platform-independent at the network layer. Collect with Zeek connection logs or Security Onion sessions, and Suricata flow records where enabled.
Network Traffic Content (DC0085)Payload-level evidence that the second channel is a separate protocol or encoding carried inside the first, visible only where traffic is decrypted or inspected.Platform-independent at the network layer, limited for encrypted traffic. Collect with Suricata rules and Zeek protocol analyzers. Confirm inspection points with your architecture team.
File Creation (DC0039), context onlyStaged payload or configuration files written to disk before a later channel starts, which can support the timeline from the other rows.Useful on Windows and ESXi hosts for context. Collect with Wazuh file integrity monitoring or Velociraptor. Confirm the file paths your platform exposes.

How to detect T1104 multi-stage channels with Sigma, Zeek and Wazuh

T1104 Multi-stage channels is hard to catch with a single signature because its traffic looks like ordinary sessions at each hop. The cards below describe detection ideas that combine host telemetry, flow data and network sensors, so that analysts can connect a process, a host and a session over time.

Correlate outbound connections with their process

Link each new outbound connection to the process that opened it, then flag interpreters, script hosts or unsigned binaries that reach external addresses they have never contacted before. For T1104, the first stage often runs under a benign-looking parent, so the question is which child process owns the session. Write the rule in Sigma against Network Connection Creation and Process Creation events, and confirm your Wazuh agents collect both. Tune the allowlist by parent path and destination ASN. Expect false positives from backup agents, monitoring tools and package update services that call home on schedule.

Flag repeated short-interval beacons

Look for outbound sessions from several internal hosts to the same external endpoint, or to a chain of endpoints, at a steady interval with similar byte counts. Zeek connection logs and Suricata flow records give you the timing and volume needed to score regularity. Set the interval band and the minimum number of sessions per window for your environment, and start with a long observation period before alerting. Expect false positives from health checks, NTP, endpoint management and cloud agents, which beacon by design and should be listed by owner rather than silenced globally.

Spot hosts relaying traffic for others

Identify an internal host that receives inbound sessions from one internal address and opens outbound sessions to external destinations at nearly the same time and volume. This pattern suggests the host is passing traffic along a second stage. Build the pairing logic from Zeek connection records joined on time windows, and review hosts that were never designed as proxies. Tune the time window and the byte-ratio tolerance. Expect false positives from load balancers, reverse proxies, VPN concentrators and jump hosts, which relay by design and belong on a documented inventory.

Watch new long-lived sessions after launch

Alert when a process starts and, within a short window, establishes an outbound session that stays open far longer than the application normally needs. Long-lived sessions after a fresh launch are a common sign of a staged channel waiting for tasking. Use Network Traffic Flow durations from Zeek or Suricata, matched against Process Creation events in Wazuh, and compare against a baseline of the same application over several weeks. Confirm the duration threshold with the application owner. Expect false positives from remote support sessions, database replication, message queues and file sync clients that keep sessions open legitimately.

How to validate T1104 multi-stage channel detections before production

This sequence proves that a T1104 detection fires for the behavior it claims to cover, that it stays quiet on normal traffic, and that the evidence is recorded well enough for a second engineer or an auditor to reproduce the result. It turns a rule idea into a tested, versioned detection with known limits.

  1. Pin the ATT&CK version and detection strategy

    Start by naming the ATT&CK version the detection targets, for example Enterprise ATT&CK 20.0, and the detection strategy and analytics for T1104 in that version. Confirm the data components the analytics rely on, such as Network Connection Creation, Process Creation and Network Traffic Flow, and check which of them your sensors actually collect on Linux, macOS, Windows and ESXi. Record the version, strategy identifier and the list of required data sources in the detection repository before any testing starts. The step is done when a reviewer can point to the exact ATT&CK release and the telemetry gaps that remain.

  2. Build a controlled emulation plan

    Write an emulation plan that describes the communication pattern to be staged in a private lab or cyber range, such as a multi-hop relay between defined test hosts, without writing commands, payloads or evasion steps into the plan. Specify the source and destination hosts, the expected network path, the time window and the people allowed to start and stop the exercise. Agree the expected observable outcome for each data component, so that the result can be scored against it. The step is done when the plan is approved by the owners of the range and the detection engineering lead.

  3. Run the emulation with logging enabled

    Run the staged exercise in the range with endpoint, network and sensor logging confirmed as active before the first action. Verify that the Wazuh agents, Zeek, Suricata or Security Onion sensors and any other collectors report healthy status, and capture a clock check so timestamps line up across sources. Keep the exercise log, which records start and end times, the test host names and the operator who ran each stage. The step is done when the raw logs for every stage are stored in the evidence location with a hash or retention record.

  4. Record which data components fired

    Review the collected telemetry against the expected outcomes in the plan and note, for each stage, which data components produced events and which stayed silent. Capture the sensor IDs, the event identifiers and the timestamps that link each alert to its stage in the exercise. Mark any stage where the telemetry was present but the rule did not match, and any stage where the telemetry was missing entirely, because these point to different fixes. The step is done when every planned stage has a recorded result of detected, missed or not observable.

  5. Measure false positives on baseline traffic

    Run the same rule version against a representative window of normal traffic from the same network segments, ideally captured outside the exercise period, and count the alerts it raises. Group the alerts by source process, destination service and host role so that the causes are visible, for example scheduled jobs, backup tools or monitoring agents. Ask the operations team to confirm which of these are legitimate business activity. The step is done when every false positive has a documented cause and an owner, and the rate is recorded against the baseline window used.

  6. Tune the rule and retest

    Adjust the rule logic or its allowlists to remove the causes identified in the baseline review, and record each change as a new rule version with a reason. Rerun the same emulation plan and the same baseline window so that the before and after results can be compared directly. Confirm that tuning did not remove coverage for the planned stages, because a rule that is quiet for the wrong reason is a gap. The step is done when the retest shows the intended detections still firing and the baseline noise reduced, with both results saved.

  7. Document the result in the detection repository

    Store the final rule, its version, the ATT&CK version and strategy identifier, the emulation plan, the sensor list, the baseline window and the known limitations in the detection repository. Include the list of stages that were not observable, the data source gaps and the approval record from the range owner and detection lead. Set a review point tied to the next ATT&CK release, since releases can rename, deprecate or revoke techniques. The step is done when another engineer can reproduce the test from the repository alone and the open gaps are assigned to an owner.

Which preventive controls reduce T1104 exposure

Preventive controls cannot stop every multi-stage channel, but they make each stage harder to establish and easier to see. The cards below cover the two ATT&CK mitigations named for this technique, how each one applies in your environment, and the mapping check to run before you rely on them.

Inline blocking at the perimeter

Network Intrusion Prevention (M1031) is the primary control named for T1104 Multi-stage channels. At the perimeter, an inline intrusion prevention system can drop traffic that matches known staging or relay patterns before a second channel forms. Confirm that the sensor can inspect the content it needs to judge, because encrypted sessions limit signature visibility. Check that blocking is enabled in production, since alert-only operation leaves the channel open while still generating records.

East-west and host-level inspection

The same intrusion prevention logic can be applied between internal segments and on hosts, where a compromised system relays traffic to a second internal system before anything leaves the network. Placing inspection on east-west paths, such as between server zones and user networks, exposes relays that a perimeter sensor never sees. Ask the vendor whether the sensor can run on the hosts or segments you intend to cover, including the Linux, macOS and Windows endpoints in your estate. Map these placements to your asset inventory before you count coverage.

Egress policy with traffic filtering

Filter Network Traffic (M1037) is a related control for egress policy. Allowing outbound connections only from defined sources to defined destinations and ports forces a multi-stage channel onto an approved path or causes it to fail. Egress rules are most useful on servers, which rarely need arbitrary outbound access, and on segments that hold sensitive data. Review exceptions on a fixed schedule, because each broad exception gives a staged channel a route out.

Confirm mappings in ATT&CK 20.0

Releases can rename, deprecate or revoke techniques, so record the ATT&CK version alongside each control. The pages in this series target Enterprise ATT&CK 20.0. Check the relationships between T1104, M1031 and M1037 in the STIX bundle for that version, and read the mitigation text for each mapping. A mapping describes a relationship and does not guarantee coverage. Repeat the check when you adopt a newer release and keep the result with your detection engineering records.

How to respond when a T1104 detection fires

Start by deciding whether the alert describes a known benign flow or a multi-stage channel that needs containment. Check the alert against the approved baseline of outbound paths for the host, including scheduled backups, endpoint agent check-ins, patch sources and any relay service your team has documented. Confirm the change history for the host and the owner of the workload. If the flow matches an approved pattern, record why, then tighten the rule so it does not fire again on the same pattern. If it does not match, treat it as suspicious and move to scoping before anything is changed on the host.

Next, establish the chain. Identify the first host that initiated the outbound connection, then the hosts it connected to or received traffic from in the same window, and any internal systems that appear as a second or third stage. Use Network Connection Creation and Network Traffic Flow records to pair source, destination and time, and Process Creation records on each endpoint to tie a connection to the process that made it. Before you isolate anything, capture volatile evidence with Velociraptor or your existing endpoint agent, following your forensic procedure: record the hash of each collected artifact, keep the chain of custody, and avoid rebooting or altering the host. Containment decisions come next. Isolating the first host or blocking the egress path at the firewall or proxy is usually the fastest way to stop further stages, but confirm the business impact with the system owner and log who approved the action. Escalate to the incident commander when the chain reaches a second internal host, when credentials or sensitive data may be involved, or when the destination cannot be explained by the baseline.

Review other hosts for similar linked flows using the same destinations, timing pattern and process names, and record the results in a single timeline that lists each observation, its source, and the time it was recorded in UTC. Keep the timeline factual so it can support a later review by legal, compliance or an independent assessor. Finally, feed the findings back into detection tuning: document which indicators were true positives, which baseline entries were missing, and which rule thresholds produced noise. Each change should name the ATT&CK version the rule targets, and the rule should be retested in your cyber range before it is promoted to production.

How to rehearse T1104 detection and response in a private cyber range

Build the range with a small set of Linux and macOS endpoints enrolled in your open-source monitoring stack, such as Wazuh agents or a Velociraptor deployment, plus one internal server that acts as the stand-in for an external listener. Keep the topology isolated so that every outbound path from the range goes through a controlled gateway. Facilitators describe injects in words only, for example a staged exchange in which one internal host relays communication through a second internal host before any traffic reaches the boundary. Detection should show up as network connection records tied to a specific process, with the process lineage and the destination visible in the same case. Response should produce a ticket that names the affected hosts, the process, the destination and the containment decision, followed by a documented isolation step and a memory or artifact capture.

  • Telemetry coverage: Confirm that Network Connection Creation and Process Creation records are collected on every endpoint in the range, and that the agent version is recorded.
  • Relay chain logic: Rehearse a case where the first hop is an internal host with no direct external reason to talk to the boundary, and check whether the analyst links the two hops.
  • Alert quality: Score whether the alert names both hosts and the process, not just a single destination address.
  • Containment: Practice isolating one host while preserving the other, and document the order of steps.
  • Evidence handling: Confirm that artifacts are collected before the host is reimaged.

Check that each exercise ends with a written timeline that a second analyst can follow without the facilitator present.

Common questions about detecting T1104 multi-stage channels

How do I separate T1104 detections from T1071 and T1573 detections?

Treat T1104 as a relay pattern and keep its logic separate from the protocol and encryption detections. T1071 covers what protocol is used at the application layer and T1573 covers whether the channel is encrypted, while T1104 looks for a chain of staged connections where one compromised host passes traffic to another. Tag each alert with its own technique ID so overlapping hits can be counted once, and review shared data sources such as Network Connection Creation together so the same event does not inflate three separate queues. Confirm the exact mapping for your ATT&CK version before you finalize rule tags.

How do I tune T1104 rules so legitimate relay traffic stops firing?

Start by building an inventory of approved relays, such as load balancers, jump hosts, reverse proxies, backup agents and monitoring collectors, and record their source, destination and port pairs. Exclude those pairs by asset owner and change record rather than by broad subnet, so a compromised relay host still produces alerts for unexpected destinations. Review suppressions on a fixed schedule and require a documented reason for each one. Your own baseline from Network Traffic Flow in Wazuh, Zeek or Security Onion will tell you which relays are normal in your environment.

Which ATT&CK data components should I build T1104 coverage on first?

Prioritize Network Connection Creation (DC0082) and Network Traffic Flow (DC0078). Together they show which hosts talk to which, on what ports and in what sequence, which is the core evidence for a multi-hop channel. Process Creation (DC0032) comes next, because it links a network connection to the process that opened it. Network Traffic Content (DC0085) is useful for deeper validation but usually has the highest storage and privacy cost, so add it once the flow-based logic is stable. Check the current data component descriptions in the ATT&CK STIX bundle for the version you target.

How do I handle ESXi visibility gaps when detecting T1104?

Be explicit about what you can and cannot see. ESXi hosts often generate limited process telemetry, so relay behavior may only be visible through the network path around the hypervisor, such as firewall flow logs, virtual switch mirroring or host-level connection records where they are available. Document each gap in your coverage matrix, name the compensating sensor, and mark the technique as partially covered until you verify it. Confirm with your virtualization platform vendor which logs and mirroring options exist in your version before you rely on them.

How do I map T1104 detections to the ATT&CK version my team uses?

Record the ATT&CK version in every rule's metadata, and pin your mapping to that version's Enterprise STIX bundle. MITRE releases new versions periodically, and releases can rename, deprecate or revoke techniques, so a rule tagged to an older technique ID may need review after an update. Check the ATT&CK updates page each time you upgrade your reference data, and keep a changelog that shows which technique IDs, sub-techniques and detection strategies changed. Ask your team to confirm the version used in your coverage reports before quarterly reviews.

How do I know when a T1104 detection has regressed?

A detection has regressed when it stops producing expected results against known test activity or when a log source it depends on silently stops arriving. Run scheduled validation in a private cyber range that replays benign relay scenarios and confirms the alert still fires, and monitor the volume of each data source so a sudden drop is flagged as a health issue. Track the time between the test and the alert, and record every change to the rule or its exclusions. Set an owner for each rule so a failed validation has a clear path to a fix.

How DeployOpen builds T1104 detections and range scenarios

DeployOpen works on T1104 Multi-stage channels as a fixed-scope engagement inside your own infrastructure, agreed in writing before work starts. The work moves from telemetry review to detection content, cyber range rehearsal and documented handover, with ongoing support available as a retainer.

How we scope

  • Confirm which platforms are in the written scope, such as Linux, macOS, Windows and ESXi hosts for T1104.
  • Inventory existing Network Connection Creation, Process Creation and Network Traffic Flow telemetry and where it is collected today.
  • Agree the ATT&CK version the detections will target, recorded in the written scope, since releases can change technique mappings.

How we build

  • Write detection logic for multi-hop relay behavior in plain language, then express it as Sigma rules and Wazuh or Security Onion content.
  • Map detections to the ATT&CK detection strategies and data components referenced for T1104, noting any gaps in host or network coverage.
  • Tune Network Intrusion Prevention rules on Suricata or Zeek sensors for the networks in scope, with documented exclusions for approved relays.

How we hand over

  • Deliver a cyber range scenario that replays multi-stage channel traffic in a private range so your team can rehearse detection.
  • Provide validation records showing which alerts fired, which did not, and the telemetry each detection depends on.
  • Document runbooks for triage and response, mapped to your own escalation path, and train the analysts who will use them.

How we support

  • Review detection performance after each agreed period of operation and adjust logic when your network or ATT&CK version changes.
  • Retest T1104 detections in the cyber range after upgrades, rule changes or new platform onboarding, under a retainer where agreed.
  • Prepare detection and response evidence for your compliance assessors, while the independent auditor or certification body makes the determination.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.