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.

 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 Network icon Network '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_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
TTP detections generate a Finding (Notable) and may generate Intermediate Findings (Risk Events) for associated entities.

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
src ip_address
signature signature

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