rtexit-method 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +9 -7
- package/packaged-assets/.agents/skills/rt-active-recon/SKILL.md +767 -0
- package/packaged-assets/.agents/skills/rt-active-recon/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-agent-breaker/SKILL.md +65 -0
- package/packaged-assets/.agents/skills/rt-agent-breaker/customize.toml +76 -0
- package/packaged-assets/.agents/skills/rt-agent-commander/SKILL.md +63 -0
- package/packaged-assets/.agents/skills/rt-agent-commander/customize.toml +67 -0
- package/packaged-assets/.agents/skills/rt-agent-ghost/SKILL.md +65 -0
- package/packaged-assets/.agents/skills/rt-agent-ghost/customize.toml +77 -0
- package/packaged-assets/.agents/skills/rt-agent-navigator/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-agent-navigator/customize.toml +61 -0
- package/packaged-assets/.agents/skills/rt-agent-phantom/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-agent-phantom/customize.toml +62 -0
- package/packaged-assets/.agents/skills/rt-agent-scout/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-agent-scout/customize.toml +61 -0
- package/packaged-assets/.agents/skills/rt-agent-scribe/SKILL.md +65 -0
- package/packaged-assets/.agents/skills/rt-agent-scribe/customize.toml +77 -0
- package/packaged-assets/.agents/skills/rt-attack-chain-builder/SKILL.md +476 -0
- package/packaged-assets/.agents/skills/rt-attack-chain-builder/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-attack-surface-map/SKILL.md +1209 -0
- package/packaged-assets/.agents/skills/rt-attack-surface-map/template.md +62 -0
- package/packaged-assets/.agents/skills/rt-autodoc/SKILL.md +258 -0
- package/packaged-assets/.agents/skills/rt-c2-operations/SKILL.md +1072 -0
- package/packaged-assets/.agents/skills/rt-c2-operations/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-compliance-mapper/SKILL.md +773 -0
- package/packaged-assets/.agents/skills/rt-create-sead/SKILL.md +74 -0
- package/packaged-assets/.agents/skills/rt-create-sead/template.md +89 -0
- package/packaged-assets/.agents/skills/rt-create-sead/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-credential-access/SKILL.md +756 -0
- package/packaged-assets/.agents/skills/rt-credential-hunt/SKILL.md +856 -0
- package/packaged-assets/.agents/skills/rt-credential-hunt/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-cvss-calculator/SKILL.md +542 -0
- package/packaged-assets/.agents/skills/rt-cvss-calculator/cvss4-matrix.csv +20 -0
- package/packaged-assets/.agents/skills/rt-data-exfiltration/SKILL.md +784 -0
- package/packaged-assets/.agents/skills/rt-defense-evasion/SKILL.md +987 -0
- package/packaged-assets/.agents/skills/rt-evidence-chain/SKILL.md +712 -0
- package/packaged-assets/.agents/skills/rt-evidence-chain/template.md +31 -0
- package/packaged-assets/.agents/skills/rt-executive-report/SKILL.md +718 -0
- package/packaged-assets/.agents/skills/rt-executive-report/template.md +38 -0
- package/packaged-assets/.agents/skills/rt-executive-report/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-active-directory/SKILL.md +1078 -0
- package/packaged-assets/.agents/skills/rt-exploit-active-directory/ad-checklist.csv +12 -0
- package/packaged-assets/.agents/skills/rt-exploit-active-directory/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-android/SKILL.md +1329 -0
- package/packaged-assets/.agents/skills/rt-exploit-android/masvs-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-exploit-android/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-api/SKILL.md +1547 -0
- package/packaged-assets/.agents/skills/rt-exploit-api/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-auth/SKILL.md +1949 -0
- package/packaged-assets/.agents/skills/rt-exploit-auth/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-bec/SKILL.md +69 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-aws/SKILL.md +865 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-aws/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-azure/SKILL.md +1258 -0
- package/packaged-assets/.agents/skills/rt-exploit-cloud-gcp/SKILL.md +981 -0
- package/packaged-assets/.agents/skills/rt-exploit-containers/SKILL.md +55 -0
- package/packaged-assets/.agents/skills/rt-exploit-databases/SKILL.md +1374 -0
- package/packaged-assets/.agents/skills/rt-exploit-desktop-mac/SKILL.md +834 -0
- package/packaged-assets/.agents/skills/rt-exploit-desktop-win/SKILL.md +903 -0
- package/packaged-assets/.agents/skills/rt-exploit-desktop-win/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-dotnet/SKILL.md +945 -0
- package/packaged-assets/.agents/skills/rt-exploit-elasticsearch/SKILL.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-electron/SKILL.md +1023 -0
- package/packaged-assets/.agents/skills/rt-exploit-electron/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-file-upload/SKILL.md +1576 -0
- package/packaged-assets/.agents/skills/rt-exploit-file-upload/payloads/README.md +4 -0
- package/packaged-assets/.agents/skills/rt-exploit-file-upload/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-firebase/SKILL.md +54 -0
- package/packaged-assets/.agents/skills/rt-exploit-frameworks/SKILL.md +967 -0
- package/packaged-assets/.agents/skills/rt-exploit-idor/SKILL.md +1693 -0
- package/packaged-assets/.agents/skills/rt-exploit-idor/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-injection/SKILL.md +1860 -0
- package/packaged-assets/.agents/skills/rt-exploit-injection/payloads/sqlmap-tampers.txt +22 -0
- package/packaged-assets/.agents/skills/rt-exploit-injection/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-ios/SKILL.md +1214 -0
- package/packaged-assets/.agents/skills/rt-exploit-ios/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-iot/SKILL.md +91 -0
- package/packaged-assets/.agents/skills/rt-exploit-iot/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-java/SKILL.md +1009 -0
- package/packaged-assets/.agents/skills/rt-exploit-jwt/SKILL.md +1327 -0
- package/packaged-assets/.agents/skills/rt-exploit-jwt/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-mongodb/SKILL.md +67 -0
- package/packaged-assets/.agents/skills/rt-exploit-mssql/SKILL.md +52 -0
- package/packaged-assets/.agents/skills/rt-exploit-mysql/SKILL.md +53 -0
- package/packaged-assets/.agents/skills/rt-exploit-network/SKILL.md +118 -0
- package/packaged-assets/.agents/skills/rt-exploit-network/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-nodejs/SKILL.md +852 -0
- package/packaged-assets/.agents/skills/rt-exploit-osticket/SKILL.md +63 -0
- package/packaged-assets/.agents/skills/rt-exploit-phishing/SKILL.md +173 -0
- package/packaged-assets/.agents/skills/rt-exploit-phishing/templates/README.md +4 -0
- package/packaged-assets/.agents/skills/rt-exploit-phishing/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-php/SKILL.md +1119 -0
- package/packaged-assets/.agents/skills/rt-exploit-physical/SKILL.md +63 -0
- package/packaged-assets/.agents/skills/rt-exploit-physical/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-postgresql/SKILL.md +67 -0
- package/packaged-assets/.agents/skills/rt-exploit-python/SKILL.md +986 -0
- package/packaged-assets/.agents/skills/rt-exploit-redis/SKILL.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-ruby/SKILL.md +61 -0
- package/packaged-assets/.agents/skills/rt-exploit-scada/SKILL.md +1091 -0
- package/packaged-assets/.agents/skills/rt-exploit-ssrf/SKILL.md +1528 -0
- package/packaged-assets/.agents/skills/rt-exploit-ssrf/payloads.txt +23 -0
- package/packaged-assets/.agents/skills/rt-exploit-ssrf/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-vishing/SKILL.md +121 -0
- package/packaged-assets/.agents/skills/rt-exploit-vishing/scripts.md +4 -0
- package/packaged-assets/.agents/skills/rt-exploit-web/SKILL.md +1902 -0
- package/packaged-assets/.agents/skills/rt-exploit-web/owasp-checklist.csv +14 -0
- package/packaged-assets/.agents/skills/rt-exploit-web/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-wireless/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-exploit-wordpress/SKILL.md +1565 -0
- package/packaged-assets/.agents/skills/rt-exploit-wordpress/cves.csv +7 -0
- package/packaged-assets/.agents/skills/rt-exploit-wordpress/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-exploit-xss/SKILL.md +1526 -0
- package/packaged-assets/.agents/skills/rt-exploit-xss/payloads.txt +18 -0
- package/packaged-assets/.agents/skills/rt-exploit-xss/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-finding-document/SKILL.md +687 -0
- package/packaged-assets/.agents/skills/rt-finding-document/template.md +71 -0
- package/packaged-assets/.agents/skills/rt-finding-document/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-finding-tracker/SKILL.md +216 -0
- package/packaged-assets/.agents/skills/rt-finding-tracker/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-help/SKILL.md +292 -0
- package/packaged-assets/.agents/skills/rt-help/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-js-analysis/SKILL.md +639 -0
- package/packaged-assets/.agents/skills/rt-js-analysis/patterns.txt +27 -0
- package/packaged-assets/.agents/skills/rt-js-analysis/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-kill-chain-map/SKILL.md +393 -0
- package/packaged-assets/.agents/skills/rt-lateral-movement/SKILL.md +1032 -0
- package/packaged-assets/.agents/skills/rt-lateral-movement/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-methodology-selector/SKILL.md +69 -0
- package/packaged-assets/.agents/skills/rt-methodology-selector/frameworks.csv +10 -0
- package/packaged-assets/.agents/skills/rt-methodology-selector/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-mitre-map/SKILL.md +668 -0
- package/packaged-assets/.agents/skills/rt-mitre-map/tactics.csv +16 -0
- package/packaged-assets/.agents/skills/rt-mitre-map/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-osint/SKILL.md +775 -0
- package/packaged-assets/.agents/skills/rt-osint/osint-sources.csv +12 -0
- package/packaged-assets/.agents/skills/rt-osint/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-party-mode/SKILL.md +249 -0
- package/packaged-assets/.agents/skills/rt-party-mode/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-persistence/SKILL.md +1146 -0
- package/packaged-assets/.agents/skills/rt-persistence/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-poc-writer/SKILL.md +640 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/SKILL.md +998 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/linux-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/windows-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-post-exploitation/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/SKILL.md +1027 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/linux-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/win-checklist.csv +10 -0
- package/packaged-assets/.agents/skills/rt-privilege-escalation/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-remediation-roadmap/SKILL.md +665 -0
- package/packaged-assets/.agents/skills/rt-remediation-roadmap/template.md +28 -0
- package/packaged-assets/.agents/skills/rt-risk-matrix/SKILL.md +232 -0
- package/packaged-assets/.agents/skills/rt-rules-of-engagement/SKILL.md +62 -0
- package/packaged-assets/.agents/skills/rt-rules-of-engagement/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-scenario-c001/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-c002/SKILL.md +69 -0
- package/packaged-assets/.agents/skills/rt-scenario-c003/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-c004/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-c005/SKILL.md +72 -0
- package/packaged-assets/.agents/skills/rt-scenario-d001/SKILL.md +378 -0
- package/packaged-assets/.agents/skills/rt-scenario-d002/SKILL.md +392 -0
- package/packaged-assets/.agents/skills/rt-scenario-d003/SKILL.md +522 -0
- package/packaged-assets/.agents/skills/rt-scenario-d004/SKILL.md +373 -0
- package/packaged-assets/.agents/skills/rt-scenario-d005/SKILL.md +458 -0
- package/packaged-assets/.agents/skills/rt-scenario-library/SKILL.md +292 -0
- package/packaged-assets/.agents/skills/rt-scenario-library/scenarios.csv +32 -0
- package/packaged-assets/.agents/skills/rt-scenario-m001/SKILL.md +796 -0
- package/packaged-assets/.agents/skills/rt-scenario-m002/SKILL.md +723 -0
- package/packaged-assets/.agents/skills/rt-scenario-m003/SKILL.md +463 -0
- package/packaged-assets/.agents/skills/rt-scenario-m004/SKILL.md +449 -0
- package/packaged-assets/.agents/skills/rt-scenario-m005/SKILL.md +505 -0
- package/packaged-assets/.agents/skills/rt-scenario-n001/SKILL.md +573 -0
- package/packaged-assets/.agents/skills/rt-scenario-n002/SKILL.md +112 -0
- package/packaged-assets/.agents/skills/rt-scenario-n003/SKILL.md +100 -0
- package/packaged-assets/.agents/skills/rt-scenario-n004/SKILL.md +90 -0
- package/packaged-assets/.agents/skills/rt-scenario-n005/SKILL.md +71 -0
- package/packaged-assets/.agents/skills/rt-scenario-w001/SKILL.md +635 -0
- package/packaged-assets/.agents/skills/rt-scenario-w002/SKILL.md +612 -0
- package/packaged-assets/.agents/skills/rt-scenario-w003/SKILL.md +449 -0
- package/packaged-assets/.agents/skills/rt-scenario-w004/SKILL.md +648 -0
- package/packaged-assets/.agents/skills/rt-scenario-w005/SKILL.md +479 -0
- package/packaged-assets/.agents/skills/rt-scenario-w006/SKILL.md +443 -0
- package/packaged-assets/.agents/skills/rt-scenario-w007/SKILL.md +494 -0
- package/packaged-assets/.agents/skills/rt-scenario-w008/SKILL.md +576 -0
- package/packaged-assets/.agents/skills/rt-scenario-w009/SKILL.md +518 -0
- package/packaged-assets/.agents/skills/rt-scenario-w010/SKILL.md +574 -0
- package/packaged-assets/.agents/skills/rt-scope-definition/SKILL.md +79 -0
- package/packaged-assets/.agents/skills/rt-scope-definition/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-shodan-recon/SKILL.md +880 -0
- package/packaged-assets/.agents/skills/rt-status/SKILL.md +64 -0
- package/packaged-assets/.agents/skills/rt-subdomain-enum/SKILL.md +906 -0
- package/packaged-assets/.agents/skills/rt-subdomain-enum/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-technical-report/SKILL.md +710 -0
- package/packaged-assets/.agents/skills/rt-technical-report/template.md +41 -0
- package/packaged-assets/.agents/skills/rt-technical-report/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-threat-model/SKILL.md +59 -0
- package/packaged-assets/.agents/skills/rt-threat-model/template.md +32 -0
- package/packaged-assets/.agents/skills/rt-threat-model/workflow.md +68 -0
- package/packaged-assets/.agents/skills/rt-timeline/SKILL.md +338 -0
- package/packaged-assets/RTEXIT.md +127 -0
- package/tools/installer/commands/install.js +0 -1
- package/tools/installer/lib/asset-manifest.js +10 -5
- package/tools/installer/lib/banner.js +14 -6
- package/tools/installer/lib/copy-assets.js +5 -2
- package/tools/installer/lib/prompts.js +1 -11
- package/tools/installer/lib/write-config.js +8 -2
- /package/{_rtexit → packaged-assets/_rtexit}/config.toml +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/config.user.toml +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/custom/config.toml +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/autodoc_engine.py +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/finding_tracker.py +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_config.py +0 -0
- /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_customization.py +0 -0
- /package/{resources → packaged-assets/resources}/certifications.md +0 -0
- /package/{resources → packaged-assets/resources}/payloads.md +0 -0
- /package/{resources → packaged-assets/resources}/tools.md +0 -0
- /package/{resources → packaged-assets/resources}/wordlists.md +0 -0
- /package/{templates → packaged-assets/templates}/attack-chain-template.md +0 -0
- /package/{templates → packaged-assets/templates}/executive-report-template.md +0 -0
- /package/{templates → packaged-assets/templates}/executive-report.md +0 -0
- /package/{templates → packaged-assets/templates}/finding-template.md +0 -0
- /package/{templates → packaged-assets/templates}/remediation-roadmap.md +0 -0
- /package/{templates → packaged-assets/templates}/sead-template.md +0 -0
- /package/{templates → packaged-assets/templates}/technical-report.md +0 -0
|
@@ -0,0 +1,668 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rt-mitre-map
|
|
3
|
+
description: "Map Red Team findings to MITRE ATT&CK framework tactics and techniques. Identify technique IDs for each finding, create coverage matrix, and generate ATT&CK Navigator layer JSON. Covers all 14 tactics and 200+ techniques. Helps demonstrate adversary simulation depth and aligns with threat intelligence."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# rt-mitre-map — MITRE ATT&CK Mapping Skill
|
|
7
|
+
|
|
8
|
+
## 1. Overview and Purpose
|
|
9
|
+
|
|
10
|
+
The `rt-mitre-map` skill translates raw Red Team findings into structured MITRE ATT&CK coverage. It answers the fundamental client question: *"Which adversary behaviors did you simulate, and how does that compare to real-world threat actors targeting our industry?"*
|
|
11
|
+
|
|
12
|
+
### When to Use This Skill
|
|
13
|
+
|
|
14
|
+
- After collecting three or more confirmed findings from `finding_tracker.py`
|
|
15
|
+
- Before generating the executive or technical report (gives the report its threat-intelligence anchor)
|
|
16
|
+
- When a client requests ATT&CK Navigator layers for their SOC or purple team
|
|
17
|
+
- When demonstrating adversary simulation depth versus a standard vulnerability assessment
|
|
18
|
+
|
|
19
|
+
### Position in Engagement Lifecycle
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Reconnaissance -> Exploitation -> Post-Exploitation -> [rt-mitre-map] -> Reporting
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The mapping step sits between findings collection and final report generation. It enriches each finding with a technique ID, groups findings by tactic, calculates coverage breadth, and exports a Navigator layer the client can import directly.
|
|
26
|
+
|
|
27
|
+
### What This Skill Produces
|
|
28
|
+
|
|
29
|
+
1. Per-finding technique annotations (written back to findings-master.csv via `finding_tracker.py`)
|
|
30
|
+
2. A Markdown coverage matrix organized by tactic
|
|
31
|
+
3. An ATT&CK Navigator layer JSON file ready to import at `https://mitre-attack.github.io/attack-navigator/`
|
|
32
|
+
4. A threat actor alignment section mapping your coverage to known APT groups
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 2. Step-by-Step Workflow
|
|
37
|
+
|
|
38
|
+
### Step 1 — Load All Confirmed Findings
|
|
39
|
+
|
|
40
|
+
Pull the current finding list from the tracker:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
python3 {project-root}/_rtexit/scripts/finding_tracker.py list
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Expected output example:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
ID SEVERITY CVSS TITLE ASSET
|
|
50
|
+
F-001 CRITICAL 9.8 SQL Injection in /api/v1/login api.acmecorp.com
|
|
51
|
+
F-002 HIGH 8.1 NTLM Hash Capture via Responder 192.168.10.0/24
|
|
52
|
+
F-003 HIGH 7.5 Kerberoastable Service Account (svc-sql) ACME\svc-sql
|
|
53
|
+
F-004 MEDIUM 6.5 Insecure Direct Object Reference portal.acmecorp.com
|
|
54
|
+
F-005 MEDIUM 5.9 Password Spraying — 3 Accounts Locked ACME AD
|
|
55
|
+
F-006 LOW 3.1 Verbose Error Messages — Stack Traces api.acmecorp.com
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Note the existing `mitre` field in each row. This is the field you will populate.
|
|
59
|
+
|
|
60
|
+
### Step 2 — Map Each Finding to ATT&CK Technique(s)
|
|
61
|
+
|
|
62
|
+
For each finding, identify the primary technique ID and, if applicable, a sub-technique. Use the format `TXXXX` for a technique and `TXXXX.XXX` for a sub-technique.
|
|
63
|
+
|
|
64
|
+
Reference the 14 ATT&CK Enterprise tactics (in kill-chain order):
|
|
65
|
+
|
|
66
|
+
| # | Tactic ID | Tactic Name | TA Code |
|
|
67
|
+
|---|-----------|------------------------|-----------|
|
|
68
|
+
| 1 | TA0043 | Reconnaissance | RECON |
|
|
69
|
+
| 2 | TA0042 | Resource Development | RESDEV |
|
|
70
|
+
| 3 | TA0001 | Initial Access | INITACC |
|
|
71
|
+
| 4 | TA0002 | Execution | EXEC |
|
|
72
|
+
| 5 | TA0003 | Persistence | PERSIST |
|
|
73
|
+
| 6 | TA0004 | Privilege Escalation | PRIVESC |
|
|
74
|
+
| 7 | TA0005 | Defense Evasion | DEFEVAS |
|
|
75
|
+
| 8 | TA0006 | Credential Access | CREDACC |
|
|
76
|
+
| 9 | TA0007 | Discovery | DISCOV |
|
|
77
|
+
|10 | TA0008 | Lateral Movement | LATMOV |
|
|
78
|
+
|11 | TA0009 | Collection | COLLECT |
|
|
79
|
+
|12 | TA0011 | Command and Control | C2 |
|
|
80
|
+
|13 | TA0010 | Exfiltration | EXFIL |
|
|
81
|
+
|14 | TA0040 | Impact | IMPACT |
|
|
82
|
+
|
|
83
|
+
**Mapping Decision Logic:**
|
|
84
|
+
|
|
85
|
+
Ask these questions for each finding:
|
|
86
|
+
- What did the attacker *do* to exploit this? -> that is the technique
|
|
87
|
+
- What tactic does that action serve? -> that is the tactic
|
|
88
|
+
- Is there a more specific sub-technique that fits? -> prefer sub-techniques when they exist
|
|
89
|
+
|
|
90
|
+
**Common Finding-to-Technique Mappings (reference table):**
|
|
91
|
+
|
|
92
|
+
| Finding Type | Technique ID | Technique Name | Tactic |
|
|
93
|
+
|---------------------------------------|-------------------|--------------------------------------------|-------------|
|
|
94
|
+
| SQL Injection (authentication bypass) | T1190 | Exploit Public-Facing Application | Initial Access |
|
|
95
|
+
| SQL Injection (data extraction) | T1005 | Data from Local System | Collection |
|
|
96
|
+
| NTLM Hash Capture (Responder) | T1557.001 | Adversary-in-the-Middle: LLMNR/NBT-NS Poisoning | Credential Access |
|
|
97
|
+
| Kerberoasting | T1558.003 | Steal or Forge Kerberos Tickets: Kerberoasting | Credential Access |
|
|
98
|
+
| Password Spraying | T1110.003 | Brute Force: Password Spraying | Credential Access |
|
|
99
|
+
| IDOR | T1078 | Valid Accounts | Defense Evasion / Initial Access |
|
|
100
|
+
| Verbose Error Messages | T1592.002 | Gather Victim Host Information: Software | Reconnaissance |
|
|
101
|
+
| Pass-the-Hash | T1550.002 | Use Alternate Authentication Material: Pass the Hash | Lateral Movement |
|
|
102
|
+
| DCSync | T1003.006 | OS Credential Dumping: DCSync | Credential Access |
|
|
103
|
+
| Scheduled Task Persistence | T1053.005 | Scheduled Task/Job: Scheduled Task | Persistence |
|
|
104
|
+
| Registry Run Key | T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys | Persistence |
|
|
105
|
+
| LSASS Memory Dump | T1003.001 | OS Credential Dumping: LSASS Memory | Credential Access |
|
|
106
|
+
| Living-off-the-Land (LOLBins) | T1218 | System Binary Proxy Execution | Defense Evasion |
|
|
107
|
+
| Phishing with Attachment | T1566.001 | Phishing: Spearphishing Attachment | Initial Access |
|
|
108
|
+
| Command-Line Interface | T1059.001 | Command and Scripting Interpreter: PowerShell | Execution |
|
|
109
|
+
| SMB Lateral Movement | T1021.002 | Remote Services: SMB/Windows Admin Shares | Lateral Movement |
|
|
110
|
+
| Data Staged for Exfil | T1074.001 | Data Staged: Local Data Staging | Collection |
|
|
111
|
+
| Exfil over HTTPS | T1048.002 | Exfiltration Over Alternative Protocol: HTTPS | Exfiltration |
|
|
112
|
+
|
|
113
|
+
### Step 3 — Annotate Findings in the Tracker
|
|
114
|
+
|
|
115
|
+
Update each finding with its technique ID using the `mitre` field:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Update F-001 with technique T1190
|
|
119
|
+
python3 {project-root}/_rtexit/scripts/finding_tracker.py add \
|
|
120
|
+
"SQL Injection in /api/v1/login" CRITICAL 9.8 \
|
|
121
|
+
--asset "api.acmecorp.com" \
|
|
122
|
+
--mitre "T1190" \
|
|
123
|
+
--cwe "CWE-89" \
|
|
124
|
+
--phase "exploitation"
|
|
125
|
+
|
|
126
|
+
# For existing findings, edit findings-master.csv directly and update the mitre column:
|
|
127
|
+
# F-001 -> T1190
|
|
128
|
+
# F-002 -> T1557.001
|
|
129
|
+
# F-003 -> T1558.003
|
|
130
|
+
# F-004 -> T1078
|
|
131
|
+
# F-005 -> T1110.003
|
|
132
|
+
# F-006 -> T1592.002
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Then export the annotated list to confirm changes:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
python3 {project-root}/_rtexit/scripts/finding_tracker.py export --format csv
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Log the mapping activity to the timeline:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
python3 {project-root}/_rtexit/scripts/autodoc_engine.py log \
|
|
145
|
+
--skill rt-mitre-map \
|
|
146
|
+
--phase reporting \
|
|
147
|
+
--note "MITRE ATT&CK mapping completed — 6 findings mapped across 4 tactics"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Step 4 — Build the Coverage Matrix
|
|
151
|
+
|
|
152
|
+
Organize mapped findings by tactic. Count unique techniques per tactic. This becomes Section 3 of your report.
|
|
153
|
+
|
|
154
|
+
**Template format:**
|
|
155
|
+
|
|
156
|
+
```markdown
|
|
157
|
+
## ATT&CK Coverage Matrix — ACME Corporation Red Team
|
|
158
|
+
**Engagement:** RT-2025-031
|
|
159
|
+
**Date:** 2025-05-31
|
|
160
|
+
**Techniques Demonstrated:** 6 unique techniques across 4 tactics
|
|
161
|
+
|
|
162
|
+
### TA0001 — Initial Access
|
|
163
|
+
| Technique ID | Technique Name | Finding Ref | Severity | Validated |
|
|
164
|
+
|--------------|---------------------------------------|-------------|----------|-----------|
|
|
165
|
+
| T1190 | Exploit Public-Facing Application | F-001 | CRITICAL | Yes |
|
|
166
|
+
|
|
167
|
+
### TA0006 — Credential Access
|
|
168
|
+
| Technique ID | Technique Name | Finding Ref | Severity | Validated |
|
|
169
|
+
|--------------|-----------------------------------------------------------|-------------|----------|-----------|
|
|
170
|
+
| T1557.001 | LLMNR/NBT-NS Poisoning and SMB Relay | F-002 | HIGH | Yes |
|
|
171
|
+
| T1558.003 | Steal or Forge Kerberos Tickets: Kerberoasting | F-003 | HIGH | Yes |
|
|
172
|
+
| T1110.003 | Brute Force: Password Spraying | F-005 | MEDIUM | Yes |
|
|
173
|
+
|
|
174
|
+
### TA0005 — Defense Evasion
|
|
175
|
+
| Technique ID | Technique Name | Finding Ref | Severity | Validated |
|
|
176
|
+
|--------------|---------------------|-------------|----------|-----------|
|
|
177
|
+
| T1078 | Valid Accounts | F-004 | MEDIUM | Yes |
|
|
178
|
+
|
|
179
|
+
### TA0043 — Reconnaissance
|
|
180
|
+
| Technique ID | Technique Name | Finding Ref | Severity | Validated |
|
|
181
|
+
|--------------|-------------------------------------------------|-------------|----------|-----------|
|
|
182
|
+
| T1592.002 | Gather Victim Host Information: Software | F-006 | LOW | Yes |
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Step 5 — Generate ATT&CK Navigator Layer JSON
|
|
186
|
+
|
|
187
|
+
Create the JSON layer file. Save it to `{project-root}/_rtexit-output/docs/reports/attack-navigator-layer.json`.
|
|
188
|
+
|
|
189
|
+
The layer format for ATT&CK Navigator v4.9:
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"name": "ACME Corporation Red Team — RT-2025-031",
|
|
194
|
+
"versions": {
|
|
195
|
+
"attack": "16",
|
|
196
|
+
"navigator": "4.9",
|
|
197
|
+
"layer": "4.5"
|
|
198
|
+
},
|
|
199
|
+
"domain": "enterprise-attack",
|
|
200
|
+
"description": "Red Team engagement findings mapped to MITRE ATT&CK Enterprise v16. Engagement conducted 2025-05-15 through 2025-05-31.",
|
|
201
|
+
"filters": {
|
|
202
|
+
"platforms": ["Windows", "Linux", "Network", "PRE", "SaaS"]
|
|
203
|
+
},
|
|
204
|
+
"sorting": 0,
|
|
205
|
+
"layout": {
|
|
206
|
+
"layout": "side",
|
|
207
|
+
"aggregateFunction": "average",
|
|
208
|
+
"showID": true,
|
|
209
|
+
"showName": true,
|
|
210
|
+
"showAggregateScores": false,
|
|
211
|
+
"countUnscored": false
|
|
212
|
+
},
|
|
213
|
+
"hideDisabled": false,
|
|
214
|
+
"techniques": [
|
|
215
|
+
{
|
|
216
|
+
"techniqueID": "T1190",
|
|
217
|
+
"tactic": "initial-access",
|
|
218
|
+
"color": "#ff0000",
|
|
219
|
+
"comment": "F-001: SQL Injection in /api/v1/login — CVSS 9.8 — CRITICAL",
|
|
220
|
+
"enabled": true,
|
|
221
|
+
"metadata": [],
|
|
222
|
+
"links": [],
|
|
223
|
+
"showSubtechniques": false,
|
|
224
|
+
"score": 100
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"techniqueID": "T1557",
|
|
228
|
+
"subtechniqueOf": "",
|
|
229
|
+
"tactic": "credential-access",
|
|
230
|
+
"color": "#ff6600",
|
|
231
|
+
"comment": "F-002: NTLM Hash Capture via Responder — CVSS 8.1 — HIGH",
|
|
232
|
+
"enabled": true,
|
|
233
|
+
"metadata": [],
|
|
234
|
+
"links": [],
|
|
235
|
+
"showSubtechniques": true,
|
|
236
|
+
"score": 80
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"techniqueID": "T1557.001",
|
|
240
|
+
"tactic": "credential-access",
|
|
241
|
+
"color": "#ff6600",
|
|
242
|
+
"comment": "F-002: NTLM Hash Capture via Responder (LLMNR Poisoning) — CVSS 8.1 — HIGH",
|
|
243
|
+
"enabled": true,
|
|
244
|
+
"metadata": [],
|
|
245
|
+
"links": [],
|
|
246
|
+
"showSubtechniques": false,
|
|
247
|
+
"score": 80
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"techniqueID": "T1558",
|
|
251
|
+
"subtechniqueOf": "",
|
|
252
|
+
"tactic": "credential-access",
|
|
253
|
+
"color": "#ff6600",
|
|
254
|
+
"comment": "F-003: Kerberoastable Service Account (svc-sql) — CVSS 7.5 — HIGH",
|
|
255
|
+
"enabled": true,
|
|
256
|
+
"metadata": [],
|
|
257
|
+
"links": [],
|
|
258
|
+
"showSubtechniques": true,
|
|
259
|
+
"score": 80
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"techniqueID": "T1558.003",
|
|
263
|
+
"tactic": "credential-access",
|
|
264
|
+
"color": "#ff6600",
|
|
265
|
+
"comment": "F-003: Kerberoastable Service Account (svc-sql) — CVSS 7.5 — HIGH",
|
|
266
|
+
"enabled": true,
|
|
267
|
+
"metadata": [],
|
|
268
|
+
"links": [],
|
|
269
|
+
"showSubtechniques": false,
|
|
270
|
+
"score": 80
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"techniqueID": "T1078",
|
|
274
|
+
"tactic": "defense-evasion",
|
|
275
|
+
"color": "#ffaa00",
|
|
276
|
+
"comment": "F-004: IDOR — Accessing other users records via valid session token — CVSS 6.5 — MEDIUM",
|
|
277
|
+
"enabled": true,
|
|
278
|
+
"metadata": [],
|
|
279
|
+
"links": [],
|
|
280
|
+
"showSubtechniques": false,
|
|
281
|
+
"score": 60
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"techniqueID": "T1110",
|
|
285
|
+
"subtechniqueOf": "",
|
|
286
|
+
"tactic": "credential-access",
|
|
287
|
+
"color": "#ffaa00",
|
|
288
|
+
"comment": "F-005: Password Spraying — 3 accounts temporarily locked — CVSS 5.9 — MEDIUM",
|
|
289
|
+
"enabled": true,
|
|
290
|
+
"metadata": [],
|
|
291
|
+
"links": [],
|
|
292
|
+
"showSubtechniques": true,
|
|
293
|
+
"score": 60
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"techniqueID": "T1110.003",
|
|
297
|
+
"tactic": "credential-access",
|
|
298
|
+
"color": "#ffaa00",
|
|
299
|
+
"comment": "F-005: Password Spraying — 3 accounts temporarily locked — CVSS 5.9 — MEDIUM",
|
|
300
|
+
"enabled": true,
|
|
301
|
+
"metadata": [],
|
|
302
|
+
"links": [],
|
|
303
|
+
"showSubtechniques": false,
|
|
304
|
+
"score": 60
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"techniqueID": "T1592",
|
|
308
|
+
"subtechniqueOf": "",
|
|
309
|
+
"tactic": "reconnaissance",
|
|
310
|
+
"color": "#aaaaaa",
|
|
311
|
+
"comment": "F-006: Verbose Error Messages expose stack traces — CVSS 3.1 — LOW",
|
|
312
|
+
"enabled": true,
|
|
313
|
+
"metadata": [],
|
|
314
|
+
"links": [],
|
|
315
|
+
"showSubtechniques": true,
|
|
316
|
+
"score": 30
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"techniqueID": "T1592.002",
|
|
320
|
+
"tactic": "reconnaissance",
|
|
321
|
+
"color": "#aaaaaa",
|
|
322
|
+
"comment": "F-006: Verbose Error Messages expose stack traces — CVSS 3.1 — LOW",
|
|
323
|
+
"enabled": true,
|
|
324
|
+
"metadata": [],
|
|
325
|
+
"links": [],
|
|
326
|
+
"showSubtechniques": false,
|
|
327
|
+
"score": 30
|
|
328
|
+
}
|
|
329
|
+
],
|
|
330
|
+
"gradient": {
|
|
331
|
+
"colors": ["#ffffff", "#ffaa00", "#ff0000"],
|
|
332
|
+
"minValue": 0,
|
|
333
|
+
"maxValue": 100
|
|
334
|
+
},
|
|
335
|
+
"legendItems": [
|
|
336
|
+
{"label": "CRITICAL (score 100)", "color": "#ff0000"},
|
|
337
|
+
{"label": "HIGH (score 80)", "color": "#ff6600"},
|
|
338
|
+
{"label": "MEDIUM (score 60)", "color": "#ffaa00"},
|
|
339
|
+
{"label": "LOW (score 30)", "color": "#aaaaaa"}
|
|
340
|
+
],
|
|
341
|
+
"metadata": [
|
|
342
|
+
{"name": "Engagement", "value": "RT-2025-031"},
|
|
343
|
+
{"name": "Client", "value": "ACME Corporation"},
|
|
344
|
+
{"name": "Operator", "value": "Red Team"},
|
|
345
|
+
{"name": "ATT&CK Version", "value": "Enterprise v16"}
|
|
346
|
+
],
|
|
347
|
+
"links": [],
|
|
348
|
+
"showTacticRowBackground": true,
|
|
349
|
+
"tacticRowBackground": "#1a1a2e",
|
|
350
|
+
"selectTechniquesAcrossTactics": false,
|
|
351
|
+
"selectSubtechniquesWithParent": false
|
|
352
|
+
}
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
**Score-to-color mapping guide:**
|
|
356
|
+
- CRITICAL findings: score 100, color `#ff0000`
|
|
357
|
+
- HIGH findings: score 80, color `#ff6600`
|
|
358
|
+
- MEDIUM findings: score 60, color `#ffaa00`
|
|
359
|
+
- LOW findings: score 30, color `#aaaaaa`
|
|
360
|
+
- INFO findings: score 10, color `#dddddd`
|
|
361
|
+
|
|
362
|
+
### Step 6 — Threat Actor Alignment (Optional but High-Value)
|
|
363
|
+
|
|
364
|
+
Map your coverage against known APT groups relevant to the client's industry. Pull this data from MITRE ATT&CK Groups (https://attack.mitre.org/groups/).
|
|
365
|
+
|
|
366
|
+
**Example — Financial Sector Client:**
|
|
367
|
+
|
|
368
|
+
```markdown
|
|
369
|
+
## Threat Actor Alignment
|
|
370
|
+
|
|
371
|
+
The following APT groups are known to target the Financial Services sector.
|
|
372
|
+
This table compares the techniques demonstrated during the engagement against
|
|
373
|
+
techniques attributed to each threat actor.
|
|
374
|
+
|
|
375
|
+
| Threat Actor | Known Techniques (relevant subset) | Demonstrated in Engagement |
|
|
376
|
+
|---------------|----------------------------------------------|---------------------------|
|
|
377
|
+
| FIN7 | T1190, T1566.001, T1078, T1059.001, T1074 | T1190, T1078 (2/5 = 40%) |
|
|
378
|
+
| Lazarus Group | T1110, T1557, T1059, T1021, T1041 | T1110, T1557 (2/5 = 40%) |
|
|
379
|
+
| APT41 | T1190, T1558, T1003, T1021, T1074 | T1190, T1558 (2/5 = 40%) |
|
|
380
|
+
|
|
381
|
+
### Key Finding
|
|
382
|
+
The engagement demonstrated techniques used by all three APT groups known to target
|
|
383
|
+
the financial sector. The organization's current detective controls failed to alert
|
|
384
|
+
on T1557.001 (LLMNR Poisoning) and T1558.003 (Kerberoasting), both of which are
|
|
385
|
+
primary techniques in Lazarus Group and APT41 playbooks respectively.
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 3. Templates
|
|
391
|
+
|
|
392
|
+
### 3.1 — Coverage Summary Block (for executive report)
|
|
393
|
+
|
|
394
|
+
```markdown
|
|
395
|
+
## 4. MITRE ATT&CK Coverage Summary
|
|
396
|
+
|
|
397
|
+
During this engagement, the Red Team successfully demonstrated **6 MITRE ATT&CK
|
|
398
|
+
techniques** spanning **4 of the 14 enterprise tactics**. This reflects a realistic
|
|
399
|
+
adversary simulation targeting the organization's external perimeter and internal
|
|
400
|
+
Active Directory environment.
|
|
401
|
+
|
|
402
|
+
| Tactic | Techniques Demonstrated | Highest Severity |
|
|
403
|
+
|---------------------|------------------------|------------------|
|
|
404
|
+
| Reconnaissance | 1 | LOW |
|
|
405
|
+
| Initial Access | 1 | CRITICAL |
|
|
406
|
+
| Credential Access | 3 | HIGH |
|
|
407
|
+
| Defense Evasion | 1 | MEDIUM |
|
|
408
|
+
|
|
409
|
+
**Coverage breadth:** 6 techniques out of 200+ in the ATT&CK Enterprise matrix.
|
|
410
|
+
This is consistent with a focused, targeted engagement rather than a broad simulation.
|
|
411
|
+
|
|
412
|
+
A full ATT&CK Navigator layer has been provided as a separate deliverable
|
|
413
|
+
(attack-navigator-layer.json) for import into the client's security operations platform.
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
### 3.2 — Per-Finding ATT&CK Block (for technical report finding section)
|
|
417
|
+
|
|
418
|
+
```markdown
|
|
419
|
+
### F-003: Kerberoastable Service Account (svc-sql)
|
|
420
|
+
|
|
421
|
+
**Severity:** HIGH | **CVSS:** 7.5 (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H)
|
|
422
|
+
**Asset:** ACME\svc-sql
|
|
423
|
+
**Phase:** Post-Exploitation
|
|
424
|
+
|
|
425
|
+
#### MITRE ATT&CK Mapping
|
|
426
|
+
- **Tactic:** Credential Access (TA0006)
|
|
427
|
+
- **Technique:** Steal or Forge Kerberos Tickets (T1558)
|
|
428
|
+
- **Sub-technique:** Kerberoasting (T1558.003)
|
|
429
|
+
- **ATT&CK URL:** https://attack.mitre.org/techniques/T1558/003/
|
|
430
|
+
|
|
431
|
+
#### Technique Description
|
|
432
|
+
Kerberoasting abuses the Kerberos authentication protocol to request service tickets
|
|
433
|
+
for service principal names (SPNs) associated with domain accounts. The encrypted
|
|
434
|
+
ticket can be extracted and cracked offline without any special privileges. The
|
|
435
|
+
`svc-sql` account was configured with SPN `MSSQLSvc/dbserver.acme.local:1433` and
|
|
436
|
+
had a 12-character password that was cracked in 4 hours using a targeted wordlist.
|
|
437
|
+
|
|
438
|
+
#### Detection Opportunity
|
|
439
|
+
- Windows Event ID 4769 (Kerberos Service Ticket Request) with Encryption Type 0x17 (RC4)
|
|
440
|
+
- Anomalous volume of TGS requests from a single user account
|
|
441
|
+
- SIEM rule: `EventID=4769 AND TicketEncryptionType=0x17 AND NOT AccountName=machine$`
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## 4. Integration with Scripts
|
|
447
|
+
|
|
448
|
+
### 4.1 — finding_tracker.py Integration
|
|
449
|
+
|
|
450
|
+
The `mitre` field in `findings-master.csv` accepts a comma-separated list of technique IDs. When a finding maps to multiple techniques (e.g., a pivot that used both Pass-the-Hash and SMB lateral movement), list all:
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
# Single technique
|
|
454
|
+
python3 _rtexit/scripts/finding_tracker.py add \
|
|
455
|
+
"Kerberoastable Service Account" HIGH 7.5 \
|
|
456
|
+
--asset "ACME\svc-sql" \
|
|
457
|
+
--mitre "T1558.003" \
|
|
458
|
+
--phase "post-exploitation"
|
|
459
|
+
|
|
460
|
+
# Multiple techniques (comma-separated, no spaces)
|
|
461
|
+
# Edit findings-master.csv directly for this:
|
|
462
|
+
# mitre field: "T1550.002,T1021.002"
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Pull stats after mapping to confirm coverage:
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
python3 _rtexit/scripts/finding_tracker.py stats
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
Expected output after mapping:
|
|
472
|
+
|
|
473
|
+
```
|
|
474
|
+
=== Engagement Statistics ===
|
|
475
|
+
Total Findings : 6
|
|
476
|
+
CRITICAL : 1
|
|
477
|
+
HIGH : 2
|
|
478
|
+
MEDIUM : 2
|
|
479
|
+
LOW : 1
|
|
480
|
+
|
|
481
|
+
Findings with MITRE mapping : 6/6 (100%)
|
|
482
|
+
Tactics covered : 4
|
|
483
|
+
Unique techniques : 6
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### 4.2 — autodoc_engine.py Integration
|
|
487
|
+
|
|
488
|
+
Log every significant mapping action:
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
# Log start of mapping session
|
|
492
|
+
python3 _rtexit/scripts/autodoc_engine.py log \
|
|
493
|
+
--skill rt-mitre-map \
|
|
494
|
+
--phase reporting \
|
|
495
|
+
--note "Started MITRE ATT&CK mapping — 6 findings to process"
|
|
496
|
+
|
|
497
|
+
# Log completion with layer file creation
|
|
498
|
+
python3 _rtexit/scripts/autodoc_engine.py log \
|
|
499
|
+
--skill rt-mitre-map \
|
|
500
|
+
--phase reporting \
|
|
501
|
+
--note "ATT&CK Navigator layer generated — attack-navigator-layer.json"
|
|
502
|
+
|
|
503
|
+
# Log the layer file as evidence
|
|
504
|
+
python3 _rtexit/scripts/autodoc_engine.py custody \
|
|
505
|
+
--finding "ALL" \
|
|
506
|
+
--evidence "_rtexit-output/docs/reports/attack-navigator-layer.json"
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### 4.3 — Output File Locations
|
|
510
|
+
|
|
511
|
+
| Artifact | Path |
|
|
512
|
+
|-------------------------------|----------------------------------------------------------------|
|
|
513
|
+
| Coverage matrix (Markdown) | `_rtexit-output/docs/reports/mitre-coverage-matrix.md` |
|
|
514
|
+
| Navigator layer JSON | `_rtexit-output/docs/reports/attack-navigator-layer.json` |
|
|
515
|
+
| Annotated findings CSV | `_rtexit-output/docs/findings/findings-master.csv` |
|
|
516
|
+
| Timeline entry | `_rtexit-output/docs/engagement/timeline.md` |
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
## 5. Quality Checklist
|
|
521
|
+
|
|
522
|
+
Before finalizing the MITRE mapping deliverable, verify each item:
|
|
523
|
+
|
|
524
|
+
### Mapping Accuracy
|
|
525
|
+
- [ ] Every confirmed finding (status=CONFIRMED) has at least one technique ID
|
|
526
|
+
- [ ] All technique IDs are verified against ATT&CK Enterprise v16 (not v14 or earlier)
|
|
527
|
+
- [ ] Sub-techniques are used where they exist and fit (e.g., T1110.003 not just T1110)
|
|
528
|
+
- [ ] Tactic assignment matches the technique's listed tactic in the ATT&CK matrix
|
|
529
|
+
- [ ] Findings mapped to multiple techniques list each one (comma-separated in CSV)
|
|
530
|
+
|
|
531
|
+
### Navigator Layer Quality
|
|
532
|
+
- [ ] All technique IDs appear both as parent technique and sub-technique entries
|
|
533
|
+
- [ ] Colors correctly reflect severity (red=critical, orange=high, amber=medium, grey=low)
|
|
534
|
+
- [ ] Comments in each technique entry reference the finding ID and title
|
|
535
|
+
- [ ] Layer metadata includes engagement reference, client name, and ATT&CK version
|
|
536
|
+
- [ ] JSON is valid (no trailing commas, all brackets closed)
|
|
537
|
+
|
|
538
|
+
### Coverage Matrix Quality
|
|
539
|
+
- [ ] Matrix is organized by tactic in kill-chain order (not alphabetically)
|
|
540
|
+
- [ ] Each row includes: Technique ID, Technique Name, Finding Ref, Severity, Validated
|
|
541
|
+
- [ ] Tactics with zero findings are omitted (do not list empty tactic sections)
|
|
542
|
+
- [ ] Summary statistics match the actual finding count
|
|
543
|
+
|
|
544
|
+
### Report Integration
|
|
545
|
+
- [ ] Executive summary references the number of tactics and techniques demonstrated
|
|
546
|
+
- [ ] Each finding's technical write-up includes the ATT&CK mapping block
|
|
547
|
+
- [ ] Navigator layer JSON file is referenced and included as a deliverable
|
|
548
|
+
- [ ] Threat actor alignment section names at least one APT group relevant to the client's sector
|
|
549
|
+
|
|
550
|
+
### Documentation
|
|
551
|
+
- [ ] Timeline updated via `autodoc_engine.py log`
|
|
552
|
+
- [ ] Navigator layer logged to chain of custody via `autodoc_engine.py custody`
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## 6. Example Finished Output
|
|
557
|
+
|
|
558
|
+
### Example: Coverage Matrix Section (Markdown, full)
|
|
559
|
+
|
|
560
|
+
```markdown
|
|
561
|
+
# MITRE ATT&CK Coverage Matrix
|
|
562
|
+
**Engagement:** RT-2025-031 — ACME Corporation External + Internal Red Team
|
|
563
|
+
**Period:** 2025-05-15 to 2025-05-31
|
|
564
|
+
**ATT&CK Version:** Enterprise v16
|
|
565
|
+
**Techniques Demonstrated:** 6 unique across 4 tactics
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
## TA0043 — Reconnaissance
|
|
570
|
+
|
|
571
|
+
| Technique ID | Technique Name | Finding | Severity | Validated |
|
|
572
|
+
|--------------|--------------------------------------------|---------|----------|-----------|
|
|
573
|
+
| T1592.002 | Gather Victim Host Information: Software | F-006 | LOW | Yes |
|
|
574
|
+
|
|
575
|
+
> **Tactic Total:** 1 technique | Highest severity: LOW
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
## TA0001 — Initial Access
|
|
580
|
+
|
|
581
|
+
| Technique ID | Technique Name | Finding | Severity | Validated |
|
|
582
|
+
|--------------|-----------------------------------------|---------|----------|-----------|
|
|
583
|
+
| T1190 | Exploit Public-Facing Application | F-001 | CRITICAL | Yes |
|
|
584
|
+
|
|
585
|
+
> **Tactic Total:** 1 technique | Highest severity: CRITICAL
|
|
586
|
+
|
|
587
|
+
---
|
|
588
|
+
|
|
589
|
+
## TA0006 — Credential Access
|
|
590
|
+
|
|
591
|
+
| Technique ID | Technique Name | Finding | Severity | Validated |
|
|
592
|
+
|--------------|-----------------------------------------------------------------|---------|----------|-----------|
|
|
593
|
+
| T1557.001 | Adversary-in-the-Middle: LLMNR/NBT-NS Poisoning and SMB Relay | F-002 | HIGH | Yes |
|
|
594
|
+
| T1558.003 | Steal or Forge Kerberos Tickets: Kerberoasting | F-003 | HIGH | Yes |
|
|
595
|
+
| T1110.003 | Brute Force: Password Spraying | F-005 | MEDIUM | Yes |
|
|
596
|
+
|
|
597
|
+
> **Tactic Total:** 3 techniques | Highest severity: HIGH
|
|
598
|
+
|
|
599
|
+
---
|
|
600
|
+
|
|
601
|
+
## TA0005 — Defense Evasion
|
|
602
|
+
|
|
603
|
+
| Technique ID | Technique Name | Finding | Severity | Validated |
|
|
604
|
+
|--------------|-----------------|---------|----------|-----------|
|
|
605
|
+
| T1078 | Valid Accounts | F-004 | MEDIUM | Yes |
|
|
606
|
+
|
|
607
|
+
> **Tactic Total:** 1 technique | Highest severity: MEDIUM
|
|
608
|
+
|
|
609
|
+
---
|
|
610
|
+
|
|
611
|
+
## Coverage Summary
|
|
612
|
+
|
|
613
|
+
| Metric | Value |
|
|
614
|
+
|---------------------------------|---------------------|
|
|
615
|
+
| Total findings mapped | 6 |
|
|
616
|
+
| Unique techniques demonstrated | 6 |
|
|
617
|
+
| Tactics covered | 4 of 14 (29%) |
|
|
618
|
+
| Techniques with sub-technique | 3 (T1557.001, T1558.003, T1110.003) |
|
|
619
|
+
| Findings with no mapping | 0 |
|
|
620
|
+
| ATT&CK Navigator layer | attack-navigator-layer.json |
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
### Example: Executive Summary Paragraph (drop-in)
|
|
624
|
+
|
|
625
|
+
```
|
|
626
|
+
The Red Team demonstrated six adversary techniques across four MITRE ATT&CK tactics,
|
|
627
|
+
including Initial Access, Credential Access, Defense Evasion, and Reconnaissance.
|
|
628
|
+
The most critical path involved exploiting a SQL injection vulnerability to gain
|
|
629
|
+
initial access (T1190), followed by credential theft via LLMNR poisoning (T1557.001)
|
|
630
|
+
and Kerberoasting (T1558.003) to obtain domain credentials. These techniques are
|
|
631
|
+
actively used by FIN7 and APT41, both of which have a documented history of targeting
|
|
632
|
+
organizations in the financial services sector. A full ATT&CK Navigator layer is
|
|
633
|
+
provided as a companion deliverable for integration with the client's SOC detection
|
|
634
|
+
engineering workflow.
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
---
|
|
638
|
+
|
|
639
|
+
## 7. Common Mistakes to Avoid
|
|
640
|
+
|
|
641
|
+
### Mistake 1: Mapping to the tactic, not the technique
|
|
642
|
+
**Wrong:** Listing "Credential Access" as the technique identifier.
|
|
643
|
+
**Right:** List the specific technique `T1558.003` and note that it belongs to tactic `TA0006 — Credential Access`.
|
|
644
|
+
|
|
645
|
+
### Mistake 2: Using outdated technique IDs
|
|
646
|
+
ATT&CK retires and renumbers techniques across versions. For example, `T1003` (Credential Dumping) was restructured into sub-techniques in v7. Always verify against the current version (v16 as of this writing).
|
|
647
|
+
**Check:** https://attack.mitre.org/techniques/enterprise/ before finalizing any ID.
|
|
648
|
+
|
|
649
|
+
### Mistake 3: Mapping information disclosure as "Collection"
|
|
650
|
+
Verbose error messages, banner grabbing, and directory listings feed the attacker's knowledge but are not Collection (TA0009). They belong to Reconnaissance (TA0043) — specifically T1592 or T1590 depending on what information is gathered.
|
|
651
|
+
|
|
652
|
+
### Mistake 4: Omitting the parent technique from the Navigator layer
|
|
653
|
+
Navigator uses both parent and sub-technique entries. If you add `T1558.003` without also adding `T1558`, the parent row will be blank in the Navigator and clients will see an incomplete visualization. Always add both.
|
|
654
|
+
|
|
655
|
+
### Mistake 5: Using the wrong tactic for Valid Accounts (T1078)
|
|
656
|
+
T1078 appears under four tactics: Initial Access, Persistence, Privilege Escalation, and Defense Evasion. Choose the tactic that matches how it was used in the finding. Using stolen credentials to log into a portal is Initial Access. Using them to avoid detection by blending into legitimate traffic is Defense Evasion.
|
|
657
|
+
|
|
658
|
+
### Mistake 6: Generating the Navigator layer manually without verifying JSON validity
|
|
659
|
+
A single misplaced comma makes the entire layer unimportable. Always validate the JSON:
|
|
660
|
+
```bash
|
|
661
|
+
python3 -m json.tool attack-navigator-layer.json > /dev/null && echo "JSON valid" || echo "JSON invalid"
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
### Mistake 7: Mapping unvalidated findings
|
|
665
|
+
Only map findings with status `CONFIRMED` in the tracker. Suspected or unconfirmed findings should not appear in the ATT&CK matrix, as clients and threat intelligence teams treat this data as factual adversary behavior evidence.
|
|
666
|
+
|
|
667
|
+
### Mistake 8: Skipping the threat actor alignment section
|
|
668
|
+
The mapping exercise without threat actor alignment leaves value on the table. Even a one-paragraph comparison to a known APT group relevant to the client's sector transforms the deliverable from a technical artifact into a business risk narrative.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
tactic,enterprise_id,description,example_rtexit_skills
|
|
2
|
+
Reconnaissance,TA0043,Gather target information,rt-osint;rt-subdomain-enum
|
|
3
|
+
Resource Development,TA0042,Establish resources for operations,rt-rules-of-engagement
|
|
4
|
+
Initial Access,TA0001,Gain initial foothold,rt-exploit-web;rt-exploit-phishing
|
|
5
|
+
Execution,TA0002,Run attacker-controlled logic,rt-exploit-injection;rt-scenario-d001
|
|
6
|
+
Persistence,TA0003,Maintain access,rt-persistence
|
|
7
|
+
Privilege Escalation,TA0004,Gain higher privileges,rt-privilege-escalation;rt-exploit-active-directory
|
|
8
|
+
Defense Evasion,TA0005,Avoid detection,rt-defense-evasion
|
|
9
|
+
Credential Access,TA0006,Obtain credentials,rt-credential-access;rt-credential-hunt
|
|
10
|
+
Discovery,TA0007,Understand environment,rt-post-exploitation
|
|
11
|
+
Lateral Movement,TA0008,Move across systems,rt-lateral-movement
|
|
12
|
+
Collection,TA0009,Gather target data,rt-data-exfiltration
|
|
13
|
+
Command and Control,TA0011,Maintain communication,rt-c2-operations
|
|
14
|
+
Exfiltration,TA0010,Remove data,rt-data-exfiltration
|
|
15
|
+
Impact,TA0040,Disrupt or manipulate,rt-risk-matrix
|
|
16
|
+
|