Back to Intelligence

MadApe Device Code Phishing Kit + Zimbra CVE-2026-73570 & NetScaler CVE-2026-88771 Exploitation: OTX Pulse Analysis — Enterprise Detection Pack

SA
Security Arsenal Team
October 31, 2026
13 min read

The latest OTX pulse cluster reveals a dual-pronged credential-theft and initial-access campaign targeting enterprise identity infrastructure and perimeter appliances. On one flank, the MadApe phishing kit (Group-IB, 2026-10-29) is running a multi-stage Microsoft Device Code phishing operation that bypasses traditional credential-harvesting pages entirely — instead abusing the legitimate OAuth 2.0 Device Authorization Grant flow to silently mint access tokens against victim Microsoft 365 tenants. On the other flank, two critical, pre-authentication command-injection vulnerabilities — CVE-2026-73570 (Zimbra Collaboration Suite SNMP path) and CVE-2026-88771 (Citrix NetScaler ADC/Gateway) — are being actively exploited to drop JSP webshells (China Chopper, Godzilla) and Perl-based reverse shells (update_c08937.pl), enabling direct credential extraction from mail stores and NetScaler authentication databases.

The attack chains converge on credential and session theft. MadApe requires no endpoint malware — it weaponizes Microsoft's own device-code endpoint (login.microsoftonline.com/oauth2/v2.0/devicecode) against users. The Zimbra and NetScaler intrusions follow a classic perimeter exploitation → webshell → credential harvesting → lateral movement pattern. The fifth pulse — unauthorized AI relays installing genuine Claude Code/Codex CLIs and rerouting traffic through aiok.me / nuoda.vip infrastructure — signals a third, quieter vector: API-key and LLM session hijacking targeting development teams in APAC manufacturing and semiconductor verticals.

Collectively, these pulses describe a threat ecosystem focused on identity-layer compromise at scale: steal tokens, steal passwords, or intercept API keys — then monetize access on dark-web marketplaces. The 565+ domains in the MadApe pulse alone indicate a well-resourced, rotating phishing infrastructure. All five pulses are TLP:WHITE and attribution is currently unknown, though the tooling overlap (China Chopper, PowerShell downloaders, SSH persistence) suggests a mix of criminal access-brokers and state-aligned operators.


Threat Actor / Malware Profile

MadApe Phishing Kit (Microsoft 365 Device Code Abuse)

  • Distribution: Business-themed PDF lures (invoice, contract, RFQ) delivered via email and malvertising. PDFs contain QR codes and shortened URLs that pivot through 3–7 stage redirect chains across 565+ disposable domains (sucdens.com, cepoffices.com, nsboards.com).
  • Payload behavior: No traditional payload. Victims land on a pixel-perfect fake Microsoft document-sharing page that displays a legitimate Microsoft Device Code and instructs them to enter it at microsoft.com/devicelogin. Because the code is generated by the attacker's own OAuth client, entering it grants the attacker's app delegated access to Mail.Read, Files.ReadWrite, and offline_access — without the victim ever typing a password on a phishing page.
  • C2 / Token Exfiltration: Stolen access tokens and refresh tokens are exfiltrated via HTTPS POST to attacker-controlled API endpoints hosted on the redirect-chain domains, often disguised as telemetry or analytics beacons.
  • Persistence: Refresh tokens are the persistence mechanism. MadApe requests offline_access scope, allowing token refresh for up to 90 days. Attackers also register malicious OAuth consent grants to survive password resets.
  • Anti-analysis: Redirect chains inspect User-Agent and IP geolocation; security sandboxes receive benign 404 pages. The kit uses dynamic JavaScript decryption of the final landing URL and randomizes the OAuth client ID per campaign wave.

CVE-2026-73570 — Zimbra SNMP Command Injection

  • Vector: Unauthenticated HTTP POST to the Zimbra SNMP notification handler (/service/admin/soap or SNMP trap receiver) with crafted OID strings containing shell metacharacters.
  • Payloads: China Chopper (S0020) and GodzillaWebShell JSP webshells dropped into /opt/zimbra/jetty/webapps/zimbra/. Looptik and NeedyMantis reverse shells for interactive access.
  • Persistence: Cron entries (@reboot /tmp/.x11-unix/update.sh) and injection of attacker SSH keys into zimbra user's authorized_keys.
  • Objective: Dump Zimbra LDAP credentials, extract mailbox GAL, and harvest cleartext passwords from zmlocalconfig.

