Back to Intelligence

Check Point Security Gateway PHP2Shell Attacks Deploying VMware ESXi Wipers: Detection, Containment, and Remediation

SA
Security Arsenal Team
November 14, 2026
9 min read

Security teams managing Check Point perimeter infrastructure face an active, destructive threat. Threat actors are exploiting vulnerable Check Point Security Gateway instances through PHP2Shell web shell attacks, gaining initial access, and pivoting directly to VMware ESXi hypervisors to deploy data-wiping malware. This is not theoretical—confirmed in-the-wild exploitation has resulted in complete infrastructure destruction.

The attack chain represents a significant escalation in targeting. Rather than deploying ransomware for financial extortion, adversaries are executing pure destructive operations against virtualization infrastructure. The choice of ESXi as the terminal target is deliberate: hypervisors host dozens to hundreds of virtual machines, and a wiper at this layer ensures maximum organizational impact with minimal opportunity for recovery. When perimeter security devices become the beachhead for hypervisor destruction, traditional defense-in-depth models collapse.

Organizations operating Check Point gateways—particularly those with management interfaces exposed to the internet or insufficiently segmented from core infrastructure—must treat this as an immediate emergency requiring same-day action.

Technical Analysis

Affected Products and Attack Surface

The campaign targets Check Point Security Gateway instances running Gaia OS with the Mobile Access Software Blade or IPsec VPN features enabled. The attack leverages PHP2Shell, a lightweight PHP-based web shell deployed to the gateway's web server component following successful exploitation of unpatched vulnerabilities or weak authentication controls.

Critical architectural context: Check Point gateways sit at the network perimeter with inherent trust relationships to internal segments. Compromise provides adversaries with a authenticated pivot point that bypasses traditional DMZ controls.

Attack Chain Breakdown

From a defender's perspective, the observed intrusion sequence follows this pattern:

Stage 1: Initial Access and Web Shell Deployment Adversaries identify vulnerable Check Point gateway instances through internet-wide scanning. Exploitation of the gateway's web-based management interface or VPN portal allows arbitrary PHP code execution. The PHP2Shell payload—a compact, fileless or minimally persistent web shell—is deployed to the gateway's web root, typically masquerading as a legitimate system file or buried in standard directories.

Stage 2: Internal Reconnaissance and Credential Harvesting Through the web shell, attackers execute discovery commands to map the internal network, identify virtualization infrastructure, and harvest credentials stored on the gateway or cached in memory. Check Point gateways frequently store service account credentials for AD integration, RADIUS authentication, and management plane access—all of which provide lateral movement paths.

Stage 3: ESXi Targeting and Wiper Deployment With harvested credentials or through direct network access from the compromised gateway, adversaries authenticate to ESXi hosts via SSH, vSphere API, or Direct Console User Interface (DCUI). The wiper payload—typically a compiled ELF binary or shell script—is transferred to the hypervisor and executed. Unlike ransomware that encrypts data for potential recovery, wipers overwrite VMFS datastores with random or zeroed data, corrupt virtual machine disk files, and frequently target backup repositories and snapshots to prevent restoration.

Exploitation Status

This is confirmed active exploitation with destructive outcomes. Check Point has released emergency patches, and CISA has added related vulnerabilities to the Known Exploited Vulnerabilities (KEV) catalog with aggressive remediation deadlines for federal agencies—deadlines that private sector organizations should adopt immediately.

Detection & Response

SIGMA Rules

Deploy these Sigma rules to detect web shell activity on Check Point gateways and subsequent ESXi targeting. Tune thresholds based on your environment's baseline.

YAML
---
title: Check Point Gateway PHP Web Shell Execution
id: 8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
status: experimental
description: Detects PHP process spawning shell commands on Check Point Gaia OS, indicative of PHP2Shell web shell activity.
references:
  - https://attack.mitre.org/techniques/T1505/003/
  - https://attack.mitre.org/techniques/T1059/004/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.persistence
  - attack.t1505.003
logsource:
  category: process_creation
  product: linux
detection:
  selection:
    ParentImage|endswith:
      - '/php'
      - '/php-cgi'
      - '/httpd'
      - '/apache2'
    Image|endswith:
      - '/sh'
      - '/bash'
      - '/dash'
      - '/python'
      - '/perl'
      - '/curl'
      - '/wget'
  condition: selection
falsepositives:
  - Legitimate administrative scripts executed via web interface
