UNC5221 / VerdantBamboo: Brickstorm, Plenet & AgentPSD — 18-Month Dwell via M365 SOCKS5 Proxy

·

Volexity disclosed on June 4, 2026 that a Chinese espionage group tracked as VerdantBamboo — overlapping with Mandiant's UNC5221 and Google's WARP PANDA — had maintained persistent access to a U.S. victim's Microsoft 365 environment for at least 18 months before detection in March 2025. The actor deployed three distinct custom backdoors across network appliances, NAS devices, and cloud infrastructure, none of which relied on a single exploitable CVE for their persistence.

The intrusion began with credential theft targeting an Egnyte Storage Sync service via the victim's managed services provider. From there, VerdantBamboo pivoted laterally to Microsoft 365, a pfSense firewall, a Synology NAS, and archived GroupWise email servers — using Brickstorm (Go/Rust, WebSocket C2), Plenet/Grimbolt (.NET Core, multiplex C2), and AgentPSD (Python, HTTPS reverse shell) to maintain access across multiple failure scenarios.

This post is a complete DFIR investigation: threat actor profile, full intrusion timeline, malware technical breakdown, C2 infrastructure fingerprinting, detection logic, and IOCs for immediate defensive action.

◈ Table of Contents

01 Threat Actor Profile 02 Intrusion Timeline 03 Initial Access — Egnyte & SSL VPN 04 Malware Arsenal Deep Dive 05 Lateral Movement to M365 & MSP 06 C2 Infrastructure & Censys Fingerprinting 07 DFIR Investigation Steps 08 Indicators of Compromise 09 Detection & Hunt Queries 10 MITRE ATT&CK Mapping 11 Sources
🎯

Phase 1 — Threat Actor Profile

ATTRIBUTION
AttributeDetail
Primary NameVerdantBamboo (Volexity)
AliasesUNC5221 (Mandiant/Google), WARP PANDA (CrowdStrike), UTA0178
Suspected OriginPeople's Republic of China (PRC) — state-sponsored espionage
Active SinceAt least 2023 — exploited zero-day vulnerabilities in edge devices
Primary MotivationCyber espionage — persistent access for intelligence collection
Preferred TargetsLegal services, SaaS providers, business process outsourcers, U.S. technology companies, MSPs
TTPs SignatureEdge device implants (firewalls, NAS), WebSocket C2, MSP compromise for lateral reach, long dwell times
Malware ArsenalBrickstorm (Go/Rust), Plenet/Grimbolt (.NET), AgentPSD (Python), earlier: LIGHTWIRE, WIREFIRE
Operational DisciplineHigh — infrastructure rotated on detection, DNS-over-HTTPS used to bypass monitoring, Cloudflare-fronted C2
⚖️

Legal Sector

Law firms targeted for privileged client communications, litigation strategy, M&A intel, and attorney-client privileged material with geopolitical value.

☁️

SaaS & Technology

SaaS providers and tech companies attacked for IP, source code, customer data, and as pivot points to downstream victims in shared infrastructure.

🏢

MSPs as Force Multipliers

Managed service providers compromised to gain trusted access to dozens of client environments simultaneously — one MSP breach can mean many victim organizations.

🕐

Phase 2 — Intrusion Timeline

TIMELINE
01
18 Months from First Access to Discovery
Timeline
Key Milestones
  • 1~Sept 2023 (est.): VerdantBamboo compromises the victim's managed services provider via credential theft targeting the Egnyte Storage Sync service. Default service account egnyteservice had its password changed but still carried a sudoers misconfiguration allowing root tee writes. Brickstorm implanted at /usr/sbin/luserput.
  • 22023–2024 (sustained): Actor uses Brickstorm's SOCKS5 proxying capabilities, running from the Egnyte system, to blend M365 authentication traffic with legitimate organizational activity. Conditional Access policies bypassed. Over one year of undetected M365 access follows.
  • 32024 (mid-year est.): Victim removes the compromised SSL VPN. Rather than losing access, VerdantBamboo pivots — uses stolen admin credentials (which lacked MFA) to configure a custom web-based SSL VPN for re-entry. Deploys Brickstorm's FreeBSD variant on the victim's pfSense firewall at /usr/local/libexec/ipsec/blacklist.
  • 4Late 2024: Plenet (.NET backdoor) deployed to Synology NAS via SSH. AgentPSD (Python reverse shell) deployed on the Egnyte system as fallback at /usr/local/bin/egnyte/egnyte_host_monitor_client. Actor now has three independent persistence mechanisms across different OS platforms.
  • 5September 18–23, 2025: All VerdantBamboo C2 servers previously matching the Volexity Censys fingerprint disable their services on port 443 simultaneously — suggesting the actor detected or anticipated discovery. Infrastructure rotated.
  • 6March 2025 (disclosed retrospectively): Volexity identifies the breach during an incident response engagement. Determines initial access occurred "at least 18 months" prior. Full malware analysis and IOC extraction completed.
  • 7June 4, 2026: Volexity publishes full public disclosure. Google Cloud Threat Intelligence publishes corroborating analysis attributing Plenet/Grimbolt to the same actor cluster. BleepingComputer, The Hacker News report widely.
