Skip to content

Commit 9fd0a39

Browse files
committed
total_replay_tool
1 parent 5c07389 commit 9fd0a39

File tree

1 file changed

+77
-12
lines changed

1 file changed

+77
-12
lines changed

total_replay/readme.md

Lines changed: 77 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,66 @@ This lightweight tool helps you make the most of Splunk’s [Security Content](h
88

99
## Installation
1010

11-
### MAC/LINUX
12-
#### TOTAL-REPLAY IN SPLUNK ATTACK-DATA REPO
11+
### MAC/LINUX:
12+
13+
**How to install TOTAL-REPLAY when working with Splunk Attack Range or Splunk Attack Data**
14+
15+
#### TOTAL-REPLAY IN SPLUNK ATTACK-RANGE REPO:
16+
---
17+
1318
1. Clone the Splunk Security Content github repo. We recommend to follow this steps [Security Content Getting Started](https://github.com/splunk/security_content).
1419

15-
2. Install Poetry (if not already installed)
20+
2. Clone the Attack Range github repo. We recommend to follow this steps [Attack Range Getting Started](https://github.com/splunk/attack_range).
21+
22+
3. In total_replay->configuration->config.yml, add the folder path of the Splunk Attack Data repo and the detection folder path in Splunk Security Content.
23+
24+
```
25+
settings:
26+
security_content_detection_path: ~/path/to/your/security_content/detections
27+
attack_range_dir_path: ~/path/to/your/attack_range
28+
```
29+
30+
4. enable the `attack_range_version_on` config setting in total_replay->configuration->config.yml:
31+
**NOTE: You can enable either `attack_range_version_on` or `attack_data_version_on` settings**
32+
```
33+
attack_range_version_on: True
34+
```
35+
36+
#### TOTAL-REPLAY IN SPLUNK ATTACK-DATA REPO:
37+
---
38+
39+
1. Clone the Splunk Attack Data github repo. We recommend to follow this steps [Attack Data Getting Started](https://github.com/splunk/attack_data/).
40+
41+
2. Clone the Splunk Security Content github repo. We recommend to follow this steps [Security Content Getting Started](https://github.com/splunk/security_content).
42+
43+
3. Install Poetry (if not already installed)
1644
```
1745
curl -sSL https://install.python-poetry.org/ | python3 -
1846
```
19-
3. Navigate to your project directory
47+
4. Navigate to your project directory
2048
```
2149
cd /path/to/your/total-replay-project
2250
```
23-
4. Create a virtual environment and activate it
51+
5. Create a virtual environment and activate it
2452
```
2553
poetry shell
2654
```
27-
5. Install project dependencies
55+
6. Install project dependencies
2856

29-
6. In total_replay->configuration->config.yml, add the folder path of the Splunk Attack Data repo and the detection folder path in Splunk Security Content.
57+
7. In total_replay->configuration->config.yml, add the folder path of the Splunk Attack Data repo and the detection folder path in Splunk Security Content.
3058

3159
```
3260
settings:
3361
security_content_detection_path: ~/path/to/your/security_content/detections
3462
attack_data_dir_path: ~/path/to/your/attack_data
3563
```
36-
7. make sure you setup the required environment variables for splunk server connection
64+
8. enable the `attack_data_version_on` config setting in total_replay->configuration->config.yml:
65+
**NOTE: You can enable either `attack_range_version_on` or `attack_data_version_on` settings**
66+
```
67+
attack_data_version_on: True
68+
```
69+
70+
9. make sure you setup the required environment variables for splunk server connection
3771

3872
| Environment Variables. | Description |
3973
|----------------------------|-------------------------|
@@ -47,10 +81,15 @@ settings:
4781
export SPLUNK_HEC_TOKEN= <SPLUNK_HEC_TOKEN>
4882
```
4983
50-
### Windows
84+
### Windows OS:
85+
5186
We recommend using the Windows Subsystem for Linux (WSL). You can find a tutorial [here](https://learn.microsoft.com/en-us/windows/wsl/install). After installing WSL, you can follow the steps described in the Linux section.
5287
5388
89+
### OPTIONAL:
90+
- You can toggle the `debug_print` configuration setting of TOTAL-REPLAY to disable or enable debug print during execution.
91+
92+
5493
## Usage
5594
5695
![TOTAL-REPLAY-USAGE](assets/usage.png)
@@ -66,7 +105,10 @@ A. This tool accepts the following types of metadata as input:
66105
67106
It then uses these inputs to identify and replay the attack data associated with them.
68107
69-
B. Or for automation purposes, you can use a simple .txt file like:
108+
B. For automation, you can also provide a simple .txt file.
109+
For example:
110+
111+
**test.txt**:
70112
71113
```
72114
wsreset_uac_bypass.yml
@@ -81,7 +123,30 @@ T1589.001
81123
Amos Stealer
82124
PromptLock
83125
f64579c0-203f-11ec-abcc-acde48001122
84-
004e32e2-146d-11ec-a83f-acde48001122
126+
004e32e2-146d-11ec-a83f-acde48001122
85127
```
86128
87-
that contains all the Security Content metadata you want to replay and then choose if you want to replay them all
129+
This file can contain any mix of Security Content metadata you want to replay.
130+
From there, you can choose whether to replay only detection GUIDs, only analytic stories, or all entries using the tool’s greedy replay feature.
131+
132+
C. TOTAL-REPLAY downloads the required Attack Data each time you execute or replay data during detection testing or development. To help reduce disk space usage, the tool generates a cached .yml file for every downloaded dataset. You can then use the `local_data_path` parameter to replay the cached data, allowing you to avoid downloading the same Attack Data again.
133+
134+
## Author
135+
136+
* [Teoderick Contreras](https://www.linkedin.com/in/teoderickc/)
137+
138+
## License
139+
140+
Copyright 2025 Splunk Inc.
141+
142+
Licensed under the Apache License, Version 2.0 (the "License");
143+
you may not use this file except in compliance with the License.
144+
You may obtain a copy of the License at
145+
146+
http://www.apache.org/licenses/LICENSE-2.0
147+
148+
Unless required by applicable law or agreed to in writing, software
149+
distributed under the License is distributed on an "AS IS" BASIS,
150+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
151+
See the License for the specific language governing permissions and
152+
limitations under the License.

0 commit comments

Comments
 (0)