Back to Intelligence

PIVOTPIPE .NET Beacon & Mythic C2 Infrastructure at Scale: OTX Pulse Analysis — Enterprise Detection Pack

SA
Security Arsenal Team
September 16, 2026
11 min read

Intelligence Category: Active Malware Campaigns & Criminal Tooling
Pulse Count: 2 | TLP: WHITE | Attribution: Unknown / Unattributed Criminal & Red-Team Tooling


Threat Summary

Two AlienVault OTX pulses converging on the same theme define this briefing: the continued industrialization of command-and-control tooling outside the traditional Cobalt Strike ecosystem.

Pulse 1 — PIVOTPIPE (.NET Beacon): In July 2026, IIJ's security research team (sect.iij.ad.jp) discovered a previously unknown .NET-based malicious tool hosted on an open/public directory. PIVOTPIPE functionally clones Cobalt Strike Beacon — it communicates with C2 servers using near-default Beacon profile configurations, supports a rich C2 command set, and is engineered for EDR evasion. Critically, it is not official Beacon code: it is an unofficial reimplementation with unique internal behaviors, meaning signature sets tuned exclusively to canonical Beacon artifacts may miss it. This is the same trajectory we observed with Sliver, Brute Ratel, and Havoc — cracked or reimplemented post-exploitation frameworks eroding the detection monopoly defenders held on Malleable C2 profiles.

Pulse 2 — Mythic C2 at Internet Scale: Censys internet-wide scanning identified 131 unique hosts publicly exposing Mythic C2 infrastructure. Mythic is a legitimate open-source, plugin-based C2 framework used by red teams (agents include Apollo, nyx, and fys2), but its presence on commodity VPS providers — DigitalOcean, GoDaddy, 1337 Services GmbH — strongly indicates adversary staging. Several of the identified hosts sit on ASNs with no legitimate red-team rationale (e.g., 170.64.183.242 on an unregistered ASN).

Collective picture: Threat actors are diversifying away from licensed/cracked Cobalt Strike toward (a) bespoke reimplementations (PIVOTPIPE) that inherit Beacon's command grammar but evade Beacon-specific signatures, and (b) open-source C2 frameworks (Mythic) hosted on cheap, disposable cloud infrastructure. The objective across both pulses is the same: resilient, low-attribution post-exploitation command-and-control with EDR bypass as a first-class feature.


Threat Actor / Malware Profile

PIVOTPIPE (.NET Unofficial Beacon)

