This hypothesis targets the presence of the php.shin_webshell, a remote code execution tool used by adversaries to establish persistent access and exfiltrate data from compromised web servers. Proactively hunting for these IOCs in Azure Sentinel allows the SOC team to identify stealthy backdoors that may have bypassed initial perimeter defenses, ensuring rapid containment before the attacker leverages the webshell for lateral movement or data theft.
Malware Family: php.shin_webshell Total IOCs: 6 IOC Types: domain
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| domain | fajujyli.workers.dev | botnet_cc | 2026-09-16 | 50% |
| domain | xyhysa.workers.dev | botnet_cc | 2026-09-16 | 50% |
| domain | hhemb35077.workers.dev | botnet_cc | 2026-09-16 | 50% |
| domain | awv389zkti.workers.dev | botnet_cc | 2026-09-16 | 50% |
| domain | lefahe.workers.dev | botnet_cc | 2026-09-16 | 50% |
| domain | 65ey0xwrct.workers.dev | botnet_cc | 2026-09-16 | 50% |
// Hunt for DNS queries to known malicious domains
// Source: ThreatFox - php.shin_webshell
let malicious_domains = dynamic(["fajujyli.workers.dev", "xyhysa.workers.dev", "hhemb35077.workers.dev", "awv389zkti.workers.dev", "lefahe.workers.dev", "65ey0xwrct.workers.dev"]);
DnsEvents
| where Name has_any (malicious_domains)
| project TimeGenerated, Computer, Name, IPAddresses, QueryType
| order by TimeGenerated desc
| Sentinel Table | Notes |
|---|---|
DnsEvents | Ensure this data connector is enabled |
Scenario: Legacy PHP Frameworks with Unsanitized Input
include() or require() to load dynamic templates based on user-supplied parameters without strict whitelist validation.<?php ... ?> with specific variable assignments) that match the heuristic signatures of the php.shin_webshell IOCs (such as specific base64-encoded strings or common function calls like base64_decode, str_rot13, or eval)./wp-content/plugins/, /wp-content/themes/, /components/) AND the file was modified by a service account associated with the CMS deployment pipeline (e.g., jenkins-cms-deploy or ansible-web-service).Scenario: Scheduled Log Rotation and Cleanup Scripts
/var/log/apache2/ or /var/log/nginx/) using a custom PHP script for integration with a SIEM or data lake.shell_exec() or exec() to run tar or gzip commands and includes standard PHP header/footer logic. If the script is stored in a non-standard location (e.g., /tmp/ or /var/www/html/maintenance/) and contains common obfuscation patterns used in legitimate logging tools (e.g., chr() concatenation for string building