level: high
---
title: ESXi SSH Authentication from Check Point Gateway
id: 9e4b3c2d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects SSH authentication attempts to ESXi hosts originating from Check Point gateway IP addresses, indicating potential lateral movement.
references:
  - https://attack.mitre.org/techniques/T1021/004/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.lateral_movement
  - attack.t1021.004
logsource:
  category: network_connection
  product: linux
detection:
  selection_source:
    SourceIp|cidr:
      - '10.0.0.0/8'  # Replace with your Check Point gateway IP ranges
      - '172.16.0.0/12'
      - '192.168.0.0/16'
  selection_destination:
    DestinationPort: 22
    DestinationHostname|contains:
      - 'esxi'
      - 'vmware'
      - 'vsphere'
  condition: selection_source and selection_destination
falsepositives:
  - Legitimate backup or monitoring systems with SSH access to ESXi
level: medium
---
title: ESXi Shell Command Execution for Data Destruction
id: 0f5c4d3e-6f7a-8b9c-0d1e-2f3a4b5c6d7e
status: experimental
description: Detects shell commands on ESXi hosts associated with wiper deployment, including datastore enumeration and file overwrite patterns.
references:
  - https://attack.mitre.org/techniques/T1485/
  - https://attack.mitre.org/techniques/T1490/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.impact
  - attack.t1485
logsource:
  category: process_creation
  product: linux
detection:
  selection_enum:
    CommandLine|contains:
      - 'vim-cmd vmsvc/getallvms'
      - 'esxcli storage filesystem list'
      - 'ls /vmfs/volumes/'
  selection_destroy:
    CommandLine|contains:
      - 'dd if=/dev/zero'
      - 'dd if=/dev/urandom'
      - 'shred'
      - 'wipe'
      - 'rm -rf /vmfs'
      - '> /vmfs/volumes/'
  condition: selection_enum or selection_destroy
falsepositives:
  - Legitimate storage maintenance operations
level: critical

KQL Hunting Queries for Microsoft Sentinel

These queries assume Check Point logs are ingested via CEF/Syslog and ESXi logs via syslog forwarder or vSphere integration.

KQL — Microsoft Sentinel / Defender
// Hunt for web shell indicators on Check Point gateways
CommonSecurityLog
| where DeviceVendor == "Check Point"
| where DeviceProduct == "VPN-1 & FireWall-1"
| where Activity has_any ("php", "shell", "cmd", "exec")
| where AdditionalExtensions has_any ("wget", "curl", "chmod", "bash", "sh -c")
| project TimeGenerated, SourceIP, DestinationIP, Activity, Message, AdditionalExtensions
| order by TimeGenerated desc

// Correlate Check Point compromise with ESXi authentication attempts
let checkpoint_ips = CommonSecurityLog
    | where DeviceVendor == "Check Point"
    | where Activity contains "accept"
    | distinct SourceIP;
Syslog
| where Computer has_any ("esxi", "vmware")
| where SyslogMessage has_any ("sshd", "Accepted", "password")
| where HostIP in (checkpoint_ips)
| project TimeGenerated, Computer, HostIP, SyslogMessage, ProcessName

// Detect destructive command patterns on ESXi hosts
Syslog
| where Computer has_any ("esxi", "vmware")
| where SyslogMessage has_any ("dd if=", "shred", "rm -rf", "/vmfs/volumes/", "wipefs")
| where SyslogMessage !has_any ("backup", "legitimate-maintenance-script")  // Tune exclusions
| project TimeGenerated, Computer, SyslogMessage, SeverityLevel
| order by TimeGenerated desc

Velociraptor VQL Artifact

Deploy this VQL artifact to hunt for web shells and suspicious processes on Check Point gateways (requires Velociraptor agent or offline collection).

VQL — Velociraptor
-- Hunt for PHP web shells and suspicious processes on Check Point Gaia OS
SELECT 
    Pid,
    Name,
    CommandLine,
    Exe,
    Username,
    CreateTime,
    ParentPid
FROM pslist()
WHERE 
    (Name =~ 'php|httpd|apache' AND CommandLine =~ 'sh|bash|python|perl|curl|wget')
    OR (CommandLine =~ 'base64|eval|system|exec|shell_exec|passthru')
    OR (Exe =~ '/tmp/|/var/tmp/|/dev/shm/')
ORDER BY CreateTime DESC

-- Check for recently modified PHP files in web directories
SELECT 
    FullPath,
    Size,
    Mtime,
    Ctime
FROM glob(globs='/opt/CP*/**/*.php')
WHERE Mtime > ago(7 * 24 * 3600)  -- Files modified in last 7 days
ORDER BY Mtime DESC

Remediation Script