AttributeDetail
FamilyPIVOTPIPE (loader + payload), functionally analogous to Cobalt Strike Beacon (S0154)
Platform.NET (managed code executable)
DistributionStaged on a public/open directory — likely delivered via secondary loader, phishing dropper, or post-compromise pull from attacker infrastructure
Payload BehaviorImplements a Beacon-like command set: tasking loop, sleep/jitter intervals, command execution, file operations, and pivoting support (consistent with the name's pipe-pivot implication — SMB named-pipe style lateral C2 is a likely capability)
C2 CommunicationUses configurations close to Cobalt Strike default profiles — meaning HTTP(S) GET/POST tasking with metadata in URI/cookie/headers resembling stock Malleable C2 defaults (e.g., /jquery-3.3.1.min.js-style URIs, 8-byte metadata blobs)
PersistenceNot statically confirmed in the pulse; operators deploying Beacon-like implants typically pair with registry Run keys, scheduled tasks, or WMI event subscriptions — hunt accordingly
Anti-AnalysisExplicitly tagged EDR evasion. As a .NET binary, expect obfuscation (ConfuserEx-style), in-memory assembly loading (Assembly.Load from byte arrays), AMSI patching via amsi.dll memory writes, and sleep-based sandbox evasion before C2 check-in

Mythic C2 Framework (Apollo / nyx / fys2 agents)

AttributeDetail
FamilyMythic open-source C2 (github.com/its-a-feature/Mythic); agents observed: Apollo (.NET Windows agent), nyx, fys2
Infrastructure131 internet-exposed servers; concentrations on DigitalOcean (AS14061), GoDaddy (AS26496/AS398101), Methean Professional (AS25752), 1337 Services GmbH (AS210558)
C2 CommunicationMythic agents default to HTTP(S) profiles on ports 80/443/7443; Apollo uses encrypted HTTP tasking with base64-wrapped JSON blobs; the Mythic operator UI exposes a distinctive web login panel detectable via internet scanning (Censys/Shodan)
Legitimate vs MaliciousRed teams use Mythic for authorized engagements; however, exposure of 131 servers on commodity hosting with no organizational attribution is a strong unauthorized-intrusion signal. Validate against your own red-team program before blocking internal detections

IOC Analysis

Indicator types present across the two pulses:

  • FileHash-SHA256 (x3): PIVOTPIPE payload/loader samples. High-fidelity, low-false-positive. Push to EDR blocklists, proxy file-reputation, and email gateway detonation block lists immediately. Hashes rot fast — expect recompilation; treat as point-in-time.
  • FileHash-SHA1 (x1): 9c20927c77efe4119dc46fabf1a6cffebf0acc63 — dual-purposed as a YARA rule reference detecting the PIVOTPIPE Loader Payload. Deploy the YARA rule to your EDR's custom-rule engine (CrowdStrike Custom IOA, Defender custom indicators via YARA in MDE Live Response, Velociraptor) for variant discovery beyond the static hashes.
  • IPv4 (x7): Mythic C2 servers on US/DE hosting. These are blockable at egress firewall/proxy with moderate confidence. Note: IPs on GoDaddy/DigitalOcean churn; combine IP blocking with the Mythic HTTP profile behavioral detections below rather than relying on IP lists alone.

Operationalization guidance for SOC teams:

  1. Ingest all 5 PIVOTPIPE hashes into your EDR prevention (not just detection) policy.
  2. Add the 7 IPv4s to egress deny lists and retroactively hunt NetFlow/proxy logs for 90 days of historical contact — Mythic operators stage infrastructure weeks before campaign use.
  3. Deploy the provided YARA rule for the PIVOTPIPE loader to catch recompiled variants sharing loader code.
  4. Feed the IPs into your TI platform (MISP, OpenCTI, or OTX direct integration) with a 30-day expiration and alerting on any new OTX pulse correlation.

Detection Engineering

The following detections target the behaviors described in the pulses: .NET-based beacon execution with EDR evasion, Cobalt Strike default-profile style C2, in-memory .NET assembly loading, and network contact with known Mythic C2 infrastructure.

YAML
---
title: PIVOTPIPE .NET Beacon - In-Memory Assembly Load and AMSI Tampering
id: 8f3a1c2e-7b4d-4e9a-b6f1-pivotpipe001
status: experimental
description: Detects .NET in-memory assembly loading and AMSI patching behavior consistent with PIVOTPIPE's EDR-evasion loader (OTX pulse, IIJ research 2026-09)
references:
    - https://sect.iij.ad.jp/blog/2026/09/pivotpipe/
author: Security Arsenal Threat Intel
date: 2026/09/16
tags:
    - attack.defense_evasion
    - attack.t1620
    - attack.t1562.001
    - attack.execution
logsource:
    category: process_creation
    product: windows
detection:
    selection_scriptblock:
        EventID: 4104
        ScriptBlockText|contains:
            - 'Assembly]::Load'
            - 'Reflection.Assembly]::Load'
            - 'amsiInitFailed'
            - 'AmsiScanBuffer'
            - 'System.Management.Automation.AmsiUtils'
    selection_clr_hosting:
        Image|endswith:
            - '\powershell.exe'
            - '\wscript.exe'
            - '\cscript.exe'
            - '\mshta.exe'
            - '\rundll32.exe'
            - '\regsvr32.exe'
            - '\dotnet.exe'
        CommandLine|contains:
            - 'Load('
            - 'FromBase64String'
            - 'IEX'
    condition: selection_scriptblock or selection_clr_hosting
falsepositives:
    - Legitimate administrative PowerShell; .NET developer tooling
level: high
---
title: Beacon-Style C2 - Default Cobalt Strike Profile URI Patterns (PIVOTPIPE Emulation)
id: 8f3a1c2e-7b4d-4e9a-b6f1-pivotpipe002
status: experimental
description: PIVOTPIPE communicates with C2 using configurations close to Cobalt Strike default Malleable C2 profiles. Detects outbound requests matching stock Beacon URIs from non-browser processes.
references:
    - https://sect.iij.ad.jp/blog/2026/09/pivotpipe/
author: Security Arsenal Threat Intel
date: 2026/09/16
tags:
    - attack.command_and_control
    - attack.t1071.001
    - attack.t1573
logsource:
    category: webproxy
detection:
    selection_uri:
        cs-uri|contains:
            - '/jquery-3.3.1.min.js'
            - '/jquery-3.3.2.min.js'
            - '/pixel.gif'
            - '/__utm.gif'
            - '/pixel?__utma='
            - '/load.js'
            - '/updates.rss'
            - '/activity'
            - '/push'
    selection_proc:
        c-useragent|contains:
            - ''
    filter_browsers:
        cs-process|endswith:
            - '\chrome.exe'
            - '\msedge.exe'
            - '\firefox.exe'
            - '\iexplore.exe'
            - '\safari.exe'
    condition: selection_uri and not filter_browsers
falsepositives:
    - Legitimate software update mechanisms using jQuery asset names (rare from non-browser processes)
level: high
---
title: Outbound Connection to Known Mythic C2 Infrastructure
id: 8f3a1c2e-7b4d-4e9a-b6f1-mythicc2003
status: experimental
description: Detects network connections to internet-exposed Mythic C2 servers identified by Censys scanning (OTX pulse 2026-09-16). Mythic agents include Apollo, nyx, and fys2.
references:
    - https://censys.com/blog/mythic-c2
author: Security Arsenal Threat Intel
date: 2026/09/16
tags:
    - attack.command_and_control
    - attack.t1071.001
    - attack.t1102
logsource:
    category: network_connection
    product: windows
detection:
    selection:
        DestinationIp:
            - '142.93.52.11'
            - '65.87.7.11'
            - '194.26.192.117'
            - '68.178.205.17'
            - '192.169.176.54'
            - '68.178.202.150'
            - '170.64.183.242'
    condition: selection
falsepositives:
    - Authorized red-team engagements using Mythic (validate against internal engagement schedule before escalation)
level: critical
KQL — Microsoft Sentinel / Defender
// Sentinel/MDE hunt: PIVOTPIPE-style .NET in-memory loading + Mythic C2 contact
// Coverage: loader execution, beacon-like periodic C2, known Mythic IPs
let mythic_c2 = dynamic(["142.93.52.11","65.87.7.11","194.26.192.117","68.178.205.17","192.169.176.54","68.178.202.150","170.64.183.242"]);
let pivotpipe_hashes = dynamic(["715558e0ad32401c477d01412cc72fd07dc4ef6e122b6a730ba4b0a88a971677","ad9a03f3ea93c1a0a350f73b4ada485ce444f2352ea11eea05c87f075be80cf7","feeb5cae714d0d35f68ad1d1b29dccec0bdcc58ac076869559db53f6cb8137e8"]);
let HashHits = DeviceFileEvents
    | where TimeGenerated > ago(90d)
    | where SHA256 has_any (pivotpipe_hashes)
    | project Hunt="PIVOTPIPE Hash", TimeGenerated, DeviceName, FileName, FolderPath, SHA256, InitiatingProcessCommandLine;
let NetHits = DeviceNetworkEvents
    | where TimeGenerated > ago(90d)
    | where RemoteIP has_any (mythic_c2)
    | project Hunt="Mythic C2 Contact", TimeGenerated, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, InitiatingProcessCommandLine;
let DotNetLoader = DeviceProcessEvents
    | where TimeGenerated > ago(14d)
    | where ProcessCommandLine has_any ("Assembly]::Load","FromBase64String","amsiInitFailed","AmsiScanBuffer")
       or (FileName in~ ("rundll32.exe","regsvr32.exe","mshta.exe","wscript.exe","cscript.exe") and ProcessCommandLine has_any ("Load(","IEX","DownloadString"))
    | project Hunt=".NET In-Memory Load / AMSI Tamper", TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName;
let BeaconJitter = DeviceNetworkEvents
    | where TimeGenerated > ago(7d)
    | where RemotePort in (80, 443, 7443, 8080)
    | where InitiatingProcessFileName !in~ ("chrome.exe","msedge.exe","firefox.exe","svchost.exe","MsMpEng.exe","teams.exe","outlook.exe")
    | summarize Connections=count(), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), Ports=make_set(RemotePort) by DeviceName, InitiatingProcessFileName, RemoteIP
    | where Connections >= 40   // periodic tasking loop with sleep/jitter
    | project Hunt="Beacon-Like Periodic C2", FirstSeen, LastSeen, DeviceName, InitiatingProcessFileName, RemoteIP, Connections, Ports;
