rtexit-method 0.1.0 → 0.1.1

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.
Files changed (220) hide show
  1. package/package.json +2 -5
  2. package/packaged-assets/.agents/skills/rt-active-recon/SKILL.md +767 -0
  3. package/packaged-assets/.agents/skills/rt-active-recon/workflow.md +68 -0
  4. package/packaged-assets/.agents/skills/rt-agent-breaker/SKILL.md +65 -0
  5. package/packaged-assets/.agents/skills/rt-agent-breaker/customize.toml +76 -0
  6. package/packaged-assets/.agents/skills/rt-agent-commander/SKILL.md +63 -0
  7. package/packaged-assets/.agents/skills/rt-agent-commander/customize.toml +67 -0
  8. package/packaged-assets/.agents/skills/rt-agent-ghost/SKILL.md +65 -0
  9. package/packaged-assets/.agents/skills/rt-agent-ghost/customize.toml +77 -0
  10. package/packaged-assets/.agents/skills/rt-agent-navigator/SKILL.md +62 -0
  11. package/packaged-assets/.agents/skills/rt-agent-navigator/customize.toml +61 -0
  12. package/packaged-assets/.agents/skills/rt-agent-phantom/SKILL.md +62 -0
  13. package/packaged-assets/.agents/skills/rt-agent-phantom/customize.toml +62 -0
  14. package/packaged-assets/.agents/skills/rt-agent-scout/SKILL.md +62 -0
  15. package/packaged-assets/.agents/skills/rt-agent-scout/customize.toml +61 -0
  16. package/packaged-assets/.agents/skills/rt-agent-scribe/SKILL.md +65 -0
  17. package/packaged-assets/.agents/skills/rt-agent-scribe/customize.toml +77 -0
  18. package/packaged-assets/.agents/skills/rt-attack-chain-builder/SKILL.md +476 -0
  19. package/packaged-assets/.agents/skills/rt-attack-chain-builder/workflow.md +68 -0
  20. package/packaged-assets/.agents/skills/rt-attack-surface-map/SKILL.md +1209 -0
  21. package/packaged-assets/.agents/skills/rt-attack-surface-map/template.md +62 -0
  22. package/packaged-assets/.agents/skills/rt-autodoc/SKILL.md +258 -0
  23. package/packaged-assets/.agents/skills/rt-c2-operations/SKILL.md +1072 -0
  24. package/packaged-assets/.agents/skills/rt-c2-operations/workflow.md +68 -0
  25. package/packaged-assets/.agents/skills/rt-compliance-mapper/SKILL.md +773 -0
  26. package/packaged-assets/.agents/skills/rt-create-sead/SKILL.md +74 -0
  27. package/packaged-assets/.agents/skills/rt-create-sead/template.md +89 -0
  28. package/packaged-assets/.agents/skills/rt-create-sead/workflow.md +68 -0
  29. package/packaged-assets/.agents/skills/rt-credential-access/SKILL.md +756 -0
  30. package/packaged-assets/.agents/skills/rt-credential-hunt/SKILL.md +856 -0
  31. package/packaged-assets/.agents/skills/rt-credential-hunt/workflow.md +68 -0
  32. package/packaged-assets/.agents/skills/rt-cvss-calculator/SKILL.md +542 -0
  33. package/packaged-assets/.agents/skills/rt-cvss-calculator/cvss4-matrix.csv +20 -0
  34. package/packaged-assets/.agents/skills/rt-data-exfiltration/SKILL.md +784 -0
  35. package/packaged-assets/.agents/skills/rt-defense-evasion/SKILL.md +987 -0
  36. package/packaged-assets/.agents/skills/rt-evidence-chain/SKILL.md +712 -0
  37. package/packaged-assets/.agents/skills/rt-evidence-chain/template.md +31 -0
  38. package/packaged-assets/.agents/skills/rt-executive-report/SKILL.md +718 -0
  39. package/packaged-assets/.agents/skills/rt-executive-report/template.md +38 -0
  40. package/packaged-assets/.agents/skills/rt-executive-report/workflow.md +68 -0
  41. package/packaged-assets/.agents/skills/rt-exploit-active-directory/SKILL.md +1078 -0
  42. package/packaged-assets/.agents/skills/rt-exploit-active-directory/ad-checklist.csv +12 -0
  43. package/packaged-assets/.agents/skills/rt-exploit-active-directory/workflow.md +68 -0
  44. package/packaged-assets/.agents/skills/rt-exploit-android/SKILL.md +1329 -0
  45. package/packaged-assets/.agents/skills/rt-exploit-android/masvs-checklist.csv +10 -0
  46. package/packaged-assets/.agents/skills/rt-exploit-android/workflow.md +68 -0
  47. package/packaged-assets/.agents/skills/rt-exploit-api/SKILL.md +1547 -0
  48. package/packaged-assets/.agents/skills/rt-exploit-api/workflow.md +68 -0
  49. package/packaged-assets/.agents/skills/rt-exploit-auth/SKILL.md +1949 -0
  50. package/packaged-assets/.agents/skills/rt-exploit-auth/workflow.md +68 -0
  51. package/packaged-assets/.agents/skills/rt-exploit-bec/SKILL.md +69 -0
  52. package/packaged-assets/.agents/skills/rt-exploit-cloud-aws/SKILL.md +865 -0
  53. package/packaged-assets/.agents/skills/rt-exploit-cloud-aws/workflow.md +68 -0
  54. package/packaged-assets/.agents/skills/rt-exploit-cloud-azure/SKILL.md +1258 -0
  55. package/packaged-assets/.agents/skills/rt-exploit-cloud-gcp/SKILL.md +981 -0
  56. package/packaged-assets/.agents/skills/rt-exploit-containers/SKILL.md +55 -0
  57. package/packaged-assets/.agents/skills/rt-exploit-databases/SKILL.md +1374 -0
  58. package/packaged-assets/.agents/skills/rt-exploit-desktop-mac/SKILL.md +834 -0
  59. package/packaged-assets/.agents/skills/rt-exploit-desktop-win/SKILL.md +903 -0
  60. package/packaged-assets/.agents/skills/rt-exploit-desktop-win/workflow.md +68 -0
  61. package/packaged-assets/.agents/skills/rt-exploit-dotnet/SKILL.md +945 -0
  62. package/packaged-assets/.agents/skills/rt-exploit-elasticsearch/SKILL.md +68 -0
  63. package/packaged-assets/.agents/skills/rt-exploit-electron/SKILL.md +1023 -0
  64. package/packaged-assets/.agents/skills/rt-exploit-electron/workflow.md +68 -0
  65. package/packaged-assets/.agents/skills/rt-exploit-file-upload/SKILL.md +1576 -0
  66. package/packaged-assets/.agents/skills/rt-exploit-file-upload/payloads/README.md +4 -0
  67. package/packaged-assets/.agents/skills/rt-exploit-file-upload/workflow.md +68 -0
  68. package/packaged-assets/.agents/skills/rt-exploit-firebase/SKILL.md +54 -0
  69. package/packaged-assets/.agents/skills/rt-exploit-frameworks/SKILL.md +967 -0
  70. package/packaged-assets/.agents/skills/rt-exploit-idor/SKILL.md +1693 -0
  71. package/packaged-assets/.agents/skills/rt-exploit-idor/workflow.md +68 -0
  72. package/packaged-assets/.agents/skills/rt-exploit-injection/SKILL.md +1860 -0
  73. package/packaged-assets/.agents/skills/rt-exploit-injection/payloads/sqlmap-tampers.txt +22 -0
  74. package/packaged-assets/.agents/skills/rt-exploit-injection/workflow.md +68 -0
  75. package/packaged-assets/.agents/skills/rt-exploit-ios/SKILL.md +1214 -0
  76. package/packaged-assets/.agents/skills/rt-exploit-ios/workflow.md +68 -0
  77. package/packaged-assets/.agents/skills/rt-exploit-iot/SKILL.md +91 -0
  78. package/packaged-assets/.agents/skills/rt-exploit-iot/workflow.md +68 -0
  79. package/packaged-assets/.agents/skills/rt-exploit-java/SKILL.md +1009 -0
  80. package/packaged-assets/.agents/skills/rt-exploit-jwt/SKILL.md +1327 -0
  81. package/packaged-assets/.agents/skills/rt-exploit-jwt/workflow.md +68 -0
  82. package/packaged-assets/.agents/skills/rt-exploit-mongodb/SKILL.md +67 -0
  83. package/packaged-assets/.agents/skills/rt-exploit-mssql/SKILL.md +52 -0
  84. package/packaged-assets/.agents/skills/rt-exploit-mysql/SKILL.md +53 -0
  85. package/packaged-assets/.agents/skills/rt-exploit-network/SKILL.md +118 -0
  86. package/packaged-assets/.agents/skills/rt-exploit-network/workflow.md +68 -0
  87. package/packaged-assets/.agents/skills/rt-exploit-nodejs/SKILL.md +852 -0
  88. package/packaged-assets/.agents/skills/rt-exploit-osticket/SKILL.md +63 -0
  89. package/packaged-assets/.agents/skills/rt-exploit-phishing/SKILL.md +173 -0
  90. package/packaged-assets/.agents/skills/rt-exploit-phishing/templates/README.md +4 -0
  91. package/packaged-assets/.agents/skills/rt-exploit-phishing/workflow.md +68 -0
  92. package/packaged-assets/.agents/skills/rt-exploit-php/SKILL.md +1119 -0
  93. package/packaged-assets/.agents/skills/rt-exploit-physical/SKILL.md +63 -0
  94. package/packaged-assets/.agents/skills/rt-exploit-physical/workflow.md +68 -0
  95. package/packaged-assets/.agents/skills/rt-exploit-postgresql/SKILL.md +67 -0
  96. package/packaged-assets/.agents/skills/rt-exploit-python/SKILL.md +986 -0
  97. package/packaged-assets/.agents/skills/rt-exploit-redis/SKILL.md +68 -0
  98. package/packaged-assets/.agents/skills/rt-exploit-ruby/SKILL.md +61 -0
  99. package/packaged-assets/.agents/skills/rt-exploit-scada/SKILL.md +1091 -0
  100. package/packaged-assets/.agents/skills/rt-exploit-ssrf/SKILL.md +1528 -0
  101. package/packaged-assets/.agents/skills/rt-exploit-ssrf/payloads.txt +23 -0
  102. package/packaged-assets/.agents/skills/rt-exploit-ssrf/workflow.md +68 -0
  103. package/packaged-assets/.agents/skills/rt-exploit-vishing/SKILL.md +121 -0
  104. package/packaged-assets/.agents/skills/rt-exploit-vishing/scripts.md +4 -0
  105. package/packaged-assets/.agents/skills/rt-exploit-web/SKILL.md +1902 -0
  106. package/packaged-assets/.agents/skills/rt-exploit-web/owasp-checklist.csv +14 -0
  107. package/packaged-assets/.agents/skills/rt-exploit-web/workflow.md +68 -0
  108. package/packaged-assets/.agents/skills/rt-exploit-wireless/SKILL.md +71 -0
  109. package/packaged-assets/.agents/skills/rt-exploit-wordpress/SKILL.md +1565 -0
  110. package/packaged-assets/.agents/skills/rt-exploit-wordpress/cves.csv +7 -0
  111. package/packaged-assets/.agents/skills/rt-exploit-wordpress/workflow.md +68 -0
  112. package/packaged-assets/.agents/skills/rt-exploit-xss/SKILL.md +1526 -0
  113. package/packaged-assets/.agents/skills/rt-exploit-xss/payloads.txt +18 -0
  114. package/packaged-assets/.agents/skills/rt-exploit-xss/workflow.md +68 -0
  115. package/packaged-assets/.agents/skills/rt-finding-document/SKILL.md +687 -0
  116. package/packaged-assets/.agents/skills/rt-finding-document/template.md +71 -0
  117. package/packaged-assets/.agents/skills/rt-finding-document/workflow.md +68 -0
  118. package/packaged-assets/.agents/skills/rt-finding-tracker/SKILL.md +216 -0
  119. package/packaged-assets/.agents/skills/rt-finding-tracker/workflow.md +68 -0
  120. package/packaged-assets/.agents/skills/rt-help/SKILL.md +292 -0
  121. package/packaged-assets/.agents/skills/rt-help/workflow.md +68 -0
  122. package/packaged-assets/.agents/skills/rt-js-analysis/SKILL.md +639 -0
  123. package/packaged-assets/.agents/skills/rt-js-analysis/patterns.txt +27 -0
  124. package/packaged-assets/.agents/skills/rt-js-analysis/workflow.md +68 -0
  125. package/packaged-assets/.agents/skills/rt-kill-chain-map/SKILL.md +393 -0
  126. package/packaged-assets/.agents/skills/rt-lateral-movement/SKILL.md +1032 -0
  127. package/packaged-assets/.agents/skills/rt-lateral-movement/workflow.md +68 -0
  128. package/packaged-assets/.agents/skills/rt-methodology-selector/SKILL.md +69 -0
  129. package/packaged-assets/.agents/skills/rt-methodology-selector/frameworks.csv +10 -0
  130. package/packaged-assets/.agents/skills/rt-methodology-selector/workflow.md +68 -0
  131. package/packaged-assets/.agents/skills/rt-mitre-map/SKILL.md +668 -0
  132. package/packaged-assets/.agents/skills/rt-mitre-map/tactics.csv +16 -0
  133. package/packaged-assets/.agents/skills/rt-mitre-map/workflow.md +68 -0
  134. package/packaged-assets/.agents/skills/rt-osint/SKILL.md +775 -0
  135. package/packaged-assets/.agents/skills/rt-osint/osint-sources.csv +12 -0
  136. package/packaged-assets/.agents/skills/rt-osint/workflow.md +68 -0
  137. package/packaged-assets/.agents/skills/rt-party-mode/SKILL.md +249 -0
  138. package/packaged-assets/.agents/skills/rt-party-mode/workflow.md +68 -0
  139. package/packaged-assets/.agents/skills/rt-persistence/SKILL.md +1146 -0
  140. package/packaged-assets/.agents/skills/rt-persistence/workflow.md +68 -0
  141. package/packaged-assets/.agents/skills/rt-poc-writer/SKILL.md +640 -0
  142. package/packaged-assets/.agents/skills/rt-post-exploitation/SKILL.md +998 -0
  143. package/packaged-assets/.agents/skills/rt-post-exploitation/linux-checklist.csv +10 -0
  144. package/packaged-assets/.agents/skills/rt-post-exploitation/windows-checklist.csv +10 -0
  145. package/packaged-assets/.agents/skills/rt-post-exploitation/workflow.md +68 -0
  146. package/packaged-assets/.agents/skills/rt-privilege-escalation/SKILL.md +1027 -0
  147. package/packaged-assets/.agents/skills/rt-privilege-escalation/linux-checklist.csv +10 -0
  148. package/packaged-assets/.agents/skills/rt-privilege-escalation/win-checklist.csv +10 -0
  149. package/packaged-assets/.agents/skills/rt-privilege-escalation/workflow.md +68 -0
  150. package/packaged-assets/.agents/skills/rt-remediation-roadmap/SKILL.md +665 -0
  151. package/packaged-assets/.agents/skills/rt-remediation-roadmap/template.md +28 -0
  152. package/packaged-assets/.agents/skills/rt-risk-matrix/SKILL.md +232 -0
  153. package/packaged-assets/.agents/skills/rt-rules-of-engagement/SKILL.md +62 -0
  154. package/packaged-assets/.agents/skills/rt-rules-of-engagement/workflow.md +68 -0
  155. package/packaged-assets/.agents/skills/rt-scenario-c001/SKILL.md +71 -0
  156. package/packaged-assets/.agents/skills/rt-scenario-c002/SKILL.md +69 -0
  157. package/packaged-assets/.agents/skills/rt-scenario-c003/SKILL.md +71 -0
  158. package/packaged-assets/.agents/skills/rt-scenario-c004/SKILL.md +71 -0
  159. package/packaged-assets/.agents/skills/rt-scenario-c005/SKILL.md +72 -0
  160. package/packaged-assets/.agents/skills/rt-scenario-d001/SKILL.md +378 -0
  161. package/packaged-assets/.agents/skills/rt-scenario-d002/SKILL.md +392 -0
  162. package/packaged-assets/.agents/skills/rt-scenario-d003/SKILL.md +522 -0
  163. package/packaged-assets/.agents/skills/rt-scenario-d004/SKILL.md +373 -0
  164. package/packaged-assets/.agents/skills/rt-scenario-d005/SKILL.md +458 -0
  165. package/packaged-assets/.agents/skills/rt-scenario-library/SKILL.md +292 -0
  166. package/packaged-assets/.agents/skills/rt-scenario-library/scenarios.csv +32 -0
  167. package/packaged-assets/.agents/skills/rt-scenario-m001/SKILL.md +796 -0
  168. package/packaged-assets/.agents/skills/rt-scenario-m002/SKILL.md +723 -0
  169. package/packaged-assets/.agents/skills/rt-scenario-m003/SKILL.md +463 -0
  170. package/packaged-assets/.agents/skills/rt-scenario-m004/SKILL.md +449 -0
  171. package/packaged-assets/.agents/skills/rt-scenario-m005/SKILL.md +505 -0
  172. package/packaged-assets/.agents/skills/rt-scenario-n001/SKILL.md +573 -0
  173. package/packaged-assets/.agents/skills/rt-scenario-n002/SKILL.md +112 -0
  174. package/packaged-assets/.agents/skills/rt-scenario-n003/SKILL.md +100 -0
  175. package/packaged-assets/.agents/skills/rt-scenario-n004/SKILL.md +90 -0
  176. package/packaged-assets/.agents/skills/rt-scenario-n005/SKILL.md +71 -0
  177. package/packaged-assets/.agents/skills/rt-scenario-w001/SKILL.md +635 -0
  178. package/packaged-assets/.agents/skills/rt-scenario-w002/SKILL.md +612 -0
  179. package/packaged-assets/.agents/skills/rt-scenario-w003/SKILL.md +449 -0
  180. package/packaged-assets/.agents/skills/rt-scenario-w004/SKILL.md +648 -0
  181. package/packaged-assets/.agents/skills/rt-scenario-w005/SKILL.md +479 -0
  182. package/packaged-assets/.agents/skills/rt-scenario-w006/SKILL.md +443 -0
  183. package/packaged-assets/.agents/skills/rt-scenario-w007/SKILL.md +494 -0
  184. package/packaged-assets/.agents/skills/rt-scenario-w008/SKILL.md +576 -0
  185. package/packaged-assets/.agents/skills/rt-scenario-w009/SKILL.md +518 -0
  186. package/packaged-assets/.agents/skills/rt-scenario-w010/SKILL.md +574 -0
  187. package/packaged-assets/.agents/skills/rt-scope-definition/SKILL.md +79 -0
  188. package/packaged-assets/.agents/skills/rt-scope-definition/workflow.md +68 -0
  189. package/packaged-assets/.agents/skills/rt-shodan-recon/SKILL.md +880 -0
  190. package/packaged-assets/.agents/skills/rt-status/SKILL.md +64 -0
  191. package/packaged-assets/.agents/skills/rt-subdomain-enum/SKILL.md +906 -0
  192. package/packaged-assets/.agents/skills/rt-subdomain-enum/workflow.md +68 -0
  193. package/packaged-assets/.agents/skills/rt-technical-report/SKILL.md +710 -0
  194. package/packaged-assets/.agents/skills/rt-technical-report/template.md +41 -0
  195. package/packaged-assets/.agents/skills/rt-technical-report/workflow.md +68 -0
  196. package/packaged-assets/.agents/skills/rt-threat-model/SKILL.md +59 -0
  197. package/packaged-assets/.agents/skills/rt-threat-model/template.md +32 -0
  198. package/packaged-assets/.agents/skills/rt-threat-model/workflow.md +68 -0
  199. package/packaged-assets/.agents/skills/rt-timeline/SKILL.md +338 -0
  200. package/packaged-assets/RTEXIT.md +127 -0
  201. package/tools/installer/lib/asset-manifest.js +10 -5
  202. package/tools/installer/lib/copy-assets.js +5 -2
  203. /package/{_rtexit → packaged-assets/_rtexit}/config.toml +0 -0
  204. /package/{_rtexit → packaged-assets/_rtexit}/config.user.toml +0 -0
  205. /package/{_rtexit → packaged-assets/_rtexit}/custom/config.toml +0 -0
  206. /package/{_rtexit → packaged-assets/_rtexit}/scripts/autodoc_engine.py +0 -0
  207. /package/{_rtexit → packaged-assets/_rtexit}/scripts/finding_tracker.py +0 -0
  208. /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_config.py +0 -0
  209. /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_customization.py +0 -0
  210. /package/{resources → packaged-assets/resources}/certifications.md +0 -0
  211. /package/{resources → packaged-assets/resources}/payloads.md +0 -0
  212. /package/{resources → packaged-assets/resources}/tools.md +0 -0
  213. /package/{resources → packaged-assets/resources}/wordlists.md +0 -0
  214. /package/{templates → packaged-assets/templates}/attack-chain-template.md +0 -0
  215. /package/{templates → packaged-assets/templates}/executive-report-template.md +0 -0
  216. /package/{templates → packaged-assets/templates}/executive-report.md +0 -0
  217. /package/{templates → packaged-assets/templates}/finding-template.md +0 -0
  218. /package/{templates → packaged-assets/templates}/remediation-roadmap.md +0 -0
  219. /package/{templates → packaged-assets/templates}/sead-template.md +0 -0
  220. /package/{templates → packaged-assets/templates}/technical-report.md +0 -0