CVE-2026-88771 — Citrix NetScaler Pre-Auth Command Injection

  • Vector: Crafted HTTP request to the NetScaler management interface (port 443) exploiting insufficient input sanitization in the NSPPE (NetScaler Packet Processing Engine) authentication path.
  • Payloads: main.py Python stager and update_c08937.pl Perl reverse shell hosted at http://64.94.85.67:443/. Creates attacker-controlled local accounts with pitboss-prefixed usernames.
  • Persistence: Adds hidden CLI users via add system user pitboss<random> and modifies ns.conf to survive reboots.
  • Objective: Harvest NetScaler Gateway credentials and session cookies to pivot into internal networks as an authenticated VPN user.

Trojanized Claude Code Extension & Unauthorized AI Relays

  • Vector: Supply-chain compromise of Claude Code extension v2.1.313 on Cursor Marketplace; enterprise systems in APAC reconfigured to route OpenAI/Anthropic CLI traffic through aiok.me, nuoda.vip, and mirbuds.com relays.
  • Persistence: SSH key labeled svc-telemetry appended to ~/.ssh/authorized_keys; reverse SSH tunnel to attacker infrastructure. PowerShell-based sandbox detection (if ($env:COMPUTERNAME -match 'SANDBOX') { exit }).
  • Objective: Intercept LLM API keys, exfiltrate proprietary code and prompts, and maintain long-term SSH access to developer workstations.

IOC Analysis

This pulse cluster contains 614 indicators across five pulses, spanning four high-value IOC classes:

IOC TypeCountExamplesSOC Action
Domain / Hostname580+sucdenses.com, psk1zim.abrdns.com, vibe.aiok.me, aiok.meBlock at DNS sinkhole / secure web gateway. Add to TI platform watchlist. Hunt proxy logs for 90-day lookback.
FileHash-SHA25620+18756b75…de927 (Claude extension), e9fe4396…242c (NetScaler payload), dee5af1c…c48a (Zimbra webshell)Block in EDR/AV. Hunt file-creation events across endpoints, mail gateways, and web servers.
URL3http://64.94.85.67:443/update_c08937.plBlock at egress firewall and SWG. Hunt for any HTTP(S) requests to this IP on port 443.
CVE2CVE-2026-73570, CVE-2026-88771Trigger emergency patch validation. Cross-reference with vulnerability scanner and asset inventory.

Operationalization guidance:

  • Feed domains/URLs into Microsoft Sentinel Threat Intelligence or MISP via TAXII. Set valid_until 90 days for phishing domains; 365 days for C2/repair domains.
  • SHA256 hashes should be imported into CrowdStrike Custom IOA, Defender for Endpoint Indicators, or Carbon Black Reputation Override.
  • The psk1zim.abrdns.com hostname resolves to Zimbra exploit C2 — flag any DNS resolution of *.abrdns.com as high-fidelity.
  • For NetScaler, monitor for HTTP requests containing update_c08937.pl or update_result_3567cs.tgz in URI — these are post-exploitation staging artifacts.

Detection Engineering

YAML
---
title: MadApe Microsoft Device Code Phishing - Suspicious Device Code Flow Initiation
id: 9e2a4f8c-1b7d-4e3a-9f5c-3d8a2c6e1b4f
status: experimental
description: Detects OAuth 2.0 Device Authorization Grant flow initiation from non-managed devices or unusual locations, characteristic of MadApe phishing kit activity.
author: Security Arsenal Threat Intel
references:
  - https://www.group-ib.com/blog/madape-microsoft-device-code-phishing-kit/
date: 2026/10/31
logsource:
  product: azure
  service: signinlogs
detection:
  selection:
    - authenticationProtocol: 'deviceCode'
    - deviceDetail.browser: 'Unknown'
  condition: selection
  timeframe: 1h
falsepositives:
  - Legitimate device code flow for CLI tools (Azure CLI, VS Code)