union HashHits, NetHits, DotNetLoader, BeaconJitter
| sort by TimeGenerated desc
PowerShell
# PIVOTPIPE / Mythic C2 — Host IOC Hunt Script (run elevated; deploy via GPO/Intune/EDR live response)
# Checks: persistence keys, suspicious .NET loader artifacts, scheduled tasks, live C2 connections

$ErrorActionPreference = 'SilentlyContinue'
$Report = @()

Write-Host "[+] Security Arsenal — PIVOTPIPE/Mythic Host Hunt — $(Get-Date -Format 'yyyy-MM-dd HH:mm')" -ForegroundColor Cyan

# --- 1. Known PIVOTPIPE hashes (quick scan of common staging dirs) ---
$Hashes = @(
    "715558e0ad32401c477d01412cc72fd07dc4ef6e122b6a730ba4b0a88a971677",
    "ad9a03f3ea93c1a0a350f73b4ada485ce444f2352ea11eea05c87f075be80cf7",
    "feeb5cae714d0d35f68ad1d1b29dccec0bdcc58ac076869559db53f6cb8137e8",
    "9c20927c77efe4119dc46fabf1a6cffebf0acc63"
)
$ScanDirs = @("$env:TEMP","$env:APPDATA","$env:LOCALAPPDATA","$env:PUBLIC","$env:ProgramData","$env:USERPROFILE\Downloads")
foreach ($dir in $ScanDirs) {
    Get-ChildItem -Path $dir -Recurse -File -Include *.exe,*.dll -ErrorAction SilentlyContinue | ForEach-Object {
        $h256 = (Get-FileHash $_.FullName -Algorithm SHA256).Hash.ToLower()
        $h1   = (Get-FileHash $_.FullName -Algorithm SHA1).Hash.ToLower()
        if ($Hashes -contains $h256 -or $Hashes -contains $h1) {
            $Report += "[!CRITICAL] PIVOTPIPE hash match: $($_.FullName) SHA256=$h256"
        }
    }
}

