Back to Intelligence

SynkLoader, BRIDGEHEAD & N4D Mesh: Cross-Platform Credential Theft Wave — OTX Pulse Analysis & Enterprise Detection Pack

SA
Security Arsenal Team
August 21, 2026
10 min read

Threat Summary

Five concurrent OTX pulses published between 2026-08-19 and 2026-08-21 reveal a coordinated surge in credential theft operations spanning social engineering, software supply chain compromise, and autonomous botnet exploitation. While no single named adversary is attributed across all pulses, the tradecraft convergence is unmistakable: threat actors are systematically targeting developer environments, browser credential stores, cryptocurrency wallets, and — in a significant escalation — AI/ML infrastructure credentials.

The attack chains observed break down into three operational clusters:

Cluster 1 — Social Engineering Loader (SynkLoader): Attackers impersonate IT helpdesk personnel over Microsoft Teams, convincing victims to install a fake "PowerShell cleaner" delivered via MSI. The loader is modular and polyglot — bridging Python, C#, C++, and PowerShell in memory — profiling systems and deploying a fake lock screen with reverse-proxy credential phishing.

Cluster 2 — Supply Chain Infostealers (BRIDGEHEAD + Rust Crate Compromise): Two separate but tactically identical campaigns. Forty typosquatted npm packages (mimicking chalk, axios, commander, lodash, react, typescript) drop a 22MB Rust executable from GitHub that runs entirely in memory, crossing from WSL into Windows. In parallel, three legitimate Rust crates (arrayref, internment, append-only-vec) were backdoored via a malicious proc-macro1 dependency — a typosquat of proc-macro2 — executing cross-platform malware at Cargo build time via build.rs and exfiltrating to 23.254.165.112:9089. Both target CI/CD pipelines and developer browser/wallet credentials.

Cluster 3 — AI Infrastructure Botnets (N4D Mesh Controller / NadMesh): Go-based Linux botnets exploiting exposed Model Context Protocol (MCP) servers, Ray dashboards (CVE-2023-48022), Redis (CVE-2016-0638), and 20+ additional vulnerabilities. NadMesh uses Shodan intelligence to prioritize ComfyUI, Ollama, and MCP ecosystems, harvesting AI service credentials, API keys, and Kubernetes secrets at scale. Shared infrastructure (cdnorigin.net, hash ca024acead8f54cfe5b07ac4bdf7fcea) and overlapping pulse timing suggest these may be related or copycat operations.

Collective objective: bulk credential harvesting — browser stores, crypto wallets, cloud/AI API keys, and CI/CD secrets — for monetization through dark web credential markets and initial access brokerage.

Threat Actor / Malware Profile