🔓

Phase 3 — Initial Access via Egnyte Storage Sync

INITIAL ACCESS
01
Egnyte Privilege Escalation and Foothold
Initial Access

The initial foothold exploited a combination of credential theft and a privilege escalation path in Egnyte Storage Sync v13.12 and earlier. The attack vector was the victim's SSL VPN, which gave VerdantBamboo network-level access to the MSP's internal Egnyte system. From there, a misconfigured sudoers entry provided root filesystem write access.

Privilege Escalation Path
  • 1Credential theft: Credentials for the egnyteservice service account were stolen. This account had its password changed from the default but retained a sudoers misconfiguration present in Egnyte Storage Sync prior to v13.13.
  • 2Sudoers exploitation: The misconfiguration allowed egnyteservice to execute /usr/bin/tee as root via sudo. Since tee writes stdin to a file, this provided arbitrary root-level filesystem write access.
  • 3Brickstorm implantation: Using the root write path, VerdantBamboo wrote the Brickstorm Linux ELF binary to /usr/sbin/luserput and configured persistence via cron. The binary was 5.6 MB, obfuscated with gobfuscate.
  • 4SSH access: SSH access to the Egnyte system was combined with the sudoers escalation to maintain persistent shell access alongside the Brickstorm C2 channel.
Sudoers misconfiguration pattern (Egnyte Storage Sync < v13.13)
# The misconfiguration that enabled VerdantBamboo root write access egnyteservice ALL=(root) NOPASSWD: /usr/bin/tee # Exploitation: write arbitrary content to any file as root echo '[malicious content]' | sudo /usr/bin/tee /usr/sbin/luserput chmod +x /usr/sbin/luserput # Persistence via cron echo '*/5 * * * * /usr/sbin/luserput' | sudo /usr/bin/tee -a /etc/cron.d/egnyte

Egnyte Storage Sync v13.13 fixes this sudoers misconfiguration. Any deployment running v13.12 or earlier is vulnerable to this exact escalation path. Patch immediately and audit all service account sudoers entries for NOPASSWD write utilities (tee, cp, install, dd).

🔧

Phase 4 — Malware Arsenal Technical Deep Dive

MALWARE ANALYSIS
01
Brickstorm — The Primary Backdoor (Go → Rust)
Backdoor

Brickstorm is VerdantBamboo's primary persistence and espionage tool. Initially written in Go and obfuscated with gobfuscate, the actor has since produced Rust variants — suggesting active development and investment in platform sustainability. Its core architecture uses WebSocket for C2, making it difficult to distinguish from legitimate encrypted web traffic.

AttributeLinux ELF VariantFreeBSD Variant (pfSense)
LanguageGo (obfuscated with gobfuscate)Go (obfuscated with gobfuscate)
File Size5.6 MBNot disclosed
SHA-25640d264cf9c73923932c3dfd52d20f46ff602be3fea8dc6ecc71aca46e6067bf5f70abe93112637d3ec2f6c5e058ccac0307ebf63e496f38588cbfd17a8f8a264
MD558d4eccc982c9e9b1b98aa62c514e53a84ad78b2bab946c3677fdc28ebd8a774
SHA1f4d77958a12a0778283d3e679b24b18f82e332c4681075027553546c119ec447eb8df84633dcffce
Deploy Location/usr/sbin/luserput (Egnyte); cron on Linux systems/usr/local/libexec/ipsec/blacklist (pfSense)
PersistenceCron jobModified /etc/rc.d/cron on pfSense
C2 ProtocolWebSocket over HTTPS (port 443)WebSocket over HTTPS (port 443)
CapabilitiesInteractive shell, remote command exec, file manipulation, C2 switching, SOCKS5 proxy, web server for filesystem exposureSame as Linux variant