level: high
tags:
  - attack.t1528
  - attack.t1078.004
---
title: Zimbra CVE-2026-73570 - JSP WebShell Creation in Webapps Directory
id: 7f3b1e9a-4c2d-4a8e-b1c5-9d7e2f4a6c8b
status: experimental
description: Detects creation of JSP files in Zimbra webapps directory, consistent with China Chopper / Godzilla webshell deployment following CVE-2026-73570 exploitation.
author: Security Arsenal Threat Intel
references:
  - https://www.microsoft.com/en-us/security/blog/2026/09/30/unauthenticated-command-injection-on-internet-facing-mail-servers-tracking-cve-2026-73570/
date: 2026/10/31
logsource:
  product: linux
  category: file_event
detection:
  selection:
    TargetFilename|contains:
      - '/opt/zimbra/jetty/webapps/zimbra/'
      - '/opt/zimbra/jetty/webapps/zimbraAdmin/'
    TargetFilename|endswith:
      - '.jsp'
      - '.jspx'
  condition: selection
falsepositives:
  - Zimbra updates or legitimate plugin installation
level: critical
tags:
  - attack.t1190
  - attack.t1505.003
  - cve.2026-73570
---
title: Citrix NetScaler CVE-2026-88771 - Suspicious Perl Reverse Shell Execution
id: 2c8d4e6f-9a1b-4c3d-8e5f-7a9b1c3d5e7f
status: experimental
description: Detects execution of Perl scripts with suspicious naming patterns (update_c*.pl) or network connections to known NetScaler exploitation C2.
author: Security Arsenal Threat Intel
references:
  - https://www.levelblue.com/blogs/spiderlabs-blog/citrix-netscaler-cve-2026-88771-observed-exploitation-artifacts-and-hunt-indicators
date: 2026/10/31
logsource:
  category: process_creation
  product: windows
detection:
  selection_image:
    Image|endswith:
      - '\perl.exe'
      - '\perl5*'
  selection_cmdline:
    CommandLine|contains:
      - 'update_c'
      - '.pl '
      - 'socket'
      - '64.94.85.67'
  condition: selection_image and selection_cmdline
falsepositives:
  - Legitimate Perl automation scripts
level: critical
tags:
  - attack.t1190
  - attack.t1059.001
  - attack.t1071.001
  - cve.2026-88771
---
title: Trojanized Claude Code Extension - SSH Key Persistence
id: 5a7b9c1d-3e5f-4a7b-9c2d-4e6f8a1b3c5d
status: experimental
description: Detects modification of SSH authorized_keys file or creation of reverse SSH tunnels, consistent with the trojanized Claude Code extension backdoor.
author: Security Arsenal Threat Intel
references:
  - https://opensourcemalware.com/blog/trojanized-claude-code-extension-plants-persistent-ssh-backdoor
date: 2026/10/31
logsource:
  category: file_event
  product: windows
detection:
  selection:
    TargetFilename|endswith:
      - '\.ssh\authorized_keys'
      - '\.ssh\authorized_keys2'
  filter_legitimate:
    Image|contains:
      - '\Windows\System32\'
      - '\OpenSSH\'
  condition: selection and not filter_legitimate
falsepositives:
  - Legitimate SSH key deployment via GPO or configuration management
level: high
tags:
  - attack.t1133
  - attack.t1098.004
  - attack.t1572