SynkLoader (Modular Polyglot Loader)

  • Distribution: Microsoft Teams phishing; attackers impersonate IT helpdesk, delivering an MSI installer disguised as a PowerShell cleanup utility.
  • Payload behavior: Multi-language memory-resident chain (PowerShell → C# → C++ → Python). Profiles the host, then deploys a fake lock screen and a reverse-proxy phishing page to capture credentials in real time (adversary-in-the-middle style session theft).
  • C2: Domains including tripinupdate.net, rootfarmapp.net, neversoftmain.net, dondermicapp.net — fast-rotated, thematically mimicking software update services.
  • Persistence: MSI-installed components with staged in-memory payloads minimizing on-disk footprint.
  • Anti-analysis: Language-bridging execution defeats single-engine sandboxing; polyglot payload splitting evades signature-based AV.

BRIDGEHEAD (npm Typosquat / Rust Stealer)

  • Distribution: 40 typosquatted npm packages; malicious install scripts trigger on npm install.
  • Payload behavior: Host profiling with environment gating — executes only on Windows/WSL. Downloads a 22MB Rust binary from GitHub; runs fully in memory (fileless). Steals browser credentials and cryptocurrency wallets; exfiltration via Telegram API.
  • Anti-analysis: In-memory execution, legitimate GitHub hosting for payload staging, cross-boundary WSL→Windows pivoting that evades OS-scoped EDR policies.

proc-macro1 (Rust Crate Backdoor)

  • Distribution: Compromise of maintainer accounts for legitimate crates (arrayref, internment, append-only-vec); malicious proc-macro1 dependency injected.
  • Payload behavior: build.rs build-time execution — malware runs the moment a developer or CI runner compiles, before any code review of runtime behavior is possible. Cross-platform staging from https://23.254.165.112:9089/rust-crate_0.x.0.
  • Persistence: CI/CD compromise implies pipeline-secret theft enabling downstream supply chain propagation.

N4D Mesh Controller / go-titan & NadMesh (Go Botnets)

  • Distribution: Internet-wide autonomous scanning; exploitation of exposed MCP servers, Ray dashboards, Redis instances, Kubernetes; Shodan-driven target prioritization.
  • Payload behavior: UPX-packed go-titan agent (labeled "33.8-go-titan"); credential theft, lateral movement, C2 via rotated infrastructure (209.99.186.235, cdnorigin.net).
  • Exploits: CVE-2023-48022 (Ray), CVE-2016-0638 (Redis/Apache), plus CVE-2026-26220, CVE-2026-27944, CVE-2026-33032, CVE-2026-39987.
  • Anti-analysis: UPX packing, Go cross-compilation, mesh-style C2 resilience.

IOC Analysis

The indicator set spans five operational types, each requiring distinct handling:

TypeExamplesOperationalization
Domains (C2)tripinupdate.net, rootfarmapp.net, neversoftmain.net, dondermicapp.net, cdnorigin.netBlock at DNS sinkhole/proxy; retro-hunt DNS query logs 90 days; alert on newly-registered-domain (NRD) lookups matching update-themed naming
IPv4 (C2/Staging)209.99.186.235, 23.254.165.112:9089Block at egress firewall; hunt NetFlow/proxy logs; flag direct-IP HTTPS on non-standard port 9089
File hashes (MD5/SHA1/SHA256)0428fbde..., 6f088ade..., ca024ace..., fc4109f5...Push to EDR blocklists; SHA256 preferred (MD5/SHA1 included for legacy tooling); cross-match VirusTotal for pivots
URLs (payload staging)https://23.254.165.112:9089/rust-crate_0.[0-4].0URL-filter block; hunt build-agent and CI runner egress logs specifically
CVEsCVE-2023-48022, CVE-2016-0638, 2026-seriesFeed to vuln scanner; prioritize internet-facing Ray, Redis, MCP, Kubernetes assets

Tooling guidance: Ingest indicators into your TIP (OpenCTI, MISP) via OTX DirectConnect/API; decode and pivot using VirusTotal, Shodan (for N4D-exposed services), and urlscan.io for the phishing/loader domains. Hash enrichment via MalwareBazaar confirms family classification. Note that cdnorigin.net and MD5 ca024acead8f54cfe5b07ac4bdf7fcea appear in both the N4D and NadMesh pulses — treat these as high-confidence linking indicators and hunt them first.

Detection Engineering

YAML
---
title: SynkLoader MSI Staging via Teams Phishing — PowerShell Cleaner Lure
id: 8f3a1c2e-7b4d-4e1a-9c5f-2a6b8d0e1f34
status: experimental
description: Detects MSI execution followed by suspicious PowerShell child processes consistent with SynkLoader fake PowerShell-cleaner installs delivered via Microsoft Teams helpdesk phishing.
author: Security Arsenal Threat Intel
date: 2026/08/22
references:
    - https://expel.com/blog/synkloader-when-you-throw-in-everything-but-the-kitchen-sink/
logsource:
    category: process_creation
    product: windows
detection:
    selection_msi:
        ParentImage|endswith:
            - '\Teams.exe'
            - '\ms-teams.exe'
            - '\explorer.exe'
        Image|endswith: '\msiexec.exe'
    selection_ps:
        ParentImage|endswith: '\msiexec.exe'
        Image|endswith:
            - '\powershell.exe'
            - '\pwsh.exe'
        CommandLine|contains:
            - 'clean'
            - 'bypass'
            - '-enc'
            - 'hidden'
            - 'IEX'
    condition: selection_msi or selection_ps
falsepositives:
    - Legitimate IT software deployment via MSI
level: high
tags:
    - attack.initial_access
    - attack.t1566
    - attack.t1204
    - attack.t1059.001
---
title: Build-Time Malware Execution — npm Install Script / Cargo build.rs Staging
id: 4d7e9a1b-2c5f-4a8e-b3d6-9f0c1e2a5b78
status: experimental
description: Detects package managers (npm/node, cargo/rustc) spawning shell or download processes, consistent with BRIDGEHEAD npm typosquat install scripts and proc-macro1 build.rs build-time execution.
author: Security Arsenal Threat Intel
date: 2026/08/22
references:
    - https://www.cloudsek.com/blog/bridgehead-npm-typosquatting-wsl-windows-crypto-wallet-stealer
    - https://socket.dev/blog/popular-rust-crates-compromised
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent:
        ParentImage|endswith:
            - '\node.exe'
            - '\npm.exe'
            - '\cargo.exe'
            - '\rustc.exe'
    selection_child:
        Image|endswith:
            - '\powershell.exe'
            - '\cmd.exe'
            - '\curl.exe'
            - '\certutil.exe'
            - '\wsl.exe'
            - '\rundll32.exe'
    condition: all of selection_*
falsepositives:
    - Legitimate build scripts invoking tooling
level: high
tags:
    - attack.t1195.002
    - attack.t1059
    - attack.execution
---
title: N4D / NadMesh Botnet C2 and Credential Harvest Infrastructure
id: 1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e
status: experimental
description: Detects network connections to known N4D Mesh Controller / NadMesh C2 and staging infrastructure, including cdnorigin.net, 209.99.186.235, and direct-IP HTTPS staging on port 9089.
author: Security Arsenal Threat Intel
date: 2026/08/22
references:
    - https://securitylabs.datadoghq.com/articles/n4d-mesh-controller-go-titan-new-infrastructure-hunting/
    - https://blog.xlab.qianxin.com/nadmesh-botnet-analysis-a-product-grade-threat-for-the-ai-service-era
logsource:
    category: network_connection
    product: windows
detection:
    selection_domain:
        DestinationHostname:
            - 'cdnorigin.net'
            - 'tripinupdate.net'
            - 'rootfarmapp.net'
            - 'neversoftmain.net'
            - 'dondermicapp.net'
    selection_ip:
        DestinationIp:
            - '209.99.186.235'
            - '23.254.165.112'
    condition: 1 of selection_*
falsepositives:
    - Unlikely; these are dedicated malicious infrastructure
level: critical
tags:
    - attack.command_and_control
    - attack.t1071
    - attack.t1056
KQL — Microsoft Sentinel / Defender
// Security Arsenal — Hunt: SynkLoader / BRIDGEHEAD / N4D-NadMesh credential theft wave
// Scope: process + network telemetry across workstations, dev machines, CI runners, and Linux AI infra
let c2_domains = dynamic(["cdnorigin.net","tripinupdate.net","rootfarmapp.net","neversoftmain.net","dondermicapp.net"]);
let c2_ips = dynamic(["209.99.186.235","23.254.165.112"]);
let NetHits = DeviceNetworkEvents
| where TimeGenerated > ago(14d)
| where RemoteUrl in~ (c2_domains) or RemoteIP in (c2_ips)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, ActionType;
let BuildExec = DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where InitiatingProcessFileName in~ ("node.exe","npm.exe","cargo.exe","rustc.exe","wsl.exe","msiexec.exe")
| where FileName in~ ("powershell.exe","cmd.exe","curl.exe","certutil.exe","rundll32.exe","bash.exe","sh")
   or ProcessCommandLine has_any ("9089","rust-crate_0","go-titan","build.rs")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessParentFileName;
let CredAccess = DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where ProcessCommandLine has_any ("Login Data","Cookies","wallet","\\.ollama","kubeconfig","credentials","sekrets")
   or FolderPath has_any ("\\.kube","\\.aws","\\.config\\gcloud")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath;
union NetHits, BuildExec, CredAccess
| sort by TimeGenerated desc
PowerShell
# Security Arsenal IOC Hunt — SynkLoader / N4D-NadMesh / Supply Chain Stealers
# Run elevated on endpoints, dev workstations, and CI runners. Outputs to C:\Hunts\
$OutDir = "C:\Hunts\OTX-2026-08-22"; New-Item -ItemType Directory -Force -Path $OutDir | Out-Null

$BadDomains = @("cdnorigin.net","tripinupdate.net","rootfarmapp.net","neversoftmain.net","dondermicapp.net")
$BadIPs     = @("209.99.186.235","23.254.165.112")
$BadHashes  = @("0428fbdefa8dda10ce8fc12b1b516641e83cd5088388168e3f1a0be1432b4077",
                "151d2a7f52f047638ca8ad80c859c6bfe04d7510fb10933817fa0e3ba5d07a11",
                "6f088ade49456db2422c3edfbb9998f4a3e9cce7c4c00a7279fb45d672a82b7d",
                "52c11f246309cce5556a00408bafb9868622114903dbd8128dc4ce3eca2df27a",
                "6888d4c54ef2b5bf23889f9637c2efe77e1d2af4724d315b73d646cf5547dc73",
                "fc4109f5dd1d30b65dd60e57dc639ac1d313bfa5241e36e61fbc4aabc1cda482")

Write-Host "[1/6] DNS cache check for C2 domains..."
Get-DnsClientCache | Where-Object { $n=$_.Name; $BadDomains | Where-Object { $n -like "*$_*" } } |
  Export-Csv "$OutDir\dns_hits.csv" -NoTypeInformation

Write-Host "[2/6] Active/historical TCP connections to C2 IPs..."
Get-NetTCPConnection | Where-Object { $BadIPs -contains $_.RemoteAddress } |
  Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess |
  Export-Csv "$OutDir\net_hits.csv" -NoTypeInformation

Write-Host "[3/6] Hash sweep of common staging paths (Temp, Downloads, ProgramData, npm/cargo caches)..."
$Paths = @("$env:TEMP","$env:USERPROFILE\Downloads","C:\ProgramData",
           "$env:USERPROFILE\AppData\Local\npm-cache","$env:USERPROFILE\.cargo\registry")
foreach ($p in $Paths) { if (Test-Path $p) {
  Get-ChildItem $p -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
    $h = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
    if ($BadHashes -contains $h) { "HIT: $($_.FullName) [$h]" | Out-File "$OutDir\hash_hits.txt" -Append }
  } } }