@@ -0,0 +1,68 @@
1
+ # Workflow - rt-credential-hunt
2
+
3
+ ## Purpose
4
+
5
+ This workflow standardizes how $skill is executed inside RTExit. It is designed for authorized engagements, evidence-first documentation, and consistent handoff into reporting.
6
+
7
+ ## Authorization Gate
8
+
9
+ Before execution, confirm:
10
+
11
+ - SEAD exists and explicitly covers the target asset or activity.
12
+ - Rules of Engagement define allowed techniques, rate limits, and stop conditions.
13
+ - The operator knows the evidence handling rules.
14
+ - Any active or sensitive validation has client approval.
15
+
16
+ If any item is unclear, pause and invoke
17
+
18
+ ## Required Inputs
19
+
20
+ | Input | Source | Notes |
21
+ |---|---|---|
22
+ | Engagement reference | _rtexit/config.toml or SEAD | Used in output names. |
23
+ | Target asset(s) | Scope document | Must be explicitly approved. |
24
+ | Operator name | Config/user context | Used in timeline entries. |
25
+ | Evidence directory | _rtexit-output/docs/evidence/ | Store logs, screenshots, and artifacts. |
26
+ | Finding tracker | _rtexit-output/docs/findings/ | Create/update findings when confirmed. |
27
+
28
+ ## Execution Steps
29
+
30
+ 1. Load current engagement configuration.
31
+ 2. Read scope, exclusions, and current findings.
32
+ 3. Build a small test plan for this skill with target, expected control, and evidence type.
33
+ 4. Run the lowest-risk validation first.
34
+ 5. Capture baseline behavior before proof behavior.
35
+ 6. Record exact timestamp, account/role used, and affected asset.
36
+ 7. Stop when evidence is sufficient; avoid unnecessary data access.
37
+ 8. Create or update findings through the RTExit finding tracker.
38
+ 9. Map remediation owner and recommended timeline.
39
+ 10. Add a timeline entry and evidence chain entry.
40
+
41
+ ## Evidence Requirements
42
+
43
+ | Evidence | Required? | Notes |
44
+ |---|---|---|
45
+ | Command or action summary | Yes | Redact secrets and tokens. |
46
+ | Screenshot or transcript | If useful | Store under evidence folder. |
47
+ | Request/response pair | For web/API | Redact cookies and bearer tokens. |
48
+ | Config excerpt | For cloud/infra | Include only relevant lines. |
49
+ | Business impact note | Yes | Explain why it matters. |
50
+
51
+ ## Autodoc Commands
52
+
53
+ `ash
54
+ python _rtexit/scripts/autodoc_engine.py log --skill rt-credential-hunt --phase auto --cmd "workflow execution" --output "summary"
55
+ python _rtexit/scripts/finding_tracker.py list
56
+ `
57
+
58
+ ## Completion Criteria
59
+
60
+ - Scope and authorization are referenced.
61
+ - Evidence is stored and redacted.
62
+ - Findings are added or explicitly marked as not found.
63
+ - Remediation guidance is actionable.
64
+ - Timeline and chain of custody are updated where applicable.
65
+
66
+ ## Handoff
67
+
68
+ Send confirmed findings to
@@ -0,0 +1,542 @@
1
+ ---
2
+ name: rt-cvss-calculator
3
+ description: "Calculate CVSS 4.0 score with full metric justification. Covers Base metrics (AV/AC/AT/PR/UI/VC/VI/VA/SC/SI/SA), Threat metric (E), and Environmental metrics. Produces complete CVSS:4.0/AV:N/... vector string. Explains each metric selection with real examples. References FIRST.org CVSS 4.0 specification."
4
+ ---
5
+
6
+ # rt-cvss-calculator — CVSS 4.0 Scoring Skill
7
+
8
+ ## Overview
9
+
10
+ This skill guides a red team operator through a complete CVSS 4.0 scoring session for a confirmed finding. It produces a fully justified vector string, a numeric score, a qualitative severity rating, and a prose justification block ready to paste into a finding document.
11
+
12
+ CVSS 4.0 is the current standard (published June 2023, replacing CVSS 3.1). It introduces sub-scores (Base, Threat, Environmental, Supplemental), removes the Scope metric, and adds Attacked Technology (AT) and new impact granularity. All scores in RTExit use CVSS 4.0.
13
+
14
+ **Reference**: https://www.first.org/cvss/v4.0/specification-document
15
+
16
+ ### Role in Engagement Lifecycle
17
+
18
+ ```
19
+ Exploit confirmed → Evidence collected → CVSS scored → Finding documented → Report generated
20
+
21
+ rt-cvss-calculator
22
+ ```
23
+
24
+ Invoke this skill after a vulnerability is confirmed and before calling `rt-agent-scribe` to write the full finding. The output of this skill feeds directly into `finding_tracker.py add` and the finding document template.
25
+
26
+ ---
27
+
28
+ ## Pre-Flight Checks
29
+
30
+ Before scoring, confirm all of the following:
31
+
32
+ - [ ] Vulnerability is confirmed (not theoretical) — you have reproduction steps and evidence
33
+ - [ ] Target asset is in scope (SEAD exists)
34
+ - [ ] You know the attack vector (network, adjacent, local, physical)
35
+ - [ ] You know what data or system component is directly affected
36
+ - [ ] You can distinguish "Vulnerable System" impact from "Subsequent System" impact
37
+
38
+ If any item is unconfirmed, note it explicitly and score conservatively (lower severity) until evidence supports higher scoring.
39
+
40
+ ---
41
+
42
+ ## CVSS 4.0 Metric Reference
43
+
44
+ ### Group 1 — Exploitability Metrics (Base)
45
+
46
+ | Metric | Code | Values | Default |
47
+ |--------|------|--------|---------|
48
+ | Attack Vector | AV | N (Network), A (Adjacent), L (Local), P (Physical) | N |
49
+ | Attack Complexity | AC | L (Low), H (High) | L |
50
+ | Attack Requirements | AT | N (None), P (Present) | N |
51
+ | Privileges Required | PR | N (None), L (Low), H (High) | N |
52
+ | User Interaction | UI | N (None), P (Passive), A (Active) | N |
53
+
54
+ ### Group 2 — Vulnerable System Impact (Base)
55
+
56
+ | Metric | Code | Values |
57
+ |--------|------|--------|
58
+ | Confidentiality | VC | H (High), L (Low), N (None) |
59
+ | Integrity | VI | H (High), L (Low), N (None) |
60
+ | Availability | VA | H (High), L (Low), N (None) |
61
+
62
+ ### Group 3 — Subsequent System Impact (Base)
63
+
64
+ | Metric | Code | Values |
65
+ |--------|------|--------|
66
+ | Confidentiality | SC | H (High), L (Low), N (None) |
67
+ | Integrity | SI | H (High), L (Low), N (None) |
68
+ | Availability | SA | H (High), L (Low), N (None) |
69
+
70
+ ### Group 4 — Threat Metric (replaces Temporal)
71
+
72
+ | Metric | Code | Values |
73
+ |--------|------|--------|
74
+ | Exploit Maturity | E | A (Attacked), P (PoC), U (Unreported), X (Not Defined) |
75
+
76
+ ### Group 5 — Environmental Metrics (optional, client-specific)
77
+
78
+ Override Base metrics based on the specific deployment context.
79
+
80
+ | Metric | Code | Notes |
81
+ |--------|------|-------|
82
+ | Modified Attack Vector | MAV | Override AV |
83
+ | Modified Attack Complexity | MAC | Override AC |
84
+ | Modified Attack Requirements | MAT | Override AT |
85
+ | Modified Privileges Required | MPR | Override PR |
86
+ | Modified User Interaction | MUI | Override UI |
87
+ | Modified VC/VI/VA | MVC/MVI/MVA | Override vulnerable system impact |
88
+ | Modified SC/SI/SA | MSC/MSI/MSA | Override subsequent system impact |
89
+ | Confidentiality Requirement | CR | H/M/L — asset sensitivity |
90
+ | Integrity Requirement | IR | H/M/L |
91
+ | Availability Requirement | AR | H/M/L |
92
+
93
+ ### Severity Thresholds (CVSS 4.0)
94
+
95
+ | Score Range | Rating |
96
+ |-------------|--------|
97
+ | 9.0 – 10.0 | CRITICAL |
98
+ | 7.0 – 8.9 | HIGH |
99
+ | 4.0 – 6.9 | MEDIUM |
100
+ | 0.1 – 3.9 | LOW |
101
+ | 0.0 | NONE / INFORMATIONAL |
102
+
103
+ ---
104
+
105
+ ## Step-by-Step Workflow
106
+
107
+ ### Step 1 — Name the Finding
108
+
109
+ State the finding clearly before scoring. Use a concrete, action-oriented title.
110
+
111
+ Good: `Unauthenticated SQL Injection in /api/v2/users/search endpoint`
112
+ Bad: `SQL Injection`
113
+
114
+ ### Step 2 — Walk Through Each Metric
115
+
116
+ Answer each question in order. For each metric, state:
117
+ 1. Which value you selected
118
+ 2. One sentence of justification tied to the specific finding
119
+
120
+ **Work through the metrics in this order:**
121
+
122
+ #### AV — Attack Vector
123
+
124
+ > Can an attacker exploit this vulnerability remotely over a network, or do they need proximity or physical access?
125
+
126
+ - **N (Network)** — Exploitable from the internet or any routed network without physical or adjacent-network presence
127
+ - **A (Adjacent)** — Requires attacker to be on the same local network (same VLAN, Wi-Fi segment, Bluetooth range)
128
+ - **L (Local)** — Requires attacker to have a local OS session (interactive login or scripted execution)
129
+ - **P (Physical)** — Requires attacker to physically touch the device
130
+
131
+ Example: An unauthenticated API endpoint reachable from the internet → `AV:N`
132
+
133
+ #### AC — Attack Complexity
134
+
135
+ > Are there conditions outside the attacker's control that must align for exploitation to succeed?
136
+
137
+ - **L (Low)** — Exploitation is reliable; no special conditions required
138
+ - **H (High)** — Success depends on race conditions, specific software versions, timing, or other factors not fully in the attacker's control
139
+
140
+ Example: SQL injection that fires on every request → `AC:L`. Race condition that requires two requests to land within 50ms → `AC:H`
141
+
142
+ #### AT — Attack Requirements
143
+
144
+ > Does the attack require specific pre-existing target configuration that is not the default?
145
+
146
+ - **N (None)** — Works against a default or standard deployment; no special configuration needed
147
+ - **P (Present)** — Only works because of a non-default config, shared resource, or specific environmental prerequisite already present
148
+
149
+ Example: RCE only works when a non-default debug mode is enabled in the app config → `AT:P`
150
+
151
+ #### PR — Privileges Required
152
+
153
+ > What level of authorization must the attacker already have before launching the attack?
154
+
155
+ - **N (None)** — No authentication required (unauthenticated, pre-auth)
156
+ - **L (Low)** — Requires basic authenticated access (standard user account, guest, read-only role)
157
+ - **H (High)** — Requires elevated privileges (admin, manager role, API key with write access)
158
+
159
+ Example: Endpoint is behind login but any registered user can trigger it → `PR:L`
160
+
161
+ #### UI — User Interaction
162
+
163
+ > Does exploitation require a human to take an action (beyond the attacker themselves)?
164
+
165
+ - **N (None)** — Attacker can exploit without any victim interaction
166
+ - **P (Passive)** — Victim must passively trigger the vulnerability (visit a page, receive an email, open a file)
167
+ - **A (Active)** — Victim must take a deliberate action (approve a request, click a link and enter credentials)
168
+
169
+ Example: Stored XSS fires when any admin loads the dashboard → `UI:P`
170
+
171
+ #### VC / VI / VA — Vulnerable System Impact
172
+
173
+ Assess the direct impact on the component containing the vulnerability.
174
+
175
+ - **VC** — Does the attacker gain unauthorized read access to data within this system?
176
+ - **VI** — Can the attacker modify data or behavior within this system without authorization?
177
+ - **VA** — Can the attacker deny service to legitimate users of this system?
178
+
179
+ Rate each: H (complete loss), L (partial loss), N (no loss).
180
+
181
+ Example: SQL injection that dumps the full users table → `VC:H`. It cannot insert or delete data → `VI:N`. The DB remains available → `VA:N`.
182
+
183
+ #### SC / SI / SA — Subsequent System Impact
184
+
185
+ Does exploiting this vulnerability enable impact beyond the directly vulnerable component? Consider: connected databases, internal APIs, downstream services, other tenants, identity providers.
186
+
187
+ - **SC** — Can the attacker read data from systems beyond the vulnerable component?
188
+ - **SI** — Can the attacker write or corrupt data in downstream systems?
189
+ - **SA** — Can the attacker deny service to downstream systems?
190
+
191
+ Example: SSRF that reaches an internal metadata service exposing AWS credentials → `SC:H` (attacker can read cloud secrets), `SI:H` (attacker can provision/destroy cloud resources), `SA:L` (partial availability risk to cloud services).
192
+
193
+ #### E — Exploit Maturity (Threat)
194
+
195
+ > Is there evidence this vulnerability class is being actively exploited in the wild, or is a working PoC publicly available?
196
+
197
+ - **A (Attacked)** — Evidence of active exploitation in the wild (known threat groups, CISA KEV list, observed in honeypots)
198
+ - **P (PoC)** — Working public proof-of-concept exists (GitHub, Exploit-DB, security blog with code)
199
+ - **U (Unreported)** — No public PoC, no known exploitation; vulnerability discovered internally
200
+ - **X (Not Defined)** — Do not adjust; use the Base score as-is
201
+
202
+ Example: CVE-2021-44228 (Log4Shell) → `E:A`. A novel logic flaw found during this engagement with no prior disclosure → `E:U`
203
+
204
+ ### Step 3 — Compute the Vector String
205
+
206
+ Assemble metrics in canonical order:
207
+
208
+ ```
209
+ CVSS:4.0/AV:[value]/AC:[value]/AT:[value]/PR:[value]/UI:[value]/VC:[value]/VI:[value]/VA:[value]/SC:[value]/SI:[value]/SA:[value]
210
+ ```
211
+
212
+ Append Threat metric if not X:
213
+ ```
214
+ /E:[value]
215
+ ```
216
+
217
+ Append Environmental metrics only if they differ from the Base values.
218
+
219
+ ### Step 4 — Calculate the Score
220
+
221
+ Use the FIRST.org calculator: https://www.first.org/cvss/calculator/4.0
222
+
223
+ Alternatively, use the cvss-bt Python library:
224
+ ```bash
225
+ pip install cvss
226
+ python3 -c "from cvss import CVSS4; c = CVSS4('CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:L'); print(c.scores())"
227
+ ```
228
+
229
+ Note: CVSS 4.0 scoring uses a lookup table (not the linear formula from CVSS 3.x). Manual calculation is error-prone — always verify with the official calculator.
230
+
231
+ ### Step 5 — Write the Justification Block
232
+
233
+ Produce a structured prose block for the finding document. See the template below.
234
+
235
+ ### Step 6 — Register the Finding
236
+
237
+ ```bash
238
+ python3 {project-root}/_rtexit/scripts/finding_tracker.py add \
239
+ "Unauthenticated SQL Injection in /api/v2/users/search" \
240
+ CRITICAL \
241
+ 9.3 \
242
+ "api.acmecorp.com/api/v2/users/search" \
243
+ --cwe CWE-89 \
244
+ --mitre "T1190" \
245
+ --phase "Exploitation" \
246
+ --notes "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:L/E:P"
247
+ ```
248
+
249
+ ### Step 7 — Log to Timeline
250
+
251
+ ```bash
252
+ python3 {project-root}/_rtexit/scripts/autodoc_engine.py log \
253
+ --skill rt-cvss-calculator \
254
+ --phase Exploitation \
255
+ --finding F-003 \
256
+ --note "CVSS 4.0 scored: 9.3 CRITICAL. Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:L/E:P"
257
+ ```
258
+
259
+ ---
260
+
261
+ ## Templates
262
+
263
+ ### CVSS Justification Block (paste into finding document)
264
+
265
+ ```markdown
266
+ ### CVSS 4.0 Score
267
+
268
+ **Score**: 9.3 CRITICAL
269
+ **Vector**: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:L/E:P
270
+
271
+ | Metric | Value | Justification |
272
+ |--------|-------|---------------|
273
+ | Attack Vector (AV) | Network (N) | The vulnerable endpoint `/api/v2/users/search` is publicly reachable from the internet without VPN or network-layer restriction. Exploitation was confirmed from an external Kali machine with no special routing. |
274
+ | Attack Complexity (AC) | Low (L) | The injection payload fires on every request. No timing dependencies, race conditions, or environmental factors need to align. Exploitation is fully deterministic and reproducible across test runs. |
275
+ | Attack Requirements (AT) | None (N) | The endpoint is enabled by default in all deployment configurations. No non-default setting or pre-existing condition is required. |
276
+ | Privileges Required (PR) | None (N) | The endpoint accepts unauthenticated requests. No login, API key, or session token is required to reach the vulnerable parameter. |
277
+ | User Interaction (UI) | None (N) | Exploitation is fully server-side. No victim user action is needed; the attacker sends the payload directly to the server. |
278
+ | Vuln. System Confidentiality (VC) | High (H) | A UNION-based payload dumped the full `users` table (47,000 records) including bcrypt password hashes, email addresses, phone numbers, and account creation dates. Complete confidentiality loss of the vulnerable database component. |
279
+ | Vuln. System Integrity (VI) | None (N) | Testing confirmed the injected session does not have INSERT/UPDATE/DELETE privileges. No data modification was possible within the directly vulnerable component. |
280
+ | Vuln. System Availability (VA) | None (N) | The database remained responsive throughout testing. No denial-of-service condition was triggered. |
281
+ | Subsequent Confidentiality (SC) | High (H) | The database user account (`app_user`) has SELECT privileges across all schemas. A second payload enumerated the `payments` schema and retrieved 12,000 partial card numbers and billing addresses from a separate table not accessible via the application UI. |
282
+ | Subsequent Integrity (SI) | High (H) | The `app_user` account holds WRITE access to the `audit_logs` table. An attacker can inject false audit entries or erase existing ones, undermining forensic integrity across all subsequent systems relying on the audit trail. |
283
+ | Subsequent Availability (SA) | Low (L) | No cross-system denial-of-service was achievable, but large UNION queries caused transient slowdowns (2–4 seconds response degradation) on the reporting dashboard that shares the same DB instance. |
284
+ | Exploit Maturity (E) | PoC (P) | SQLMap with a standard tamper script (`--tamper=between`) produced a working PoC within 8 minutes. The technique (error-based UNION injection via URL parameter) is extensively documented and requires no novel research. |
285
+
286
+ **Rationale Summary**: The combination of unauthenticated network access, trivially exploitable injection, and cross-schema data access produces a near-maximum score. The only factors preventing a 10.0 are the absence of direct data modification capability and the partial (rather than complete) subsequent availability impact.
287
+ ```
288
+
289
+ ### Scoring Worksheet (use while interviewing the finding)
290
+
291
+ ```
292
+ Finding Title: _____________________________________________
293
+ Asset / URL: _____________________________________________
294
+ Confirmed by: _____________________________________________ Date: ______
295
+
296
+ EXPLOITABILITY
297
+ AV (N/A/L/P): ___ Reason: __________________________________
298
+ AC (L/H): ___ Reason: __________________________________
299
+ AT (N/P): ___ Reason: __________________________________
300
+ PR (N/L/H): ___ Reason: __________________________________
301
+ UI (N/P/A): ___ Reason: __________________________________
302
+
303
+ VULNERABLE SYSTEM IMPACT
304
+ VC (H/L/N): ___ Reason: __________________________________
305
+ VI (H/L/N): ___ Reason: __________________________________
306
+ VA (H/L/N): ___ Reason: __________________________________
307
+
308
+ SUBSEQUENT SYSTEM IMPACT
309
+ SC (H/L/N): ___ Reason: __________________________________
310
+ SI (H/L/N): ___ Reason: __________________________________
311
+ SA (H/L/N): ___ Reason: __________________________________
312
+
313
+ THREAT
314
+ E (A/P/U/X): ___ Reason: __________________________________
315
+
316
+ VECTOR STRING: CVSS:4.0/AV:_/AC:_/AT:_/PR:_/UI:_/VC:_/VI:_/VA:_/SC:_/SI:_/SA:_/E:_
317
+ SCORE (from calculator): ___._
318
+ SEVERITY: __________
319
+ ```
320
+
321
+ ---
322
+
323
+ ## Integration with RTExit Scripts
324
+
325
+ ### finding_tracker.py
326
+
327
+ The tracker stores the CVSS score as a numeric value and the full vector string in the `notes` field.
328
+
329
+ **Add a finding after scoring:**
330
+ ```bash
331
+ python3 _rtexit/scripts/finding_tracker.py add \
332
+ "Stored XSS in Admin User Bio Field" \
333
+ HIGH \
334
+ 8.2 \
335
+ "portal.acmecorp.com/admin/users/edit" \
336
+ --cwe CWE-79 \
337
+ --mitre "T1185" \
338
+ --phase "Exploitation" \
339
+ --operator "m.hegazy" \
340
+ --notes "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:H/VA:N/SC:H/SI:H/SA:N/E:P"
341
+ ```
342
+
343
+ **View finding after creation:**
344
+ ```bash
345
+ python3 _rtexit/scripts/finding_tracker.py show F-005
346
+ ```
347
+
348
+ **List all CRITICAL and HIGH findings:**
349
+ ```bash
350
+ python3 _rtexit/scripts/finding_tracker.py list --severity CRITICAL
351
+ python3 _rtexit/scripts/finding_tracker.py list --severity HIGH
352
+ ```
353
+
354
+ **Export findings with scores to Markdown:**
355
+ ```bash
356
+ python3 _rtexit/scripts/finding_tracker.py export --format md
357
+ ```
358
+
359
+ The exported Markdown includes the CVSS vector from the `notes` field. The report template in `rt-agent-scribe` renders this into the CVSS table automatically.
360
+
361
+ ### autodoc_engine.py
362
+
363
+ Log the scoring session to the engagement timeline so the audit trail shows when and why a score was assigned.
364
+
365
+ **Log the scoring activity:**
366
+ ```bash
367
+ python3 _rtexit/scripts/autodoc_engine.py log \
368
+ --skill rt-cvss-calculator \
369
+ --phase "Exploitation" \
370
+ --finding "F-005" \
371
+ --note "CVSS 4.0 scored 8.2 HIGH. Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:H/VA:N/SC:H/SI:H/SA:N/E:P. Score justified by admin-context stored XSS with cross-tenant session hijack potential."
372
+ ```
373
+
374
+ **Log evidence collection for chain of custody:**
375
+ ```bash
376
+ python3 _rtexit/scripts/autodoc_engine.py custody \
377
+ --finding F-005 \
378
+ --evidence "_rtexit-output/docs/evidence/screenshots/F-005-xss-payload-firing.png"
379
+ ```
380
+
381
+ ---
382
+
383
+ ## Full Example Output
384
+
385
+ ### Scenario
386
+
387
+ During a red team engagement against AcmeCorp, the operator discovers a server-side request forgery (SSRF) vulnerability in the document preview feature. The application fetches URLs provided by the user and renders their content. The attacker uses this to reach the EC2 instance metadata service at `http://169.254.169.254/latest/meta-data/iam/security-credentials/`.
388
+
389
+ ### Completed Scoring Session
390
+
391
+ **Finding Title**: SSRF via Document Preview Enabling AWS Credential Theft via IMDSv1
392
+
393
+ **Scoring rationale (metric by metric):**
394
+
395
+ | Metric | Selection | Justification |
396
+ |--------|-----------|---------------|
397
+ | AV | N | Document preview is accessible to any authenticated user over HTTPS from the internet |
398
+ | AC | L | The SSRF fires on every request; no race condition or version-specific behavior required |
399
+ | AT | N | IMDSv1 is the default on this EC2 instance — no non-default configuration needed |
400
+ | PR | L | A valid user account is required. Any registered AcmeCorp user can trigger the feature |
401
+ | UI | N | The attacker sends the crafted URL directly; no victim action required |
402
+ | VC | L | The direct component (document preview service) leaks its own IAM role name — limited disclosure |
403
+ | VI | N | The preview service cannot be modified via this attack vector |
404
+ | VA | N | The preview service remains functional throughout |
405
+ | SC | H | The IMDSv1 response returns `AccessKeyId`, `SecretAccessKey`, and `Token` for the `AcmeCorp-Prod-AppRole` IAM role. This role has `s3:GetObject` on all production buckets and `rds:DescribeDBInstances`. Full confidentiality loss on all data reachable by the IAM role. |
406
+ | SI | H | The role also holds `s3:PutObject` and `s3:DeleteObject`. An attacker can overwrite or delete production S3 objects, including customer-uploaded documents and application assets. |
407
+ | SA | L | Overloading the metadata service with rapid requests caused a 3-second response delay observed in testing. No complete outage was achievable. |
408
+ | E | A | SSRF-to-IMDS credential theft is in active exploitation by multiple threat groups (see CISA advisory AA23-144A). IMDSv1 abuse is listed in MITRE ATT&CK T1552.005. |
409
+
410
+ **Final Vector String:**
411
+ ```
412
+ CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:H/SI:H/SA:L/E:A
413
+ ```
414
+
415
+ **Score**: 9.1 CRITICAL
416
+
417
+ **Recommended severity label**: CRITICAL
418
+
419
+ **finding_tracker.py command:**
420
+ ```bash
421
+ python3 _rtexit/scripts/finding_tracker.py add \
422
+ "SSRF via Document Preview Enabling AWS Credential Theft via IMDSv1" \
423
+ CRITICAL \
424
+ 9.1 \
425
+ "app.acmecorp.com/api/v1/preview" \
426
+ --cwe CWE-918 \
427
+ --mitre "T1552.005" \
428
+ --phase "Exploitation" \
429
+ --operator "m.hegazy" \
430
+ --notes "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:H/SI:H/SA:L/E:A"
431
+ ```
432
+
433
+ **Output:**
434
+ ```
435
+ [+] Finding added: F-007
436
+ Title: SSRF via Document Preview Enabling AWS Credential Theft via IMDSv1
437
+ Severity: CRITICAL
438
+ CVSS: 9.1
439
+ Asset: app.acmecorp.com/api/v1/preview
440
+ Status: CONFIRMED
441
+ File: _rtexit-output/docs/findings/F-007.md
442
+ ```
443
+
444
+ ---
445
+
446
+ ## Quality Checklist
447
+
448
+ Before finalizing a CVSS score, verify:
449
+
450
+ ### Accuracy
451
+ - [ ] Each metric value is supported by observed evidence, not assumption
452
+ - [ ] The Attack Vector reflects actual exploitation path tested (not hypothetical)
453
+ - [ ] Subsequent System Impact reflects systems actually reachable, not theoretically connected
454
+ - [ ] Exploit Maturity matches the current state of public knowledge (check Exploit-DB, NVD, CISA KEV)
455
+
456
+ ### Completeness
457
+ - [ ] All 11 Base metrics are explicitly assigned (no defaults left unexamined)
458
+ - [ ] Threat metric (E) is set — do not leave as X unless you have no information
459
+ - [ ] Environmental metrics are applied if the client has declared asset sensitivity requirements
460
+
461
+ ### Justification Quality
462
+ - [ ] Every metric has at least one sentence of concrete justification referencing the specific finding
463
+ - [ ] Justifications reference observable facts (tool output, request/response, screenshot filename)
464
+ - [ ] Score rationale summary explains the key drivers of the overall numeric score
465
+ - [ ] The CVSS vector string is syntactically correct (validate at first.org calculator)
466
+
467
+ ### Documentation
468
+ - [ ] Finding is registered in `finding_tracker.py`
469
+ - [ ] CVSS vector string is stored in the `notes` field of the finding record
470
+ - [ ] Scoring session is logged to the engagement timeline via `autodoc_engine.py`
471
+ - [ ] Evidence screenshots that support metric selections are logged to chain of custody
472
+
473
+ ---
474
+
475
+ ## Common Mistakes to Avoid
476
+
477
+ ### Mistake 1 — Confusing AC and AT
478
+
479
+ **Wrong**: "The application has a WAF, so AC:H"
480
+ **Correct**: AC measures conditions the attacker must meet. A WAF the attacker must bypass is an AC:H factor. A WAF that does not actually prevent exploitation does not raise AC.
481
+
482
+ AT measures pre-existing configuration on the target. If the attack only works because the target has a non-default debug endpoint enabled, AT:P.
483
+
484
+ ### Mistake 2 — Ignoring Subsequent System Impact
485
+
486
+ Many scorers rate only the directly vulnerable component and leave SC/SI/SA as N. This is the most common source of under-scoring.
487
+
488
+ Always ask: "If I compromise this component, what else can I reach?" Internal APIs, databases, S3 buckets, identity providers, and other microservices all count as subsequent systems.
489
+
490
+ ### Mistake 3 — Setting E:X (Not Defined) by Default
491
+
492
+ E:X means you are not providing threat context. Use E:U if you found a novel vulnerability with no public disclosure. Use E:P if a public PoC exists. Use E:A if the vulnerability class appears on the CISA KEV list or is referenced in threat intelligence. Only use E:X when you genuinely have no information and do not want to influence the Base score.
493
+
494
+ ### Mistake 4 — Scoring PR Based on What Was Used, Not What Is Required
495
+
496
+ If an attacker used an admin account to test a vulnerability but the vulnerability is also exploitable as a regular user, score PR:L (or PR:N if unauthenticated access is possible). Score the minimum privilege required for exploitation, not the privilege level used during testing.
497
+
498
+ ### Mistake 5 — Conflating VC/VI/VA with SC/SI/SA
499
+
500
+ VC/VI/VA is the impact on the component that directly contains the vulnerability (the API endpoint, the database driver, the file parser).
501
+
502
+ SC/SI/SA is the impact on everything else the attacker reaches as a consequence of that exploitation.
503
+
504
+ Example: An XXE in an XML parser (the vulnerable component) that lets an attacker read `/etc/passwd` from the OS:
505
+ - VC: L (parser leaks a small amount of its own process data)
506
+ - SC: H (the OS, a subsequent system, loses complete confidentiality)
507
+
508
+ ### Mistake 6 — Using CVSS 3.1 Metrics in a CVSS 4.0 Score
509
+
510
+ CVSS 4.0 removed the Scope (S) metric and added AT. Do not include S:C or S:U in a CVSS 4.0 vector string. If you see a vector with the Scope metric, it is CVSS 3.1.
511
+
512
+ ### Mistake 7 — Rounding the Score
513
+
514
+ CVSS 4.0 scores are reported to one decimal place as computed by the lookup table. Do not round 7.8 up to 8.0 to push a finding into HIGH. Report the calculator's exact output.
515
+
516
+ ---
517
+
518
+ ## Quick Reference — Severity Decision Tree
519
+
520
+ ```
521
+ Is the vulnerability reachable over the network without authentication?
522
+ ├── YES → Start at AV:N, PR:N — likely HIGH or CRITICAL
523
+ │ Does exploitation give access to additional systems beyond the vulnerable component?
524
+ │ ├── YES → SC/SI/SA likely H → CRITICAL range
525
+ │ └── NO → Score on VC/VI/VA alone → HIGH or MEDIUM
526
+ └── NO → If local only (AV:L) or physical (AV:P) → MEDIUM or LOW unless impact is extreme
527
+ ```
528
+
529
+ ---
530
+
531
+ ## Skill Output Summary
532
+
533
+ After completing this skill, you will have produced:
534
+
535
+ 1. A completed scoring worksheet with per-metric justifications
536
+ 2. A syntactically valid CVSS 4.0 vector string
537
+ 3. A numeric score and severity label verified against the FIRST.org calculator
538
+ 4. A prose justification block ready for the finding document
539
+ 5. A `finding_tracker.py add` command with all required fields
540
+ 6. An `autodoc_engine.py log` command for the engagement timeline
541
+
542
+ Hand these outputs to `rt-agent-scribe` (capability FD — Document Finding) to produce the full finding document with executive summary, technical details, evidence references, and remediation guidance.
@@ -0,0 +1,20 @@
1
+ group,metric,value,meaning,operator_notes
2
+ Base,Attack Vector,N,Network exploitable,Remote attack surface
3
+ Base,Attack Vector,A,Adjacent network required,Same broadcast/domain segment
4
+ Base,Attack Vector,L,Local access required,Shell/local user/device needed
5
+ Base,Attack Vector,P,Physical access required,Physical interaction with asset
6
+ Base,Attack Complexity,L,Low complexity,Repeatable conditions
7
+ Base,Attack Complexity,H,High complexity,Special conditions required
8
+ Base,Attack Requirements,N,None,No prerequisite deployment state
9
+ Base,Attack Requirements,P,Present,Specific prerequisite must exist
10
+ Base,Privileges Required,N,None,Unauthenticated
11
+ Base,Privileges Required,L,Low,Normal user or low privilege
12
+ Base,Privileges Required,H,High,Admin or privileged role
13
+ Base,User Interaction,N,None,No user action
14
+ Base,User Interaction,P,Passive,User receives/views content
15
+ Base,User Interaction,A,Active,User performs action
16
+ Impact,Vulnerable Confidentiality,H,High,All or highly sensitive data
17
+ Impact,Vulnerable Integrity,H,High,Full modification or trust break
18
+ Impact,Vulnerable Availability,H,High,Severe outage or loss
19
+ Impact,Subsequent System Impact,H,High,Impact crosses trust boundary
20
+