KQL — Microsoft Sentinel / Defender
// KQL Hunt: MadApe Device Code Phishing + Zimbra/NetScaler Exploitation IOCs
// Microsoft Sentinel | 90-day lookback recommended
let lookback = 90d;
let madape_domains = dynamic(["sucdens.com","cepoffices.com","zakosta.info","nsboards.com","adastraerrans.com","travestiilan.com","nysndigital.com","powerlivings.com"]);
let zimbra_c2 = dynamic(["psk1zim.abrdns.com","tls.psk1zim.abrdns.com"]);
let ai_relays = dynamic(["vibe.aiok.me","aiok.me","sorryios.io","nuoda.vip","chat.nuoda.vip","mirbuds.com"]);
let netscaler_c2 = "64.94.85.67";
let sha256_hashes = dynamic([
    "18756b75afedee74bbf49832a1b1dada4961672c41d595be5c1bbe75709de927",
    "7e0a52885fadee05544a9e99eb18c792bec05900a5e1a66d68f8383decb0e278",
    "ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15",
    "e9fe43968c6c0955300e3bc4d7fb0b05a18570b4733aaf4f5c6f7f09be5a242c",
    "974b69782fdf5d67b97cfd508465939e44ee10798dbcc1e82b92d78776bad938",
    "dee5af1c0f76b45d28bafd6e60c07bb8e391d98addf81ef8f13d073acdb3c48a",
    "aea991f694911e321b0ab97534f2ad0291c392c0a43dabff664c563618bd036d",
    "6ab7de2509038edf580aef6229c1c3db17f4da8f2d7d940818faf617d1938244",
    "bf28f38122bf20d5fac969cc414daa6a890cdea872d389ca93d2092b6b7773cf",
    "b594a42b8f1c6f090327bb9a3361c2d3515537fb7ac8da6b9061b9a3f330e159"
]);
// Hunt 1: Device Code authentication events (MadApe)
union isfuzzy=true
    (SigninLogs
    | where TimeGenerated >= ago(lookback)
    | where AuthenticationProtocol == "deviceCode" or (AuthenticationDetails has "device code")
    | project TimeGenerated, UserPrincipalName, IPAddress, AppDisplayName, DeviceDetail, Location, Status, AuthenticationProtocol
    | extend Hunt = "MadApe DeviceCode"),
// Hunt 2: Network connections to phishing/C2 domains
    (DeviceNetworkEvents
    | where TimeGenerated >= ago(lookback)
    | where RemoteUrl has_any (madape_domains) or RemoteUrl has_any (zimbra_c2) or RemoteUrl has_any (ai_relays) or RemoteIP == netscaler_c2
    | project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort
    | extend Hunt = "C2/Phishing Domain"),
// Hunt 3: File hash matches on endpoints
    (DeviceFileEvents
    | where TimeGenerated >= ago(lookback)
    | where SHA256 in~ (sha256_hashes)
    | project TimeGenerated, DeviceName, FileName, FolderPath, SHA256, InitiatingProcessFileName
    | extend Hunt = "Malicious File Hash"),
// Hunt 4: Process creation for NetScaler Perl payload or SSH backdoor
    (DeviceProcessEvents
    | where TimeGenerated >= ago(lookback)
    | where (FileName =~ "perl.exe" and ProcessCommandLine has_any ("update_c", ".pl")) or
            (FileName =~ "ssh.exe" and ProcessCommandLine has_any ("-R", "svc-telemetry"))
    | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName, InitiatingProcessFileName
    | extend Hunt = "Suspicious Process")
| order by TimeGenerated desc
PowerShell
# PowerShell IOC Hunt Script - MadApe, Zimbra, NetScaler, Claude Extension Backdoor
# Run as Administrator on endpoints; outputs CSV to $env:TEMP\OTX_Hunt_Results.csv
# Requires: PowerShell 5.1+; no external modules

$ErrorActionPreference = 'SilentlyContinue'
$results = @()
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"

# --- 1. Check for malicious SHA256 hashes on disk ---
$malHashes = @(
    "18756b75afedee74bbf49832a1b1dada4961672c41d595be5c1bbe75709de927",
    "7e0a52885fadee05544a9e99eb18c792bec05900a5e1a66d68f8383decb0e278",
    "ecb58cb29078d9646ad1dcdbe51526f2d9cfea06be5fb2ab183e8ecc3ab6bf15",
    "e9fe43968c6c0955300e3bc4d7fb0b05a18570b4733aaf4f5c6f7f09be5a242c",
    "974b69782fdf5d67b97cfd508465939e44ee10798dbcc1e82b92d78776bad938",
    "dee5af1c0f76b45d28bafd6e60c07bb8e391d98addf81ef8f13d073acdb3c48a",
    "aea991f694911e321b0ab97534f2ad0291c392c0a43dabff664c563618bd036d",
    "6ab7de2509038edf580aef6229c1c3db17f4da8f2d7d940818faf617d1938244",
    "bf28f38122bf20d5fac969cc414daa6a890cdea872d389ca93d2092b6b7773cf",
    "b594a42b8f1c6f090327bb9a3361c2d3515537fb7ac8da6b9061b9a3f330e159"
)