This Bash script verifies Check Point gateway patch status, checks for web shell indicators, and hardens ESXi SSH access. Execute on management workstations with appropriate credentials.

Bash / Shell
#!/bin/bash
# Check Point PHP2Shell & ESXi Wiper Response Script
# Execute from a secured jump host with SSH access to gateways and ESXi

GATEWAYS=("192.168.1.1" "192.168.1.2")  # Update with your gateway IPs
ESXI_HOSTS=("10.0.0.10" "10.0.0.11")   # Update with your ESXi IPs
LOG_FILE="/tmp/checkpoint_esxi_audit_$(date +%Y%m%d_%H%M%S).log"

echo "[+] Starting security audit at $(date)" | tee -a "$LOG_FILE"

# Function to check Check Point gateway
for GW in "${GATEWAYS[@]}"; do
    echo "[*] Auditing Check Point gateway: $GW" | tee -a "$LOG_FILE"
    
    # Check for suspicious PHP files (adjust paths for your Gaia version)
    ssh admin@"$GW" "find /opt/CPshrd-R81.20/ /opt/CPsuite-R81.20/ -name '*.php' -mtime -7 2>/dev/null" | tee -a "$LOG_FILE"
    
    # Check running processes for web shell indicators
    ssh admin@"$GW" "ps aux | grep -E '(php|httpd)' | grep -v grep" | tee -a "$LOG_FILE"
    
    # Verify patch level (command varies by version - consult Check Point sk)
    ssh admin@"$GW" "show installer status" 2>/dev/null | tee -a "$LOG_FILE"
done

# Function to check ESXi hosts
for ESXI in "${ESXI_HOSTS[@]}"; do
    echo "[*] Auditing ESXi host: $ESXI" | tee -a "$LOG_FILE"
    
    # Check for active SSH sessions from non-management IPs
    ssh root@"$ESXI" "esxcli network ip connection list | grep :22" | tee -a "$LOG_FILE"
    
    # Verify SSH is restricted (check /etc/hosts.allow and hosts.deny)
    ssh root@"$ESXI" "cat /etc/hosts.allow /etc/hosts.deny 2>/dev/null" | tee -a "$LOG_FILE"
    
    # Check for suspicious files in /tmp and /vmfs/volumes
    ssh root@"$ESXI" "find /tmp -type f -mtime -3 -ls 2>/dev/null" | tee -a "$LOG_FILE"
    ssh root@"$ESXI" "ls -la /vmfs/volumes/ | head -20" | tee -a "$LOG_FILE"
done

echo "[+] Audit complete. Review $LOG_FILE for findings."
echo "[!] If suspicious PHP files or processes found: isolate gateway immediately and initiate IR procedure."

Remediation

Immediate actions required within 24 hours:

  1. Patch Check Point gateways immediately. Apply the latest Hotfix from Check Point. For R81.20, install Jumbo Hotfix Accumulator Take 55 or later. For R81.10, Take 85 or later. Verify installation with show installer status and confirm the specific SK addressing PHP2Shell exploitation is applied. Reference: https://support.checkpoint.com/results/sk/sk182337

  2. Isolate and rebuild compromised gateways. If any web shell indicators are found, do not attempt in-place cleaning. Check Point gateways are security appliances—trust is binary. Rebuild from known-good media, restore configuration from pre-compromise backups, and rotate all credentials stored on or accessible to the device.

  3. Harden ESXi access controls. Disable SSH on ESXi hosts when not actively required (vim-cmd hostsvc/enable_ssh only during maintenance windows). Implement lockdown mode, restrict vSphere API access to dedicated management networks, and enforce MFA for all vCenter access. CISA recommends ESXi SSH be disabled by default.

  4. Credential rotation. Reset all domain credentials, service accounts, and local accounts that traversed or were stored on the Check Point gateway. Assume full credential compromise.

  5. Network segmentation verification. Confirm that Check Point management interfaces are not internet-exposed. Implement ACLs restricting ESXi management traffic (TCP 22, 443, 902) to dedicated jump hosts only.

  6. Backup integrity validation. Wipers specifically target backup infrastructure. Verify offline, immutable backups exist and are recoverable. Test restoration of at least one critical VM from backup before declaring recovery complete.

CISA KEV deadline: Federal agencies have 7 days from KEV addition to remediate. Private sector organizations should treat this as an emergency change window requiring same-day patching.

Related Resources

Security Arsenal Managed SOC Services AlertMonitor Platform Book a SOC Assessment soc-mdr Intel Hub

Is your security operations ready?

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