Industrial Protocol Abuse on Legacy Manufacturing Assets
Adversaries target legacy Windows 7 and XP systems used as HMIs to bridge into OT networks by using unencrypted management protocols like Telnet and FTP for lateral movement.
Based on research by Huntress 2026-10-15 9 steps · 3 queries T1021.002 T1133 T1195 T1572
Brief
The Manufacturing Security
GapIn many industrial environments, the hardware that controls the plant floor is decades old. These systems, often running Windows XP or Windows 7, cannot be patched without risking production downtime or violating vendor support agreements. As noted in the Huntress report "7 Key Manufacturing Cybersecurity Trends for 2027" (https://www.huntress.com/blog/manufacturing-cybersecurity-trends), these aging assets remain a primary target for adversaries looking to bridge the gap between IT and OT networks.
The
HypothesisAdversaries exploit unencrypted management protocols on legacy HMIs to move laterally within industrial networks. Because these systems lack modern protections, attackers use services like Telnet and FTP to establish control and pivot into deeper OT segments without triggering standard alerts.
Phase 1: Inventorying Legacy
AssetsThe hunt begins by identifying every Windows 7 and Windows XP device in the environment. We query the device inventory to build a target list of workstations that likely serve as Human-Machine Interfaces or industrial controllers. This scoping step ensures that subsequent network queries focus only on the most vulnerable systems.
Phase 2: Detecting Inbound
ExposureOnce we have a list of legacy hosts, the hunt examines inbound network traffic. We look specifically for established connections on ports 21 (FTP), 23 (Telnet), and 80 (HTTP). While these protocols might be used for legitimate maintenance by local technicians, they expose credentials in cleartext and provide a simple entry point for an adversary.
Phase 3: Baselining Lateral
MovementThe most critical phase of the hunt involves stacking outbound connections from these legacy hosts. We baseline the destinations and frequency of Telnet and FTP traffic leaving the HMIs. If a workstation that usually only talks to a specific PLC suddenly attempts to connect to multiple internal assets, it suggests the host is being used as a jump box. We filter for rare destinations to highlight anomalous pivots.
Phase 4: Automated
TriageAn agent triages the results by correlating the OS version with the presence of inbound insecure sessions and rare outbound traffic. This reduces the noise for the analyst, providing a per-host verdict. If a host shows both insecure inbound management and rare outbound connections, it receives a high-risk rating for immediate review.
Blind
SpotsThis hunt has two primary limitations. First, it relies on port-based detection. If an adversary tunnels Telnet traffic inside another protocol (T1572), simple port queries will not see the activity. Deep Packet Inspection would be required to unmask such tunneling. Second, the hunt only identifies active sessions. Insecure services that are listening but have not been accessed during the lookback window will not appear in the results.
Running the
HuntThis hunt is packaged as a hunt.md playbook. You can import it directly into Huntbase or any runtime that supports the hunt.md format. The playbook guides you through the inventory, traffic analysis, and automated triage steps to secure your legacy industrial assets.
In this series
Steps
-
Inventory legacy Windows assets
Query · scopingIdentify Windows 7 and Windows XP systems that likely serve as HMIs or legacy industrial controllers.
reads hb_devicessqlSELECT hostname, os_name, os_version, device_uid, time FROM hb_devices WHERE (LOWER(os_name) LIKE '%windows 7%' OR LOWER(os_name) LIKE '%windows xp%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')What a hit looks like. A list of hosts running outdated operating systems. These are the primary targets for monitoring insecure protocol usage.
-
Inbound insecure management sessions
Query · detection candidateDetect when hosts connect to Telnet, FTP, or unencrypted HTTP on legacy manufacturing systems.
reads hb_network_connectionsqlSELECT device_hostname, src_endpoint_ip, dst_endpoint_port, process_name, time FROM hb_network_connection WHERE direction = 'inbound' AND activity_id = 1 AND instr(',' || '{{insecure_ports}}' || ',', ',' || CAST(dst_endpoint_port AS TEXT) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')What a hit looks like. Sessions established to ports 21, 23, or 80. While potentially for maintenance, these expose credentials and allow command access.
-
Baseline outbound lateral movement
Query · baselineIdentify if legacy systems are being used as jump boxes to scan or connect to other internal OT assets via Telnet or FTP.
reads hb_network_connectionsqlSELECT device_hostname, dst_endpoint_ip, dst_endpoint_port, COUNT(*) AS connection_count, MIN(time) AS first_seen FROM hb_network_connection WHERE direction = 'outbound' AND (dst_endpoint_port = 21 OR dst_endpoint_port = 23) AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY device_hostname, dst_endpoint_ip, dst_endpoint_portWhat a hit looks like. A stack-count of outbound legacy protocol attempts. Rare destinations or high connection counts from a single HMI suggest malicious pivoting.
-
Triage legacy protocol abuse
Agent triageThe agent weighs the OS version, the existence of inbound unencrypted sessions, and any rare outbound pivoting to determine risk.
-
Evaluate triage results
DecisionRoute malicious findings to containment and suspicious exposure to manual review.
-
Isolate legacy asset
Response actionImmediately prevent further lateral movement from a confirmed compromised legacy host.
-
Manual audit of legacy listeners
Analyst taskVerify if the detected unencrypted management services are business-critical and require compensating controls.
-
Hunt closure and documentation
Analyst taskDocument identified legacy assets and update the asset inventory to reflect current OS versions and service exposure.
Coverage
Scenario coverage
| Stage | Covered | How, or why not |
|---|---|---|
| Legacy Industrial Asset Discovery T1133 |
Yes | legacy-host-inventory, insecure-inbound-traffic |
| Lateral Movement via Tunneling T1572 |
Yes | lateral-outbound-stack |
| Corporate Phishing Foothold T1566 |
Out of scope | Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends for 2027 | Huntress' series. |
| Compromised Third-Party Vendor Access T1195 |
Out of scope | Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends for 2027 | Huntress' series. |
| IT-to-OT Bridge Access T1133 |
Out of scope | Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends for 2027 | Huntress' series. |
| Operational Technology Ransomware Impact T1486 |
Out of scope | Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends for 2027 | Huntress' series. |
Blind spots
- Needs Deep Packet Inspection (DPI) or internal firewall logs. A sophisticated adversary might tunnel Telnet inside another protocol, making the connection appear benign to simple port-based queries. It would answer whether protocol tunneling (T1572) is masking the internal insecure traffic. Remediation: Enable application-layer visibility on internal segmentation firewalls.
- Needs hb_network_listener with device_hostname column. The hunt only sees services that are actively being talked to. Insecure services waiting for a 'knock' are missed if no connection occurs in the window. It would answer which ports are listening on legacy hosts without active sessions. Remediation: Map device_hostname into the hb_network_listener surface.
Parameters & data
Parameters
| Parameter | Type | Default | What it is |
|---|---|---|---|
insecure_ports | list[string] | 21, 23, 80 | Unencrypted ports commonly used for legacy management (FTP, Telnet, HTTP). |
lookback_days | number | 14 | Days of history to examine. |
scope_hosts | list[host] | — | Hostnames of legacy Windows systems identified in the inventory step; leave empty to hunt across the entire estate. |
Telemetry
| Source | Category | Telemetry |
|---|---|---|
| Endpoint telemetry (hb_ surfaces) | endpoint | endpoint |
| Network telemetry | network | network |
Source
---
analysis: While a rule can alert on Telnet traffic, this hunt correlates traffic with
legacy OS inventory and baselines outbound movement from those systems to identify
internal pivots that standard perimeter rules miss.
blind_spots:
- id: incomplete-network-telemetry
question: whether protocol tunneling (T1572) is masking the internal insecure traffic
remediation: Enable application-layer visibility on internal segmentation firewalls.
requires: Deep Packet Inspection (DPI) or internal firewall logs
risk: A sophisticated adversary might tunnel Telnet inside another protocol, making
the connection appear benign to simple port-based queries.
stage: lateral-protocol-tunneling
- id: missing-host-listeners
question: which ports are listening on legacy hosts without active sessions
remediation: Map device_hostname into the hb_network_listener surface.
requires: hb_network_listener with device_hostname column
risk: The hunt only sees services that are actively being talked to. Insecure services
waiting for a 'knock' are missed if no connection occurs in the window.
stage: legacy-system-discovery
coverage:
- stage: legacy-system-discovery
status: covered
steps:
- legacy-host-inventory
- insecure-inbound-traffic
- stage: lateral-protocol-tunneling
status: covered
steps:
- lateral-outbound-stack
- reason: Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends
for 2027 | Huntress' series.
stage: phishing-initial-foothold
status: out_of_scope
- reason: Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends
for 2027 | Huntress' series.
stage: third-party-supply-chain-entry
status: out_of_scope
- reason: Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends
for 2027 | Huntress' series.
stage: it-ot-gateway-bridging
status: out_of_scope
- reason: Belongs to another part of the '7 Key Manufacturing Cybersecurity Trends
for 2027 | Huntress' series.
stage: ot-impact-ransomware
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: Production continuity in manufacturing relies on the security of
aging HMIs. Identifying unencrypted management exposure reduces the risk of lateral
movement into critical OT segments.
methodology: model-assisted
trigger: intel-report
hypothesis: Adversaries target legacy Windows 7 and XP systems used as HMIs to bridge
into OT networks by using unencrypted management protocols like Telnet and FTP for
lateral movement.
labels:
- hunt
- attack.t1133
- attack.t1572
- attack.t1021.002
- attack.t1195
- command and control
- discovery
- impact
- initial access
name: Industrial Protocol Abuse on Legacy Manufacturing Assets
parameters:
insecure_ports:
default:
- '21'
- '23'
- '80'
description: Unencrypted ports commonly used for legacy management (FTP, Telnet,
HTTP).
from:
kind: article
observed: '2026-10-14'
ref: Huntress Manufacturing Trends 2026
type: list[string]
lookback_days:
default: '14'
description: Days of history to examine.
type: number
scope_hosts:
default: []
description: Hostnames of legacy Windows systems identified in the inventory step;
leave empty to hunt across the entire estate.
type: list[host]
provenance:
authors:
- name: Huntbase hunt generation
org: huntbase.io
generated:
by: huntbase-hunt-generation
from: https://www.huntress.com/blog/manufacturing-cybersecurity-trends
gates:
- dry-run
- lint
- critic
model: hb_google/gemini-3-flash-preview
rationale: Focus on subnets known to house HMI or PLC management workstations. Use
the OS names to build a target list of legacy devices before proceeding to the network
traffic queries.
references:
- name: "Huntress \u2014 7 Key Manufacturing Cybersecurity Trends for 2027"
url: https://www.huntress.com/blog/manufacturing-cybersecurity-trends
related:
- hunt: it-ot-gateway-bridging
reason: This hunt focuses on the internal legacy systems, not the initial bridge
from the IT network.
relation: out-of-scope-alternative
- hunt: abuse-remote-gateways-third-party-access
relation: follows
scenario:
stages:
- name: Corporate Phishing Foothold
observables:
- Phishing emails targeting Sales or Finance departments
- Execution of malicious attachments on corporate laptops
slug: phishing-initial-foothold
tactic: initial-access
techniques:
- T1566
- name: Compromised Third-Party Vendor Access
observables:
- Use of stolen credentials from specialized machine integrators or HVAC contractors
- Persistent 'always-on' VPN links from vendor networks
- Remote management tool logins appearing as routine maintenance
slug: third-party-supply-chain-entry
tactic: initial-access
techniques:
- T1195
- name: IT-to-OT Bridge Access
observables:
- Access to Citrix or VPN appliances acting as bridges
- Logins to jump servers positioned between corporate and plant networks
- Stolen credentials used to cross network segmentation boundaries
slug: it-ot-gateway-bridging
tactic: initial-access
techniques:
- T1133
- name: Legacy Industrial Asset Discovery
observables:
- Windows 7 and Windows XP systems running as HMIs
- Legacy PLCs with hard-coded passwords like '1234' or 'password'
- Unencrypted management ports active on legacy execution systems
slug: legacy-system-discovery
tactic: discovery
techniques:
- T1133
- name: Lateral Movement via Tunneling
observables:
- Encapsulated network traffic traversing segment digital walls
- Lateral movement using Telnet (port 23), FTP (port 21), or unencrypted HTTP
(port 80)
- Connections to Human-Machine Interfaces (HMIs) and Programmable Logic Controllers
(PLCs)
slug: lateral-protocol-tunneling
tactic: command-and-control
techniques:
- T1572
- name: Operational Technology Ransomware Impact
observables:
- Encryption of files on Manufacturing Execution Systems (MES)
- Manipulation of PLC recipe values or belt speed
- Disabling of safety sensors on the plant floor
slug: ot-impact-ransomware
tactic: impact
techniques:
- T1486
summary: Attackers target manufacturing environments by gaining a corporate foothold
via phishing or compromised third-party vendor VPNs, subsequently pivoting into
operational technology (OT) networks through jump servers or poorly segmented
bridges. Once inside, they exploit legacy systems and unencrypted protocols (Telnet,
HTTP) to manipulate industrial control systems or deploy ransomware that disrupts
production uptime and assembly lines.
series:
index: 2
slug: 7-key-manufacturing-cybersecurity-trends-for-2027-huntress
title: 7 Key Manufacturing Cybersecurity Trends for 2027 | Huntress
total: 2
severity: medium
targets:
analyst:
name: Tier-2 analyst
role: analyst
endpoint:
category: endpoint
name: Endpoint telemetry (hb_ surfaces)
telemetry:
- endpoint
hunter:
agent: true
name: Hunt agent
network:
category: network
name: Network telemetry
telemetry:
- network
tlp: clear
type: investigation
---
# Industrial Protocol Abuse on Legacy Manufacturing Assets
Manufacturing environments often rely on legacy Windows systems (HMI/ICS) that cannot be patched and lack modern security controls. The adversary exploits these systems to bridge the gap into OT networks. This hunt identifies these soft targets and monitors for unencrypted protocol abuse. It inventories legacy OS versions, then fans out to detect inbound management sessions on insecure ports and outbound lateral movement to other internal assets. An agent triages the evidence so an analyst can settle the verdict.
## legacy-host-inventory
<!-- Inventory legacy Windows assets -->
Identify Windows 7 and Windows XP systems that likely serve as HMIs or legacy industrial controllers.
```sqlite target=endpoint role=scoping params=(lookback_days=lookback_days, scope_hosts=scope_hosts)
~~~yaml
expected: A list of hosts running outdated operating systems. These are the primary
targets for monitoring insecure protocol usage.
reads:
- hostname
- os_name
- os_version
- device_uid
- time
silence: not_evidence_of_absence
source: hb_devices
verified: dry-run
verified_at: '2026-10-15'
~~~
SELECT hostname, os_name, os_version, device_uid, time FROM hb_devices WHERE (LOWER(os_name) LIKE '%windows 7%' OR LOWER(os_name) LIKE '%windows xp%') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')
```
## exposure-fan-out
<!-- Corroborate inbound and outbound exposure -->
parallel:
- → insecure-inbound-traffic
- → lateral-outbound-stack
join: → triage-agent
## insecure-inbound-traffic
<!-- Inbound insecure management sessions -->
Detect when hosts connect to Telnet, FTP, or unencrypted HTTP on legacy manufacturing systems.
```sqlite target=network role=detection-candidate params=(insecure_ports=insecure_ports, scope_hosts=scope_hosts, lookback_days=lookback_days)
~~~yaml
expected: Sessions established to ports 21, 23, or 80. While potentially for maintenance,
these expose credentials and allow command access.
reads:
- device_hostname
- src_endpoint_ip
- dst_endpoint_port
- process_name
- time
silence: not_evidence_of_absence
source: hb_network_connection
verified: dry-run
verified_at: '2026-10-15'
~~~
SELECT device_hostname, src_endpoint_ip, dst_endpoint_port, process_name, time FROM hb_network_connection WHERE direction = 'inbound' AND activity_id = 1 AND instr(',' || '{{insecure_ports}}' || ',', ',' || CAST(dst_endpoint_port AS TEXT) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days')
```
## lateral-outbound-stack
<!-- Baseline outbound lateral movement -->
Identify if legacy systems are being used as jump boxes to scan or connect to other internal OT assets via Telnet or FTP.
```sqlite target=network role=baseline params=(scope_hosts=scope_hosts, lookback_days=lookback_days)
~~~yaml
baseline:
compare: first_seen
window: '{{lookback_days}}d'
expected: A stack-count of outbound legacy protocol attempts. Rare destinations or
high connection counts from a single HMI suggest malicious pivoting.
prevalence:
by: device_hostname
key:
- dst_endpoint_ip
rare_below: 3
reads:
- device_hostname
- dst_endpoint_ip
- dst_endpoint_port
- time
silence: not_evidence_of_absence
source: hb_network_connection
verified: dry-run
verified_at: '2026-10-15'
~~~
SELECT device_hostname, dst_endpoint_ip, dst_endpoint_port, COUNT(*) AS connection_count, MIN(time) AS first_seen FROM hb_network_connection WHERE direction = 'outbound' AND (dst_endpoint_port = 21 OR dst_endpoint_port = 23) AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY device_hostname, dst_endpoint_ip, dst_endpoint_port
```
## triage-agent
<!-- Triage legacy protocol abuse -->
```agent target=hunter
cite: required
context:
- legacy-host-inventory
- insecure-inbound-traffic
- lateral-outbound-stack
max_iterations: 6
objective: Determine if any legacy Windows host identified in the inventory is being
abused as a lateral movement pivot point or is accepting unauthorized unencrypted
management traffic.
success_criteria: A detailed verdict citing row evidence for each host showing high-risk
exposure.
tools:
- endpoint
- network
```
## risk-decision
<!-- Evaluate triage results -->
if~: "the triage verdict is malicious for at least one legacy host exhibiting rare outbound pivoting" (confidence: high, judge=hunter)
then: → isolate-host
indeterminate: → audit-task
unavailable: → audit-task (blind_spot: incomplete-network-telemetry)
else: → audit-task
## isolate-host
<!-- Isolate legacy asset -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the identified legacy host from the network. Coordinate with the plant floor manager to ensure production safety systems are not impacted by the isolation.
```
→ audit-task
## audit-task
<!-- Manual audit of legacy listeners -->
```manual target=analyst
Review the identified hosts. If Telnet, FTP, or HTTP (port 80) are being used for routine administration, implement strict IP-based segmentation or plan for migration to a secure jump server. If the traffic is anomalous, perform a full forensic imaging of the host.
```
→ closure-task
## closure-task
<!-- Hunt closure and documentation -->
```manual target=analyst
Log the identified legacy systems in the central asset registry. Share the protocol abuse findings with the IT-OT gateway team to improve segmentation rules.
```
→ 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, critic, then reviewed by a person.