Fire Ant: China-Nexus Actor Burrows into Cisco IOS XR Routers

·

On August 31, 2026, incident-response firm Sygnia published new detail on Fire Ant, a China-nexus intrusion set whose tooling and tradecraft overlap with UNC3886. Where most actors fight for a foothold on endpoints, Fire Ant lives one layer lower — inside Cisco IOS XR routers, TACACS+ authentication servers, Linux management hosts, and VMware hypervisors.

The campaign is defined by patience and log discipline: implants that filter the router's own outgoing logs for the word "Health," a command path rewritten to hide configuration, credential theft hooked directly into TACACS+, and Linux backdoors that masquerade as Zabbix monitoring or SentinelOne and Cybereason agents. Components planted in 2025 were still being reused in 2026.

◈ Table of Contents

01 The Threat Actor 02 Kill Chain & TTPs 03 Implant Toolset 04 Indicators of Compromise 05 Detection & Hunt 06 MITRE ATT&CK Mapping 07 Sources
🐜

The Threat Actor

Phase 01
AttributeDetail
ClusterFire Ant
OverlapUNC3886 (China-nexus espionage) — Sygnia notes overlap, no conclusive attribution
FocusNetwork edge & virtualization: routers, TACACS+, Linux jump hosts, ESXi/vCenter
ObjectiveLong-dwell espionage and persistent network control
Reported bySygnia (incident response)
TimelineInitial VMware activity disclosed July 2025; hands-on activity continuing into 2026

Fire Ant targets exactly the assets most EDR deployments can't see: appliances and hypervisors. Any threat model that assumes "we have endpoint coverage" underestimates an actor who never touches a Windows endpoint agent.

⛓️

Kill Chain & TTPs

Phase 02
Fire Ant kill chain reconstructed from Sygnia reporting.
1Router-level stealth on IOS XREdge
On Cisco IOS XR routers, the actor stood up a GRE tunnel interface with no running configuration, modified a system library to filter outgoing logs for the "Health" string, and appended an | exclude filter to the command-execution path so its own configuration never shows in operator output.
Observed behaviours
  • 1
    Hidden GRE tunnel interface operating without a visible running config.
  • 2
    Boot persistence via /etc/rc.d/init.d/grub-rommon.
  • 3
    Packet captures collected on-device and pushed to external FTP servers.
2TACACS+ credential hijack (TacTap)Creds
The TacTap toolset uses library injection to hook the functions that accept new TACACS+ connections, writing captured credentials to /var/log/.tacplus.acct obfuscated with a single-byte XOR (key 0xEF). Owning TACACS+ means owning authentication for the whole managed network fabric.
3Linux persistence & anti-forensicsHosts
On Linux hosts, Fire Ant deployed the Medusa and REPTILE rootkits, custom SSH backdoors, and binaries impersonating SentinelOne and Cybereason agents. A BridgeAgent backdoor masqueraded as a Zabbix agent, persisting via a zabbix_agent.service systemd unit and beaconing over TLS on port 443. SELinux was disabled and login/privileged-command history rewritten.

The "Health"-string log filter is the signature move here: the router still logs, but the operator's own noise is scrubbed before it leaves the box. Trusting on-device show output during triage of a suspected edge compromise is exactly the mistake this tradecraft is built to exploit.

🧰

Implant Toolset

Phase 03
ImplantRoleNotes
TacTapTACACS+ credential theftLibrary injection; XOR 0xEF to .tacplus.acct
BridgeAgentLinux backdoorFake Zabbix agent; TLS/443; systemd persistence
Medusa / REPTILERootkitsKernel/user-mode hiding on Linux hosts
VMCI backdoorHypervisor comms/var/tmp/audit — guest/host channel
Packet-triggered backdoorDormant listener/var/tmp/ping — wakes on crafted packet
Fake EDR binariesMasqueradeImpersonate SentinelOne / Cybereason agents
🔎

Indicators of Compromise