The SOCKS5 proxy capability in Brickstorm is the most dangerous feature for M365 defenders. Traffic from the C2 implant running on a trusted internal system is indistinguishable from legitimate M365 authentication at the identity provider level. Conditional Access policies based purely on IP or device compliance will not catch this pattern.

02
Plenet (Grimbolt) — .NET Core Secondary Backdoor
Backdoor

Plenet — tracked by Google Threat Intelligence as "Grimbolt" — is a cross-platform .NET Core Native AOT backdoor offering equivalent functionality to Brickstorm on a different runtime. Volexity assesses VerdantBamboo chose .NET Core to provide an additional obfuscation layer and platform independence, deployed when the actor sought secondary persistence after Brickstorm was at risk.

AttributeDetail
Language.NET Core with Native AOT compilation
File Size2.5 MB
SHA-256eb141a43958802727a6c813452450c10b92fc2e8 (SHA1)
MD595dc2289427ed29b8b996d0e3d1b78cb
ObfuscationUPX-packed with data hydration
C2 ProtocolWebSocket with Nerdbank.Streams multiplexing — enables simultaneous data streams over single connection
DeploymentSynology NAS via SSH — deployed after Brickstorm implant on pfSense
CapabilitiesInteractive shell, remote code execution, file manipulation, C2 server switching
03
AgentPSD — Python Fallback Reverse Shell
Backdoor

AgentPSD is a simple but effective fallback persistence mechanism. If both Brickstorm and Plenet are neutralized, AgentPSD provides an independent HTTPS reverse shell connecting to a separate C2 domain. Its hard-coded parsing pattern makes it trivially identifiable in memory and traffic analysis.

AttributeDetail
LanguagePython (compiled to Linux ELF via PyInstaller)
File Size6.4 MB ELF executable
SHA-256ee41e06ed96182ce80cd4544a6abd5d7719c4a5c0e5ddb266a83842d39b99b0a
MD598ee964edeb5a988c3bba8ea1e57fe0e
SHA1e952c18272efa1c3d73d0a5381bcf443c02743fe
Deploy Location/usr/local/bin/egnyte/egnyte_host_monitor_client (Egnyte system)
C2 ProtocolHTTPS POST with Base64-encoded responses
C2 ParsingSearches response for hardcoded marker string PoRaSGw3jzQ8YSaz — commands follow this delimiter
Commandsinterval updates, duration limits, shell execution via subprocess
DNSUses Google DNS-over-HTTPS (8.8.8.8) to resolve C2 domains, bypassing internal DNS monitoring
AgentPSD C2 response parsing pattern (hard-coded delimiter)
# AgentPSD searches HTTP response body for this exact marker before parsing commands # Hunting this string in HTTPS traffic or process memory identifies live AgentPSD infections marker = "PoRaSGw3jzQ8YSaz" # Command execution flow if marker in response_body: command = response_body.split(marker)[1].strip() subprocess.run(command, shell=True)
↗️

Phase 5 — Lateral Movement to M365 & MSP

LATERAL MOVEMENT
01
M365 Bypass via Internal SOCKS5 Proxy
Lateral Movement

VerdantBamboo's most sophisticated technique in this intrusion was not the malware itself — it was using Brickstorm's SOCKS5 proxy capability to route M365 authentication traffic through a trusted internal IP address, defeating Conditional Access policies designed to restrict cloud access to known corporate network ranges.

M365 Access Kill Chain
  • 1Brickstorm as SOCKS5 proxy: With Brickstorm deployed on the Egnyte system (a trusted internal host), VerdantBamboo configured the malware's proxy capability to tunnel HTTPS requests through the internal network IP. From Microsoft's perspective, the authentication originated from a legitimate corporate IP address.
  • 2Stolen credentials + proxy bypass: Credentials stolen from the Egnyte system (or obtained via network monitoring) were then used to authenticate to M365 via the SOCKS5 tunnel. Conditional Access policies requiring "compliant device" or "known network" checks were satisfied by the proxy routing.
  • 3MSP breach via M365 access: Volexity assesses with medium confidence that VerdantBamboo's access to the victim's MSP was achieved partly through M365-hosted data obtained during the initial victim compromise — likely shared credentials, MSP admin access portals, or service principals stored in M365.
  • 4pfSense firewall implant: After the original SSL VPN was removed, VerdantBamboo used stolen admin credentials lacking MFA to directly access and implant the pfSense firewall. Brickstorm's FreeBSD variant was deployed, modified /etc/rc.d/cron for persistence, giving the actor a second independent C2 channel.