# --- 2. Persistence: Run keys with suspicious .NET/scripting values ---
$RunKeys = @(
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",
    "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce",
    "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"
)
foreach ($key in $RunKeys) {
    if (Test-Path $key) {
        (Get-Item $key).Property | ForEach-Object {
            $val = (Get-ItemProperty -Path $key -Name $_).$_
            if ($val -match 'powershell|rundll32|regsvr32|mshta|wscript|cscript|AppData|Temp|ProgramData|\.dll|FromBase64') {
                $Report += "[!HIGH] Suspicious Run key: $key\$_ = $val"
            }
        }
    }
}

# --- 3. Scheduled tasks launching from user-writable dirs or scripting hosts ---
Get-ScheduledTask | ForEach-Object {
    $action = $_.Actions.Execute
    $args   = $_.Actions.Arguments
    if (("$action $args") -match 'AppData|Temp|ProgramData|powershell.*-enc|rundll32.*\.dll|mshta|Assembly') {
        $Report += "[!HIGH] Suspicious scheduled task: $($_.TaskName) -> $action $args"
    }
}

# --- 4. Live connections to known Mythic C2 IPs ---
$MythicC2 = @("142.93.52.11","65.87.7.11","194.26.192.117","68.178.205.17","192.169.176.54","68.178.202.150","170.64.183.242")
Get-NetTCPConnection -State Established | Where-Object { $MythicC2 -contains $_.RemoteAddress } | ForEach-Object {
    $proc = (Get-Process -Id $_.OwningProcess).ProcessName
    $Report += "[!CRITICAL] Active Mythic C2 connection: $($_.RemoteAddress):$($_.RemotePort) by $proc (PID $($_.OwningProcess))"
}