Write-Host "[+] Scanning common payload drop paths for malicious hashes..."
$scanPaths = @($env:TEMP, $env:APPDATA, $env:LOCALAPPDATA, "C:\ProgramData", "C:\Users\Public\Downloads")
foreach ($path in $scanPaths) {
    Get-ChildItem -Path $path -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
        $hash = (Get-FileHash -Path $_.FullName -Algorithm SHA256).Hash.ToLower()
        if ($malHashes -contains $hash) {
            $results += [PSCustomObject]@{
                Timestamp = $timestamp
                HuntType = "Malicious File Hash"
                Host = $env:COMPUTERNAME
                Indicator = $hash
                Path = $_.FullName
                Details = "Matched OTX pulse IOC"
            }
        }
    }
}

# --- 2. Check SSH authorized_keys for 'svc-telemetry' backdoor ---
Write-Host "[+] Checking SSH authorized_keys for suspicious keys..."
$userDirs = Get-ChildItem "C:\Users" -Directory
foreach ($user in $userDirs) {
    $authKeys = Join-Path $user.FullName ".ssh\authorized_keys"
    if (Test-Path $authKeys) {
        $content = Get-Content $authKeys -Raw
        if ($content -match "svc-telemetry") {
            $results += [PSCustomObject]@{
                Timestamp = $timestamp
                HuntType = "SSH Backdoor Key"
                Host = $env:COMPUTERNAME
                Indicator = "svc-telemetry"
                Path = $authKeys
                Details = "Trojanized Claude Code extension persistence"
            }
        }
    }
}

# --- 3. Check for suspicious SSH reverse tunnels ---
Write-Host "[+] Checking for active SSH reverse tunnels..."
$sshConns = Get-NetTCPConnection | Where-Object { $_.OwningProcess -ne 0 } | ForEach-Object {
    $proc = Get-Process -Id $_.OwningProcess
    if ($proc.ProcessName -match "ssh" -and $_.RemotePort -eq 22 -and $_.State -eq "Established") {
        $cmdLine = (Get-CimInstance Win32_Process -Filter "ProcessId = $($_.OwningProcess)").CommandLine
        if ($cmdLine -match "-R") {
            $results += [PSCustomObject]@{
                Timestamp = $timestamp
                HuntType = "SSH Reverse Tunnel"
                Host = $env:COMPUTERNAME
                Indicator = $cmdLine
                Path = $proc.Path
                Details = "Potential exfiltration or C2 tunnel"
            }
        }
    }
}

# --- 4. Check for NetScaler Perl payload artifacts ---
Write-Host "[+] Checking for Perl reverse-shell artifacts..."
$perlProcs = Get-CimInstance Win32_Process -Filter "Name like '%perl%'"
foreach ($proc in $perlProcs) {
    if ($proc.CommandLine -match "update_c" -or $proc.CommandLine -match "\.pl") {
        $results += [PSCustomObject]@{
            Timestamp = $timestamp
            HuntType = "Suspicious Perl Process"
            Host = $env:COMPUTERNAME
            Indicator = $proc.CommandLine
            Path = $proc.ExecutablePath
            Details = "Possible NetScaler CVE-2026-88771 payload"
        }
    }
}

# --- 5. Check DNS cache for MadApe / AI relay domains ---
Write-Host "[+] Checking DNS cache for malicious domains..."
$badDomains = @("sucdens.com","cepoffices.com","zakosta.info","nsboards.com","adastraerrans.com","travestiilan.com","nysndigital.com","powerlivings.com","aiok.me","nuoda.vip","mirbuds.com","psk1zim.abrdns.com")
$dnsCache = Get-DnsClientCache
foreach ($entry in $dnsCache) {
    foreach ($domain in $badDomains) {
        if ($entry.Name -like "*$domain*") {
            $results += [PSCustomObject]@{
                Timestamp = $timestamp
                HuntType = "Malicious DNS Resolution"
                Host = $env:COMPUTERNAME
                Indicator = $entry.Name
                Path = $entry.IPAddress
                Details = "Matched OTX phishing/C2 domain"
            }
        }
    }
}