Write-Host "[4/6] Scheduled tasks & Run-key persistence referencing suspicious binaries..."
Get-ScheduledTask | Where-Object { $_.Actions.Execute -match 'powershell|node|msiexec|wsl' -and
  $_.Actions.Arguments -match 'clean|9089|rust-crate|titan' } |
  Export-Csv "$OutDir\task_hits.csv" -NoTypeInformation
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",
                 "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -ErrorAction SilentlyContinue |
  Out-File "$OutDir\runkeys.txt"

Write-Host "[5/6] Typosquat package check in local node_modules / cargo registry..."
$Suspicious = @("proc-macro1","proc-macro-en","chalk-","axioss","lodashs","commander-")
foreach ($p in $Paths) { if (Test-Path $p) {
  Get-ChildItem $p -Recurse -Directory -ErrorAction SilentlyContinue |
    Where-Object { $n=$_.Name; $Suspicious | Where-Object { $n -like "$_*" } } |
    Select-Object -ExpandProperty FullName | Out-File "$OutDir\package_hits.txt" -Append } }

Write-Host "[6/6] AI-infra credential exposure check (Ollama/ComfyUI/kubeconfig)..."
@("$env:USERPROFILE\.kube\config","$env:USERPROFILE\.ollama","$env:USERPROFILE\.aws\credentials") |
  ForEach-Object { if (Test-Path $_) { "EXPOSED: $_" | Out-File "$OutDir\cred_exposure.txt" -Append } }

