ID | Technique | Tactic |
---|---|---|
T1189 | Drive-by Compromise | Initial Access |
Detection: Splunk Stored XSS via Specially Crafted Bulletin Message
Description
The following hunting detection provides fields related to /service/messages endpoints where specially crafted bulletin message can exploit stored XSS.
Search
1
2| rest /services/messages
3| search message="*http*"
4| table id author message title
5| `splunk_stored_xss_via_specially_crafted_bulletin_message_filter`
Data Source
Name | Platform | Sourcetype | Source |
---|---|---|---|
Splunk | Splunk | 'splunkd_ui_access' |
'splunkd_ui_access.log' |
Macros Used
Name | Value |
---|
| splunk_stored_xss_via_specially_crafted_bulletin_message_filter | search *
|
splunk_stored_xss_via_specially_crafted_bulletin_message_filter
is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
KillChainPhase.DELIVERY
NistCategory.DE_AE
Cis18Value.CIS_10
APT19
APT28
APT32
APT37
APT38
Andariel
Axiom
BRONZE BUTLER
CURIUM
Daggerfly
Dark Caracal
Darkhotel
Dragonfly
Earth Lusca
Elderwood
Lazarus Group
Leafminer
Leviathan
Machete
Magic Hound
Mustard Tempest
PLATINUM
PROMETHIUM
Patchwork
RTM
Threat Group-3390
Transparent Tribe
Turla
Windigo
Windshift
Winter Vivern
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 Risk Event | False |
This configuration file applies to all detections of type hunting.
Implementation
Need access to Splunk REST api data via search.
Known False Positives
Must look at messages field and find malicious suspicious characters or hyperlinks. Not all requests to this endpoint will be malicious.
Associated Analytic Story
Risk Based Analytics (RBA)
Risk Message | Risk Score | Impact | Confidence |
---|---|---|---|
Please investigate $message for possible XSS attack in bulletin message $message$ | 5 | 10 | 50 |
The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.
References
Detection Testing
Test Type | Status | Dataset | Source | Sourcetype |
---|---|---|---|---|
Validation | ✅ Passing | N/A | N/A | N/A |
Unit | ✅ Passing | Dataset | _json |
_json |
Integration | ✅ Passing | Dataset | _json |
_json |
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: 2