SOCKS5 PROXY BYPASS → M365 CONDITIONAL ACCESS DEFEAT → MSP COMPROMISE
📡

Phase 6 — C2 Infrastructure & Censys Fingerprinting

INFRASTRUCTURE
01
Infrastructure Characteristics and Fingerprint
Threat Intel

VerdantBamboo's C2 infrastructure follows a consistent profile detectable via Censys and Shodan. Servers are Cloudflare-fronted, expose minimal services, and use OpenBSD SSH clients — a pattern unusual enough to fingerprint at scale. Volexity developed an active fingerprinting query that identified the full infrastructure, which then went dark on detection.

Censys Fingerprint Criteria
  • 1Minimal service exposure: Servers expose 4 or fewer TCP ports. VerdantBamboo limits attack surface on C2 nodes to reduce exposure.
  • 2Zero-length HTTP response: Port 443 returns a zero-length body — a Golang HTTP server default when no route matches. This is the primary distinguishing fingerprint.
  • 3OpenBSD SSH client: C2 servers have OpenBSD-flavor SSH client banners present — unusual on Linux VPS infrastructure, suggesting a specific OS image preference or toolchain.
  • 4Cloudflare certificates: All C2 domains resolved to Cloudflare IP ranges. Domain fronting provides both DDoS protection and IP attribution difficulty.
  • 5Infrastructure shutdown response: Between September 18–23, 2025, all previously fingerprinted servers simultaneously disabled port 443 services — a coordinated response suggesting actor awareness of Volexity's research. This is a tell for a sophisticated, monitored operation.
AgentPSD DNS-over-HTTPS evasion
# AgentPSD bypasses internal DNS monitoring by using Google DoH directly # Standard DNS queries to internal resolvers never occur, evading DNS-based threat intel import requests def resolve_c2(hostname): r = requests.get( f"https://8.8.8.8/resolve?name={hostname}&type=A", verify=False ) return r.json()['Answer'][0]['data']

DNS-based threat intel feeds and SIEM rules that rely on internal DNS query logs will not detect AgentPSD C2 communications. All hostname resolution is performed directly against Google's DoH endpoint at 8.8.8.8. Monitor for HTTPS requests to 8.8.8.8 from server processes — legitimate internal servers rarely query external DoH endpoints.

🔍

Phase 7 — DFIR Investigation Steps

INVESTIGATION
01
Edge Device Audit — Firewalls, NAS, Storage Appliances
Triage

The single most important lesson from this intrusion: EDR tools do not run on edge devices, firewalls, or NAS appliances. VerdantBamboo knew this. Start your investigation where no EDR exists.

Edge Device Investigation Checklist
  • 1pfSense/FreeBSD firewalls: Search for unexpected files in /usr/local/libexec/, /usr/local/bin/, and /usr/sbin/. Run find / -newer /etc/passwd -type f 2>/dev/null to identify files modified after OS installation. Check /etc/rc.d/cron for unauthorized additions.
  • 2NAS devices (Synology, QNAP): Review SSH auth logs for interactive sessions from unusual IPs. Check for new binaries in system paths. Synology: /usr/local/bin/, /usr/bin/. Review scheduled tasks and package manager for unauthorized installations.
  • 3Linux storage sync systems (Egnyte, etc.): Audit sudoers configuration for NOPASSWD entries granting write utilities. Check service account home directories for unexpected files. Review cron jobs under all user contexts, not just root.
  • 4Volexity scanner: Volexity and Google have released a shell script scanner for BRICKSTORM indicators on Linux and BSD systems. Run it across all appliances: bash brickstorm_scanner.sh — reference the Volexity GitHub threat-intel repository.
  • 5Network traffic baseline deviation: Correlate edge device outbound connections against a 90-day baseline. Look for persistent low-volume HTTPS connections to Cloudflare-fronted IPs, especially on unusual ports or from processes that normally have no network activity.