# --- 6. Check for suspicious OAuth consent (MadApe) via registry/MSGraph note ---
# Note: Full OAuth consent hunting requires MS Graph; this checks for suspicious device code auth in event logs
Write-Host "[+] Checking Windows Event Logs for Device Code auth events..."
$events = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-7)} | Where-Object {
    $_.Message -match "device code" -or $_.Message -match "deviceCode"
}
foreach ($event in $events) {
    $results += [PSCustomObject]@{
        Timestamp = $event.TimeCreated.ToString("yyyy-MM-dd HH:mm:ss")
        HuntType = "Device Code Auth Event"
        Host = $env:COMPUTERNAME
        Indicator = "EventID 4624"
        Path = $event.Message.Substring(0, [Math]::Min(200, $event.Message.Length))
        Details = "Review for MadApe phishing kit activity"
    }
}

# --- Output ---
if ($results.Count -gt 0) {
    $outputPath = "$env:TEMP\OTX_Hunt_Results_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv"
    $results | Export-Csv -Path $outputPath -NoTypeInformation
    Write-Host "[!] $($results.Count) suspicious indicators found. Results saved to: $outputPath"
    $results | Format-Table -AutoSize
} else {
    Write-Host "[+] No indicators of compromise found."
}

Write-Host "[i] Hunt complete. Review findings and correlate with SIEM/EDR telemetry."

Response Priorities

Immediate (0–4 hours)

  1. Block all 614 IOCs at the DNS layer (sinkhole), secure web gateway, and EDR. Prioritize 64.94.85.67 (NetScaler C2), *.abrdns.com (Zimbra C2), and the 565+ MadApe phishing domains.
  2. Emergency patch validation for CVE-2026-73570 (Zimbra) and CVE-2026-88771 (NetScaler). If patching is not immediate, isolate appliances from the internet and restrict management interface access to jump-hosts only.
  3. Hunt for execution artifacts: Search for update_c*.pl, main.py, JSP files in Zimbra webapps, and svc-telemetry SSH keys across the fleet using the KQL and PowerShell scripts above.
  4. Revoke suspicious OAuth grants: In Microsoft 365, audit Enterprise Applications for any app with offline_access + Mail.Read scopes granted in the last 30 days. Revoke refresh tokens for any session using deviceCode authentication from unmanaged devices.

24 Hours

  1. Identity verification: Force password reset and MFA re-registration for any user who authenticated via device code flow or whose mailbox shows signs of unauthorized access (new Inbox rules, forwarding, or unusual Sent Items).
  2. NetScaler/Zimbra credential rotation: Reset all local admin accounts on NetScaler and Zimbra. Rotate LDAP bind accounts, service accounts, and any credentials stored in ns.conf or zmlocalconfig.
  3. LLM API key audit: If the unauthorized AI relay pulse applies to your environment (APAC manufacturing/semiconductor/healthcare), rotate all OpenAI and Anthropic API keys. Audit Claude Code/Codex CLI installations for unexpected relay configurations.
  4. Dark-web credential monitoring: Submit your corporate email domains to your TI provider to check for fresh credential dumps tied to Zimbra/NetScaler exploitation.

1 Week

  1. Architecture hardening:
    • Disable Microsoft Device Code flow tenant-wide unless explicitly required for IoT/CLI scenarios (Azure AD → Conditional Access → Authentication flows).
    • Segment mail servers and NetScaler appliances behind a WAF with virtual patching for CVE-2026-73570 and CVE-2026-88771.
    • Enforce FIDO2/passkeys for M365 to make device-code phishing unprofitable.
  2. Detection-as-code deployment: Promote the Sigma rules above to production. Tune false positives (e.g., legitimate Perl automation, Azure CLI device code auth) via allow-lists.
  3. Supply-chain review: Audit VS Code / Cursor Marketplace extensions across developer workstations. Remove Claude Code extension v2.1.313 and re-install from verified publisher only.
  4. Threat intel integration: Automate OTX pulse ingestion into MISP / Sentinel via TAXII or API to ensure future pulses are operationalized within 15 minutes of publication.

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.