| ID | Technique | Tactic |
|---|---|---|
| T1190 | Exploit Public-Facing Application | Initial Access |
Detection: Cisco Secure Firewall - PHP2Shell Exploitation Attempt
Description
This correlation analytic identifies likely PHP2Shell exploitation attempts by correlating a PHP memory disclosure indicator with either of two independent PHP web exploitation indicators from Cisco Secure Firewall Threat Defense Intrusion Events. Seeing these behaviors from the same source against the same destination within a short period can indicate an attempt to improve the reliability of subsequent exploitation. Investigate the complete network and web server activity.
Search
1`cisco_secure_firewall` EventType=IntrusionEvent SignatureID IN (67359, 67360, 67375)
2
3| bin _time span=5m
4
5| fillnull
6
7| stats dc(SignatureID) as unique_signature_count
8 values(SignatureID) as SignatureID
9 values(signature) as signature
10 values(class_desc) as class_desc
11 values(MitreAttackGroups) as MitreAttackGroups
12 values(InlineResult) as InlineResult
13 values(InlineResultReason) as InlineResultReason
14 values(dest_port) as dest_port
15 values(rule) as rule
16 values(transport) as transport
17 values(app) as app
18 min(_time) as firstTime
19 max(_time) as lastTime
20 count(eval(SignatureID=67375)) as sig_memory_disclosure
21 count(eval(SignatureID=67359)) as sig_serialized_activity
22 count(eval(SignatureID=67360)) as sig_upload_activity
23 by _time src dest
24
25| where sig_memory_disclosure >= 1 AND (sig_serialized_activity >= 1 OR sig_upload_activity >= 1)
26
27| `security_content_ctime(firstTime)`
28
29| `security_content_ctime(lastTime)`
30
31| `cisco_secure_firewall___php2shell_exploitation_attempt_filter`
Data Source
| Name | Platform | Sourcetype | Source |
|---|---|---|---|
| Cisco Secure Firewall Threat Defense Intrusion Event | 'cisco:sfw:estreamer' |
'not_applicable' |
Macros Used
| Name | Value |
|---|---|
| cisco_secure_firewall | sourcetype="cisco:sfw:estreamer" |
| cisco_secure_firewall___php2shell_exploitation_attempt_filter | search * |
cisco_secure_firewall___php2shell_exploitation_attempt_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
CVE
Default Configuration
This detection is configured by default in Splunk Enterprise Security to run with the following settings:
| Setting | Value |
|---|---|
| Disabled | true |
| Cron Schedule | 0 * * * * |
| Earliest Time | -70m@m |
| Latest Time | -10m@m |
| Schedule Window | auto |
| Creates Finding (Notable) | Yes |
| Rule Title | %name% |
| Rule Description | %description% |
| Notable Event Fields | user, dest |
| Creates Intermediate Finding (Risk Event) | No |
Implementation
This search requires Cisco Secure Firewall Threat Defense logs with IntrusionEvent data.
It uses the cisco_secure_firewall input macro, configure it for your environment (index, source, sourcetype).
Ensure intrusion events are collected via the Splunk Add-on for Cisco Security Cloud (https://splunkbase.splunk.com/app/7404) and that the relevant intrusion policy is enabled.
Known False Positives
Security testing may trigger multiple related signatures. Review event timing, source, destination, and application context.
Associated Analytic Story
Finding
| Title | Entity Field | Entity Type | Risk Score |
|---|---|---|---|
| PHP2Shell exploitation activity from [$src$] targeting [$dest$] | dest | system | 70 |
Threat Objects
| Field | Type |
|---|---|
| signature | signature |
| src | ip_address |
References
Detection Testing
| Test Type | Status | Dataset | Source | Sourcetype |
|---|---|---|---|---|
| Validation | ✅ Passing | N/A | N/A | N/A |
| Unit | ✅ Passing | Dataset | not_applicable |
cisco:sfw:estreamer |
| Integration | ✅ Passing | Dataset | not_applicable |
cisco:sfw:estreamer |
Replay any dataset to Splunk Enterprise by using our replay.py tool or the UI.
Alternatively you can replay a dataset into a Splunk Attack Range
Source: GitHub |
Version: 1