Write-Host "Hunt complete. Review artifacts in $OutDir"

Response Priorities

Immediate (0–4 hours):

  • Block all listed C2 domains (tripinupdate.net, rootfarmapp.net, neversoftmain.net, dondermicapp.net, cdnorigin.net) and IPs (209.99.186.235, 23.254.165.112) at DNS, proxy, and egress firewall layers — including port 9089.
  • Push all SHA256 indicators to EDR blocklists; execute the PowerShell hunt script fleet-wide with priority on developer workstations and CI runners.
  • Audit npm/Cargo dependency trees for the 40 BRIDGEHEAD typosquats, proc-macro1, and proc-macro-en; pin and verify lockfiles.
  • Inventory internet-facing MCP servers, Ray dashboards (CVE-2023-48022), Redis, and ComfyUI/Ollama instances via Shodan/attack-surface tooling; take exposed instances offline or behind auth immediately.

24 hours:

  • Treat all systems with confirmed loader/stealer execution as fully credential-compromised: force password resets, revoke sessions and refresh tokens, rotate browser-saved credentials, crypto-wallet keys, SSH keys, cloud API keys, Kubernetes service-account tokens, and AI-service API keys (OpenAI/Ollama/Hugging Face).
  • Review Microsoft Teams external-collaboration logs for helpdesk-impersonation chats; consider restricting external Teams messaging.
  • Audit Telegram API egress (api.telegram.org) from endpoints for BRIDGEHEAD exfiltration.

1 week:

  • Enforce dependency-allowlisting and private registry proxies (Artifactory/Nexus) with typosquat detection (Socket, Snyk); disable build-script execution by default in CI (npm ci --ignore-scripts where feasible).
  • Segment AI/ML infrastructure; require authentication on MCP, Ray, and Redis; patch CVE-2023-48022 and CVE-2016-0638 and validate the 2026-series CVEs against vendor advisories.
  • Deploy the Sigma rules and Sentinel KQL above into production detection; schedule weekly retro-hunts as N4D infrastructure rotates.
  • Brief helpdesk staff and end users on Teams-based IT impersonation; implement out-of-band verification for any IT-initiated software installs.

Related Resources

Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.