# --- 5. .NET CLR loaded in unusual processes (PIVOTPIPE loader heuristic) ---
Get-Process | Where-Object { $_.Modules.FileName -match 'clr\.dll|mscoree\.dll' } | Where-Object {
    $_.ProcessName -notmatch '^(devenv|powershell|dotnet|msbuild|sqlservr|w3wp|explorer|dwm)$'
} | ForEach-Object {
    $Report += "[!MEDIUM] CLR loaded in unusual process: $($_.ProcessName) (PID $($_.Id)) Path: $($_.Path)"
}

# --- Output ---
if ($Report.Count -gt 0) {
    $Report | ForEach-Object { Write-Host $_ -ForegroundColor Red }
    $out = "$env:ProgramData\pivotpipe_hunt_$(Get-Date -Format 'yyyyMMdd_HHmm').log"
    $Report | Out-File $out
    Write-Host "`n[+] Findings written to $out — escalate to IR immediately." -ForegroundColor Yellow
} else {
    Write-Host "[+] No PIVOTPIPE/Mythic indicators found on this host." -ForegroundColor Green
}

Response Priorities

Immediate (0–4 hours):

  • Push all 3 SHA256 + 1 SHA1 PIVOTPIPE hashes to EDR prevention policy; block the 7 Mythic C2 IPv4s at egress firewall and web proxy.
  • Run the PowerShell hunt script across the estate via your EDR live-response or RMM; prioritize internet-facing and user-workstation assets.
  • Retro-hunt 90 days of proxy/NetFlow/Sentinel data for any contact with the Mythic IPs — staged infrastructure often precedes intrusion by weeks.
  • Deploy the PIVOTPIPE YARA rule to your EDR custom detection engine for variant discovery.

24 Hours:

  • Any host with confirmed PIVOTPIPE execution or Mythic C2 contact: treat as full compromise. Isolate, image memory (Beacon-like implants are memory-resident), and force enterprise-wide credential rotation for any account that authenticated from that host — post-exploitation frameworks always move to credential access (LSASS dumping, token theft) as step two.
  • Audit privileged sessions originating from affected hosts; review Kerberos tickets for anomalous service requests indicating lateral movement.
  • Validate with your red team whether any Mythic exposure is authorized engagement infrastructure before final block-listing.

1 Week:

  • Harden against the attack vector: enable .NET ETW/AMSI telemetry (Script Block Logging, Module Logging, AMSI integration verified active), block rundll32/regsvr32/mshta outbound network connections via host firewall rules, and deploy ASR rules for Office-spawned child processes.
  • Implement egress controls requiring proxy authentication for all outbound 80/443 — Mythic/PIVOTPIPE direct-to-IP C2 should fail closed.
  • Add Mythic server fingerprinting (Censys/Shodan queries) to your continuous external-attack-surface and TI monitoring so newly exposed adversary infrastructure is blocklisted within hours, not weeks.

This briefing is based on live AlienVault OTX pulse data. Indicators are TLP:WHITE and may be shared freely. Behavioral detections above remain effective even after IP/hash rotation — prioritize them over static IOC blocking.

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.