02
M365 Investigation — Hunting the SOCKS5 Bypass
Cloud Investigation
M365 Audit Log Investigation
  • 1Export Unified Audit Log: In Microsoft Purview Compliance Portal, export all audit log entries for the past 90 days. Filter for authentication events, mail access, and file access from internal IP addresses. VerdantBamboo's proxy routes all traffic through a trusted internal IP, so geographic anomaly detection will not trigger.
  • 2Identify credential reuse across services: The Egnyte service account likely had credentials reused or accessible to M365 service principals. Audit all service principals and app registrations for unusual permissions. Check last-used dates for dormant service principals — these may be attacker-maintained access paths.
  • 3Conditional Access gap analysis: Map all Conditional Access policies. Identify which policies would pass authentication from a trusted internal IP. Specifically check whether any policies allow named locations (internal IP ranges) to bypass MFA — this is the bypass VerdantBamboo exploited.
  • 4Email and SharePoint access patterns: Look for bulk email reads, unusual SharePoint download volumes, or forward/delegate rules created during the suspected intrusion window. These are primary intelligence collection behaviors for an espionage actor maintaining long-term access.
  • 5MSP admin access review: If your organization uses an MSP, audit which MSP accounts have admin-level access to your M365 tenant. VerdantBamboo pivoted from the primary victim to the MSP's other clients via this trusted relationship. Review delegated admin privileges and partner relationships in Microsoft Partner Center.
Key Forensic Artifacts for VerdantBamboo
  • Edge device binaries at known deployment paths (see Phase 8 IOCs)
  • Cron jobs added to /etc/cron.d/ or /etc/rc.d/cron on non-standard appliances
  • HTTPS connections from edge appliances to Cloudflare IPs with zero HTTP response body
  • M365 sign-ins from internal IP addresses outside business hours
  • DNS-over-HTTPS queries to 8.8.8.8 from server-class systems
  • Strings matching "PoRaSGw3jzQ8YSaz" in process memory or HTTPS payloads
📋

Phase 8 — Indicators of Compromise

IOCs
TypeIndicatorMalware / Notes
SHA-25640d264cf9c73923932c3dfd52d20f46ff602be3fea8dc6ecc71aca46e6067bf5Brickstorm Linux ELF
SHA-256f70abe93112637d3ec2f6c5e058ccac0307ebf63e496f38588cbfd17a8f8a264Brickstorm FreeBSD variant (pfSense)
SHA-256ee41e06ed96182ce80cd4544a6abd5d7719c4a5c0e5ddb266a83842d39b99b0aAgentPSD Python ELF (6.4MB)
SHA-1eb141a43958802727a6c813452450c10b92fc2e8Plenet .NET Core (2.5MB)
MD598ee964edeb5a988c3bba8ea1e57fe0eAgentPSD
MD595dc2289427ed29b8b996d0e3d1b78cbPlenet
File Path/usr/sbin/luserputBrickstorm on Egnyte Linux
File Path/usr/local/bin/egnyte/egnyte_host_monitor_clientAgentPSD masquerading as Egnyte process
File Path/usr/local/libexec/ipsec/blacklistBrickstorm FreeBSD on pfSense
StringPoRaSGw3jzQ8YSazAgentPSD hardcoded C2 response delimiter
StringwssoftBrickstorm internal package name — present in binary strings
NetworkHTTPS to 8.8.8.8 from server processesAgentPSD DNS-over-HTTPS C2 resolution
NetworkZero-length HTTP/HTTPS responses on port 443Brickstorm/Plenet C2 server fingerprint
NetworkWebSocket upgrade requests from edge devicesBrickstorm or Plenet C2 beaconing
Behaviorsudo tee writing to system binary pathsEgnyte sudoers exploitation
🎯

Phase 9 — Detection & Hunt Queries