Phase 04
ArtifactPathSHA1
TacTap/usr/sbin/acppid36005f5e4398a1c62a2a9271eddfcc1b44b1ad00
TacTap lib/lib/libseconfd.so955cd45a2f6f226a2fdf44b329af1c8dde90cb38
IOS XR implant/usr/bin/acpidbe6b27f429324a4af05a310d8ec9635e37c68a94
IOS XR implant/pkg/bin/dhcpd_show_issu_status1682b652a15bde732489f22809b0b7594c228fd3
IOS XR implant/pkg/bin/hdb149fa3a34bd585e7a674a4fd9538437bd06f514
VMCI backdoor/var/tmp/audit13f0c2a598e3aa63856c032a96b110aed963f0e8
Packet backdoor/var/tmp/ping5ba1242050b5b447052b210788a5a25593d6987d
Credential file/var/log/.tacplus.acctXOR 0xEF-obfuscated captured creds
Config (BridgeAgent)/opt/.ICEauthorityEncrypted config; persist via zabbix_agent.service
📡

Detection & Hunt

Phase 05

Hunt from a vantage point the implants cannot rewrite: out-of-band collection, external NetFlow, and file-integrity baselines rather than on-device output.

Shell — host triage (run from trusted media)
# Hidden dot-files in world paths + fake-agent systemd units $ ls -la /var/tmp/audit /var/tmp/ping /var/log/.tacplus.acct /opt/.ICEauthority $ systemctl cat zabbix_agent.service 2>/dev/null | grep -iE 'ExecStart|/opt/' $ sha1sum /usr/sbin/acppid /lib/libseconfd.so /usr/bin/acpid 2>/dev/null $ getenforce # unexpected 'Disabled' on a hardened host = flag
KQL — Sentinel (NetFlow / firewall)
// Router or Linux host initiating outbound FTP (PCAP exfil) CommonSecurityLog | where DestinationPort in (20, 21) | where DeviceVendor has_any ("Cisco", "Linux") | summarize bytes=sum(SentBytes), sessions=count() by SourceIP, DestinationIP | where bytes > 50000000 | sort by bytes desc
SPL — Splunk (auth server behaviour)
# TACACS+ host writing to /var/log dot-files or spawning shells index=linux sourcetype=auditd (path="/var/log/.tacplus.acct" OR path="/lib/libseconfd.so") | stats count values(exe) as exe by host, path | sort - count
Hunt priorities
  • File-integrity drift on IOS XR system binaries vs. known-good images
  • GRE tunnel interfaces with no corresponding running config
  • Outbound FTP from routers or management hosts (PCAP staging)
  • SELinux unexpectedly disabled; rewritten shell history
  • "Zabbix", "SentinelOne" or "Cybereason" binaries with wrong hashes/paths
🎯

MITRE ATT&CK Mapping

Phase 06
TacticTechniqueUse
Command & ControlT1071 Application Layer ProtocolBridgeAgent TLS/443 beacon
PersistenceT1547 Boot/Logon Autostartsystemd unit + grub-rommon init script
Defense EvasionT1140 Deobfuscate/DecodeXOR key 0xEF credential store
Defense EvasionT1562 Impair DefensesLog filtering, SELinux disabled, history wipe
CollectionT1040 Network SniffingOn-device PCAP capture
Credential AccessT1556 Modify Authentication ProcessTACACS+ connection hooking
📚

Sources

Phase 07
The Hacker News — China-linked Fire Ant hijacks Cisco routers Sygnia — Fire Ant threat reports & advisories MITRE ATT&CK — UNC3886 (overlapping cluster reference)

Fire Ant proves the network edge is inside your threat model whether you monitor it or not. Baseline your appliance and hypervisor images, then check the artifact hashes above against the CyberHawk IOC Scanner and follow live campaign tracking on Threat Intel.

◈ Stay Connected

Follow CyberHawk Threat Intel for threat intelligence, deployment guides and hands-on SOC tooling content.

🌐 Website ▶️ YouTube ▶️ YouTube (2) 𝕏 Twitter / X ♪ TikTok ✈️ Telegram
🔍 IOC Scanner 🛠️ Live Tools 📚 Courses 🚨 Threat Intel 📝 Blog 📋 SOPs

"They can't exploit you if you are the Exploit."