| ID | Technique | Tactic |
|---|---|---|
| T1190 | Exploit Public-Facing Application | Initial Access |
Detection: Cisco Secure Firewall - PHP2Shell Suspicious Upload Activity
Description
This analytic detects suspicious PHP web application upload activity using Cisco Secure Firewall Threat Defense Intrusion Events. The matching network signature identifies a request pattern associated with attempts to exhaust server resources through PHP session handling. Investigate the source, targeted application, and related web server activity to determine whether the request was part of PHP2Shell exploitation.
Search
1`cisco_secure_firewall` EventType=IntrusionEvent SignatureID=67360
2
3| fillnull
4
5| stats min(_time) as firstTime
6 max(_time) as lastTime
7 values(SignatureID) as SignatureID
8 values(signature) as signature
9 values(class_desc) as class_desc
10 values(MitreAttackGroups) as MitreAttackGroups
11 values(InlineResult) as InlineResult
12 values(InlineResultReason) as InlineResultReason
13 values(src) as src
14 values(dest_port) as dest_port
15 values(rule) as rule
16 values(transport) as transport
17 values(app) as app
18 by dest
19
20| `security_content_ctime(firstTime)`
21
22| `security_content_ctime(lastTime)`
23
24| `cisco_secure_firewall___php2shell_suspicious_upload_activity_filter`
Data Source
| Name | Platform | Sourcetype | Source |
|---|---|---|---|
| Cisco Secure Firewall Threat Defense Intrusion Event | 'cisco:sfw:estreamer' |
'not_applicable' |
Macros Used
| Name | Value |
|---|---|
| security_content_ctime | convert timeformat="%Y-%m-%dT%H:%M:%S" ctime($field$) |
| cisco_secure_firewall___php2shell_suspicious_upload_activity_filter | search * |
cisco_secure_firewall___php2shell_suspicious_upload_activity_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
Approved load testing or unusual multipart uploads may trigger this signature. Review the request context and the targeted service.
Associated Analytic Story
Finding
| Title | Entity Field | Entity Type | Risk Score |
|---|---|---|---|
| Suspicious PHP upload activity from [$src$] targeting [$dest$] | dest | system | 50 |
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