DETECTION
01
KQL — Hunt for VerdantBamboo Behavioral Patterns
KQL
KQL — DNS-over-HTTPS from Server Processes (AgentPSD)
// Servers querying Google DoH directly — AgentPSD C2 resolution evasion DeviceNetworkEvents | where RemoteIP == "8.8.8.8" and RemotePort == 443 | where InitiatingProcessFileName !in~ ("chrome.exe","msedge.exe","firefox.exe","brave.exe","iexplore.exe") | where DeviceType == "Server" or isempty(DeviceType) | project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemotePort | order by Timestamp desc
KQL — WebSocket Upgrade from Edge Devices (Brickstorm C2 Beacon)
// WebSocket upgrade requests from non-browser processes — Brickstorm/Plenet C2 DeviceNetworkEvents | where RemotePort == 443 | join kind=leftouter ( DeviceProcessEvents | where FileName !in~ ("chrome.exe","node.exe","electron.exe","msedge.exe") | project DeviceName, ProcessId, FileName ) on DeviceName, $left.InitiatingProcessId == $right.ProcessId | where FileName !in~ ("chrome.exe","msedge.exe","firefox.exe") | summarize ConnectionCount=count(), FirstSeen=min(Timestamp), LastSeen=max(Timestamp) by DeviceName, FileName, RemoteIP | where ConnectionCount > 50 and datetime_diff('hour', LastSeen, FirstSeen) > 24 | order by ConnectionCount desc
KQL — M365 Logins from Internal IPs Outside Business Hours
// Catch VerdantBamboo SOCKS5 proxy M365 access — internal IPs at unusual hours SigninLogs | where IPAddress matches regex @"^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)" | where hourofday(TimeGenerated) !between (8 .. 18) or dayofweek(TimeGenerated) in (time(0d), time(6d)) | where ResultType == 0 | project TimeGenerated, UserPrincipalName, IPAddress, AppDisplayName, Location, DeviceDetail, AuthenticationDetails | order by TimeGenerated desc
KQL — Sudo tee Writing to System Binary Directories
// Detect Egnyte privilege escalation pattern — sudo tee writing to system paths DeviceProcessEvents | where FileName == "tee" and ProcessCommandLine has_any ("/usr/sbin/", "/usr/local/bin/", "/usr/bin/") | where InitiatingProcessFileName in~ ("sudo", "bash", "sh") | project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessFileName, AccountName, FolderPath | order by Timestamp desc
🎯

Phase 10 — MITRE ATT&CK Mapping

ATT&CK
Technique IDTechnique NameVerdantBamboo Implementation
T1190Exploit Public-Facing ApplicationEgnyte Storage Sync sudoers misconfiguration via network-accessible service
T1078Valid AccountsStolen egnyteservice credentials; stolen admin credentials for pfSense re-entry
T1098Account ManipulationCustom SSL VPN configuration added after original VPN removal
T1505.003Server Software Component: Web ShellBrickstorm web server component exposing filesystem via HTTP
T1090.001Proxy: Internal ProxyBrickstorm SOCKS5 proxy routing M365 auth through trusted internal IP
T1550.001Use Alternate Authentication MaterialStolen credentials used via SOCKS5 proxy to bypass Conditional Access
T1071.001Application Layer Protocol: Web ProtocolsBrickstorm and Plenet WebSocket C2; AgentPSD HTTPS C2
T1048.002Exfiltration Over Alternative ProtocolDNS-over-HTTPS to 8.8.8.8 for C2 domain resolution
T1546.004Event Triggered Execution: Unix Shell ConfigurationCron persistence on Linux; /etc/rc.d/cron modification on FreeBSD
T1036.005Masquerading: Match Legitimate NameAgentPSD deployed as egnyte_host_monitor_client
T1133External Remote ServicesCustom web-based SSL VPN configured by attacker for persistent access
T1199Trusted RelationshipMSP compromise leveraged to reach primary victim via delegated admin access
📰

Phase 11 — Sources & References

SOURCES
Volexity — VerdantBamboo: Just Another BRICKSTORM in the Firewall (Primary Source) BleepingComputer — Chinese APT deploys new malware to keep access to hacked networks Google Cloud Threat Intelligence — Another BRICKSTORM: Stealthy Backdoor Enabling Espionage into Tech and Legal Sectors The Hacker News — UNC5221 Uses BRICKSTORM Backdoor to Infiltrate U.S. Legal and Technology Sectors SOC Prime — BRICKSTORM Malware Detection: UNC5221 Targeting U.S. Legal and Tech Sectors

Scan your edge devices for Brickstorm indicators now

Use the CyberHawk IOC Scanner to match VerdantBamboo file hashes and network patterns against your telemetry. Full APT detection packs and hunt rules available at cyberhawkthreatintel.com/threats.

◈ 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."