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.
Files changed (224) hide show
  1. package/package.json +9 -7
  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/commands/install.js +0 -1
  202. package/tools/installer/lib/asset-manifest.js +10 -5
  203. package/tools/installer/lib/banner.js +14 -6
  204. package/tools/installer/lib/copy-assets.js +5 -2
  205. package/tools/installer/lib/prompts.js +1 -11
  206. package/tools/installer/lib/write-config.js +8 -2
  207. /package/{_rtexit → packaged-assets/_rtexit}/config.toml +0 -0
  208. /package/{_rtexit → packaged-assets/_rtexit}/config.user.toml +0 -0
  209. /package/{_rtexit → packaged-assets/_rtexit}/custom/config.toml +0 -0
  210. /package/{_rtexit → packaged-assets/_rtexit}/scripts/autodoc_engine.py +0 -0
  211. /package/{_rtexit → packaged-assets/_rtexit}/scripts/finding_tracker.py +0 -0
  212. /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_config.py +0 -0
  213. /package/{_rtexit → packaged-assets/_rtexit}/scripts/resolve_customization.py +0 -0
  214. /package/{resources → packaged-assets/resources}/certifications.md +0 -0
  215. /package/{resources → packaged-assets/resources}/payloads.md +0 -0
  216. /package/{resources → packaged-assets/resources}/tools.md +0 -0
  217. /package/{resources → packaged-assets/resources}/wordlists.md +0 -0
  218. /package/{templates → packaged-assets/templates}/attack-chain-template.md +0 -0
  219. /package/{templates → packaged-assets/templates}/executive-report-template.md +0 -0
  220. /package/{templates → packaged-assets/templates}/executive-report.md +0 -0
  221. /package/{templates → packaged-assets/templates}/finding-template.md +0 -0
  222. /package/{templates → packaged-assets/templates}/remediation-roadmap.md +0 -0
  223. /package/{templates → packaged-assets/templates}/sead-template.md +0 -0
  224. /package/{templates → packaged-assets/templates}/technical-report.md +0 -0
@@ -0,0 +1,718 @@
1
+ ---
2
+ name: rt-executive-report
3
+ description: "Generate executive-level penetration testing report for CEO/CISO/Board. Non-technical language, business-focused. Sections: cover page, executive summary (risk rating, key findings, business impact statements), risk statistics (chart), attack narrative (story format), remediation roadmap (prioritized table with timelines), and conclusion. Supports Arabic and English output."
4
+ ---
5
+
6
+ # rt-executive-report — Executive Red Team Report Skill
7
+
8
+ ## 1. Overview and Purpose in Engagement Lifecycle
9
+
10
+ This skill generates the executive-facing deliverable at the end of a red team engagement. It is the final artifact consumed by decision-makers — the CEO, CISO, board members, and senior leadership — who need a clear picture of business risk without reading technical exploitation details.
11
+
12
+ ### Where it sits in the lifecycle
13
+
14
+ ```
15
+ Reconnaissance → Exploitation → Post-Exploitation → Lateral Movement
16
+ |
17
+ finding_tracker.py
18
+ (collects raw findings)
19
+ |
20
+ autodoc_engine.py
21
+ (structures findings)
22
+ |
23
+ [rt-executive-report] <-- YOU ARE HERE
24
+ (executive output)
25
+ |
26
+ Debrief with client leadership
27
+ ```
28
+
29
+ The executive report is NOT the technical report. It does not contain CVE numbers, exploit code, or packet captures. It answers three questions leadership actually cares about:
30
+ - Can an attacker reach what matters most to us?
31
+ - How bad would it be if they did?
32
+ - What do we do about it, in what order, and at what cost?
33
+
34
+ ### Supported output languages
35
+
36
+ - English (default)
37
+ - Arabic (right-to-left, formal business register — specify `lang: ar` in engagement metadata)
38
+
39
+ ---
40
+
41
+ ## 2. Step-by-Step Workflow
42
+
43
+ ### Step 1 — Pull findings from finding_tracker.py
44
+
45
+ Run the tracker export before starting the report. The tracker holds all raw findings logged during the engagement.
46
+
47
+ ```bash
48
+ python finding_tracker.py export --format json --output /tmp/findings_export.json
49
+ ```
50
+
51
+ Expected output fields per finding:
52
+ - `id` — e.g. `RT-2024-007`
53
+ - `title` — short finding name
54
+ - `severity` — Critical / High / Medium / Low / Informational
55
+ - `cvss_score` — numeric (used for risk statistics section)
56
+ - `affected_asset` — hostname, IP, application name
57
+ - `business_function` — what the asset does in business terms
58
+ - `evidence_refs` — list of screenshot/log file paths
59
+ - `technical_detail` — full exploitation description (NOT used in exec report)
60
+ - `business_impact` — one paragraph, business language (THIS is used in exec report)
61
+ - `remediation_short` — one-line fix
62
+ - `remediation_detail` — full fix guidance
63
+ - `effort_estimate` — Low / Medium / High
64
+ - `fix_timeline_days` — recommended days to remediate
65
+
66
+ If `business_impact` is empty in the tracker, you must write it before proceeding. See Step 3 for guidance on writing business impact statements.
67
+
68
+ ### Step 2 — Pull document metadata from autodoc_engine.py
69
+
70
+ ```bash
71
+ python autodoc_engine.py meta --engagement <engagement_id>
72
+ ```
73
+
74
+ This returns:
75
+ - `client_name` — organization name
76
+ - `engagement_id` — unique reference code
77
+ - `test_start` / `test_end` — dates of testing window
78
+ - `scope_summary` — plain-English description of what was in scope
79
+ - `overall_risk_rating` — computed from finding severity distribution
80
+ - `red_team_lead` — name of report author
81
+ - `report_date` — date of delivery
82
+
83
+ If `overall_risk_rating` is not computed, calculate it manually:
84
+ - Any Critical finding = **Critical** overall
85
+ - No Critical but 3+ High = **High** overall
86
+ - 1-2 High findings = **High** overall
87
+ - Only Medium/Low = **Medium** or **Low**
88
+
89
+ ### Step 3 — Write business impact statements (if missing)
90
+
91
+ Every finding needs a business impact statement before the exec report is written. This is the most important translation task. Use this formula:
92
+
93
+ > "If an attacker exploits [vulnerability in plain terms], they can [action in plain terms], which means [business consequence — data loss, operational disruption, regulatory breach, reputational harm, financial loss]."
94
+
95
+ Bad (technical): "SQL injection in the authentication endpoint allows unauthenticated retrieval of all rows from the users table via UNION-based extraction."
96
+
97
+ Good (executive): "An attacker with internet access can bypass the login page and download the complete customer database — including names, email addresses, and encrypted passwords — without any credentials. A breach of this data would trigger mandatory notification obligations under Egypt's Personal Data Protection Law No. 151 of 2020, expose the organization to regulatory fines, and damage customer trust built over years of operation."
98
+
99
+ ### Step 4 — Determine overall risk rating and narrative arc
100
+
101
+ Before writing, decide on the overall story. What is the single most important message for leadership?
102
+
103
+ Common narratives:
104
+ - "We successfully simulated an external attacker reaching your most sensitive internal systems — this report explains how and what to do."
105
+ - "Your perimeter is stronger than expected, but an insider threat scenario revealed significant gaps in internal controls."
106
+ - "Three critical vulnerabilities, if chained together, would allow a ransomware operator to encrypt your core systems within 6 hours of initial access."
107
+
108
+ Write this narrative in one sentence. It becomes the opening of the executive summary.
109
+
110
+ ### Step 5 — Build the report section by section
111
+
112
+ Work through sections in order. Each section is described in detail in Section 3 (Templates) below.
113
+
114
+ 1. Cover Page
115
+ 2. Executive Summary
116
+ 3. Risk Statistics
117
+ 4. Attack Narrative
118
+ 5. Remediation Roadmap
119
+ 6. Conclusion
120
+
121
+ ### Step 6 — Quality check
122
+
123
+ Run through the quality checklist in Section 5 before delivering. Every item must pass.
124
+
125
+ ### Step 7 — Generate final document via autodoc_engine.py
126
+
127
+ ```bash
128
+ python autodoc_engine.py render \
129
+ --template executive_report \
130
+ --input /tmp/exec_report_draft.md \
131
+ --engagement <engagement_id> \
132
+ --lang en \
133
+ --output ./deliverables/<engagement_id>_executive_report.pdf
134
+ ```
135
+
136
+ For Arabic output:
137
+ ```bash
138
+ python autodoc_engine.py render \
139
+ --template executive_report \
140
+ --input /tmp/exec_report_draft.md \
141
+ --engagement <engagement_id> \
142
+ --lang ar \
143
+ --output ./deliverables/<engagement_id>_executive_report_AR.pdf
144
+ ```
145
+
146
+ ---
147
+
148
+ ## 3. Templates with Example Content
149
+
150
+ ### 3.1 Cover Page
151
+
152
+ ```
153
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
154
+
155
+ RED TEAM ASSESSMENT
156
+ EXECUTIVE REPORT
157
+
158
+ Prepared for:
159
+ Nile Financial Group S.A.E.
160
+
161
+ Engagement Reference: RT-2024-NFG-003
162
+ Testing Period: 14 October 2024 – 1 November 2024
163
+ Report Date: 10 November 2024
164
+
165
+ Prepared by:
166
+ RTExit Security Operations
167
+ Confidentiality: RESTRICTED — Board and C-Suite Only
168
+
169
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
170
+
171
+ CLASSIFICATION NOTICE
172
+ This document contains sensitive security information about Nile Financial Group S.A.E.
173
+ Distribution is restricted to authorized executive personnel only. Unauthorized disclosure
174
+ may facilitate attacks against the organization and is prohibited under the terms of the
175
+ engagement agreement dated 1 October 2024.
176
+ ```
177
+
178
+ ### 3.2 Executive Summary
179
+
180
+ The executive summary must fit on one page. It contains four components: overall rating block, one-paragraph assessment, key findings list, and immediate actions.
181
+
182
+ ```
183
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
184
+ EXECUTIVE SUMMARY
185
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
186
+
187
+ OVERALL RISK RATING: ██████████ CRITICAL
188
+
189
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
190
+
191
+ ASSESSMENT
192
+
193
+ During the three-week red team engagement, our team — operating as a motivated
194
+ external attacker with no prior knowledge of the organization — successfully
195
+ gained access to Nile Financial Group's core banking platform, extracted a
196
+ sample of 47,000 customer account records, and reached the internal payment
197
+ processing network from the public internet. This was achieved in 11 days of
198
+ active operation, well within the window in which a real attacker would act
199
+ before detection.
200
+
201
+ The organization's perimeter security tools detected our activity on Day 14
202
+ of the engagement. By that point, we had already achieved our primary
203
+ objectives and established persistence that would have survived a standard
204
+ incident response procedure.
205
+
206
+ This does not represent a failure of the security team — it reflects a gap
207
+ between the current investment in security controls and the sophistication of
208
+ threats targeting organizations of this scale and sector. The gaps are
209
+ well-defined, prioritized, and remediable. This report is a roadmap.
210
+
211
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
212
+
213
+ KEY FINDINGS
214
+
215
+ CRITICAL Customer data accessible without authentication from the internet
216
+ CRITICAL Payment network reachable from public-facing web application
217
+ HIGH Employees can be manipulated into granting attacker full access
218
+ via targeted email (phishing simulation: 34% success rate)
219
+ HIGH Administrative accounts lack multi-factor authentication
220
+ MEDIUM Security monitoring does not alert on abnormal data downloads
221
+ MEDIUM Third-party vendor portal shares network access with core systems
222
+ LOW Password policy does not prevent predictable credential choices
223
+
224
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
225
+
226
+ IMMEDIATE ACTIONS REQUIRED (before next board meeting)
227
+
228
+ 1. Isolate the customer database application from the public internet
229
+ immediately — this is the highest-priority action.
230
+ 2. Enable multi-factor authentication on all administrator accounts
231
+ within 72 hours.
232
+ 3. Segment the payment network so it cannot be reached from the
233
+ web application server.
234
+ ```
235
+
236
+ ### 3.3 Risk Statistics
237
+
238
+ Render this as a visual section. When using autodoc_engine.py, the `risk_chart` component generates the bar chart automatically from the findings JSON. In the markdown draft, represent it as follows:
239
+
240
+ ```
241
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
242
+ RISK STATISTICS
243
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
244
+
245
+ FINDINGS BY SEVERITY
246
+
247
+ Critical ██████████████████████████ 2 findings
248
+ High █████████████████ 2 findings
249
+ Medium ████████████████████████ 3 findings (1 informational excluded)
250
+ Low █████████ 1 finding
251
+ ─────────────
252
+ Total 8 findings
253
+
254
+ COMPARISON TO SECTOR BASELINE
255
+
256
+ Critical findings (this engagement): 2
257
+ Critical findings (financial sector avg, 2024): 0.8 per engagement
258
+
259
+ This result places Nile Financial Group in the highest-risk quartile
260
+ for organizations of comparable size and regulatory profile.
261
+
262
+ RISK TREND NOTE
263
+ These findings reflect the state of the environment as tested. They
264
+ do not imply past compromise — only present exposure. The purpose of
265
+ red team testing is to identify these gaps before an actual attacker does.
266
+
267
+ <!-- autodoc: insert risk_chart component here -->
268
+ <!-- autodoc: insert severity_pie component here -->
269
+ ```
270
+
271
+ ### 3.4 Attack Narrative
272
+
273
+ This is the most powerful section. Write it as a story — past tense, third person ("the team"), no jargon. The goal is that a board member who has never read a security report understands exactly what happened.
274
+
275
+ ```
276
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
277
+ ATTACK NARRATIVE: HOW AN ATTACKER WOULD REACH YOUR
278
+ MOST SENSITIVE SYSTEMS
279
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
280
+
281
+ Day 1 — First Contact
282
+
283
+ The team began with only the same information available to any member of
284
+ the public: the organization's website and publicly registered internet
285
+ addresses. Within two hours, automated tools identified 14 internet-facing
286
+ systems belonging to Nile Financial Group, including a customer-facing web
287
+ portal, a mobile API endpoint, and an administrative interface that appeared
288
+ to belong to a legacy internal tool.
289
+
290
+ The administrative interface was accessible from the internet. This is the
291
+ equivalent of leaving a back door unlocked.
292
+
293
+ Day 3 — A Door Left Open
294
+
295
+ The legacy administrative interface was found to accept login attempts
296
+ without any limit on the number of tries. Using a list of commonly used
297
+ passwords (the kind available for free on the internet following years of
298
+ data breaches at other companies), the team gained access to an account
299
+ belonging to a former employee whose access had not been removed.
300
+
301
+ This is not a sophisticated technique. It is the most common method used
302
+ by criminal ransomware groups worldwide in 2024.
303
+
304
+ Day 5 — Inside the Network
305
+
306
+ The former employee's account had retained its original permissions from
307
+ 2021, including access to the application that serves customer account
308
+ data. From that application, the team was able to download customer records
309
+ — names, account numbers, national ID numbers, and in some cases loan
310
+ repayment histories.
311
+
312
+ The security monitoring system did not generate an alert. The download of
313
+ 47,000 records looked, to the automated systems, like normal business
314
+ activity.
315
+
316
+ Day 8 — Reaching the Core
317
+
318
+ The web application server was connected to the same internal network as
319
+ the payment processing infrastructure. Using the access established through
320
+ the customer portal, the team moved laterally to a server involved in
321
+ processing interbank transfers. At this point, the team stopped and
322
+ documented the finding rather than proceed further — the purpose of the
323
+ exercise is to demonstrate risk, not to cause harm.
324
+
325
+ In a real attack scenario, an adversary with this level of access could
326
+ potentially initiate fraudulent transfers, manipulate account balances,
327
+ or deploy ransomware that encrypts the payment infrastructure.
328
+
329
+ Day 14 — Detection
330
+
331
+ On Day 14, the security operations team flagged unusual activity and began
332
+ an investigation. By this point in a real attack, a sophisticated adversary
333
+ would have already completed their primary objectives and established a
334
+ secondary method of re-entry that would survive the response.
335
+
336
+ This timeline — 14 days to detection, 8 days to critical access — is the
337
+ central message of this engagement. It is the number the organization
338
+ should work to reduce.
339
+
340
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
341
+ WHAT MADE THIS POSSIBLE — IN PLAIN TERMS
342
+
343
+ Three things together created this outcome:
344
+
345
+ 1. An internet-facing system that should not have been exposed
346
+ 2. A former employee account that was never deactivated
347
+ 3. A network that did not separate customer data from payment systems
348
+
349
+ Any one of these controls, had it been in place, would have stopped or
350
+ significantly slowed the attack chain.
351
+ ```
352
+
353
+ ### 3.5 Remediation Roadmap
354
+
355
+ Present as a prioritized table. Group by timeline. Each item must have a plain-English description, an owner type (not a person's name — a role), and a realistic timeline.
356
+
357
+ ```
358
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
359
+ REMEDIATION ROADMAP
360
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
361
+
362
+ IMMEDIATE (within 72 hours) — Stop active bleeding
363
+
364
+ ID Action Owner Effort
365
+ ──────── ──────────────────────────────────────────── ─────────── ──────
366
+ RT-001 Remove the legacy admin portal from public IT Ops Low
367
+ internet access or shut it down entirely.
368
+ This system has no documented business need
369
+ for external exposure.
370
+
371
+ RT-002 Disable all accounts belonging to former IT / HR Low
372
+ employees. Conduct a full audit of all
373
+ active accounts and remove those not
374
+ associated with a current employee or
375
+ approved contractor within 48 hours.
376
+
377
+ RT-004 Enable multi-factor authentication on all IT Security Low
378
+ administrative and privileged accounts.
379
+ This single control would have prevented
380
+ the initial access in this engagement.
381
+
382
+ SHORT TERM (within 30 days) — Close the critical gaps
383
+
384
+ ID Action Owner Effort
385
+ ──────── ──────────────────────────────────────────── ─────────── ──────
386
+ RT-003 Separate the payment processing network IT Arch. High
387
+ from the web application servers using
388
+ network segmentation. These two environments
389
+ have no legitimate reason to communicate
390
+ directly.
391
+
392
+ RT-005 Implement automated alerting when large Security Medium
393
+ volumes of customer records are downloaded Ops
394
+ within a short period. Establish a baseline
395
+ of normal data access and alert on deviation.
396
+
397
+ RT-007 Establish a formal process for reviewing IT / HR Low
398
+ and removing employee access when they
399
+ leave the organization (offboarding
400
+ checklist with IT sign-off required).
401
+
402
+ MEDIUM TERM (within 90 days) — Reduce attack surface
403
+
404
+ ID Action Owner Effort
405
+ ──────── ──────────────────────────────────────────── ─────────── ──────
406
+ RT-006 Review and restrict the third-party vendor IT Arch. Medium
407
+ portal's network access. Vendors should
408
+ only reach the specific systems their
409
+ service requires — not the broader internal
410
+ network.
411
+
412
+ RT-008 Conduct a security awareness training HR / Low
413
+ program for all staff, with a focus on Security
414
+ recognizing phishing emails. The 34%
415
+ success rate in our phishing simulation
416
+ is significantly above the 10-15% benchmark
417
+ for well-trained organizations.
418
+
419
+ LONG TERM (within 6 months) — Build resilience
420
+
421
+ ID Action Owner Effort
422
+ ──────── ──────────────────────────────────────────── ─────────── ──────
423
+ RT-009 Develop and test an incident response plan CISO High
424
+ specific to a data breach scenario. Include
425
+ regulatory notification steps per Egypt
426
+ PDPL No. 151/2020 and CBE requirements.
427
+
428
+ RT-010 Establish a recurring penetration testing CISO Medium
429
+ program — at minimum annually, and after
430
+ any major system changes.
431
+
432
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
433
+
434
+ INVESTMENT CONTEXT
435
+
436
+ The remediations marked Low effort above are largely configuration and
437
+ process changes that require minimal financial investment. The High-effort
438
+ items (network segmentation) require project planning but represent a
439
+ fundamental reduction in the organization's most serious risk exposure.
440
+
441
+ The cost of implementing all remediations in this roadmap is a fraction of
442
+ the potential cost of a data breach — which, under current Egyptian and
443
+ international regulatory frameworks, could include regulatory fines,
444
+ mandatory customer notification, legal liability, and reputational damage
445
+ affecting customer retention and investor confidence.
446
+ ```
447
+
448
+ ### 3.6 Conclusion
449
+
450
+ ```
451
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
452
+ CONCLUSION
453
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
454
+
455
+ Nile Financial Group engaged RTExit to stress-test its defenses against
456
+ a realistic attacker. The results of this engagement are serious but
457
+ not unusual for organizations at this stage of their security maturity
458
+ journey. More importantly, they are actionable.
459
+
460
+ The most important message from this assessment is this: the gaps that
461
+ allowed our team to reach your most sensitive systems are well-understood,
462
+ well-documented, and fixable. None of them require novel technology or
463
+ significant complexity. They require prioritization and follow-through.
464
+
465
+ The roadmap in this report is sequenced to deliver the greatest risk
466
+ reduction in the shortest time. Completing the immediate actions alone —
467
+ within 72 hours — would eliminate the initial access vector used in this
468
+ engagement entirely.
469
+
470
+ RTExit is available to support the remediation process, answer questions
471
+ from technical teams, and conduct a validation test once remediation
472
+ activities are complete. We recommend scheduling a follow-up assessment
473
+ within six months to confirm that the identified gaps have been closed
474
+ and to identify any new exposure that may have emerged.
475
+
476
+ We recognize that receiving findings of this nature is not easy. The
477
+ value of this work is in knowing — and in the ability to act before
478
+ a real attacker does.
479
+
480
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
481
+
482
+ POINT OF CONTACT
483
+
484
+ For questions regarding this report, please contact:
485
+
486
+ RTExit Security Operations
487
+ Engagement Reference: RT-2024-NFG-003
488
+ Report Date: 10 November 2024
489
+
490
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
491
+ ```
492
+
493
+ ---
494
+
495
+ ## 4. Integration with finding_tracker.py and autodoc_engine.py
496
+
497
+ ### finding_tracker.py integration
498
+
499
+ The executive report draws on two fields from each finding record that are most commonly incomplete: `business_impact` and `business_function`. Before running autodoc_engine.py, verify these fields are populated for every Critical and High finding.
500
+
501
+ ```bash
502
+ # Check for findings missing business_impact
503
+ python finding_tracker.py validate --field business_impact --severity Critical,High
504
+ ```
505
+
506
+ If findings are missing `business_impact`, populate them directly:
507
+
508
+ ```bash
509
+ python finding_tracker.py update RT-2024-007 \
510
+ --field business_impact \
511
+ --value "An unauthenticated attacker can download the complete customer database from the internet. This exposes personally identifiable information for all customers, triggering mandatory breach notification under PDPL No. 151/2020 and CBE Circular No. 7/2022, with potential regulatory sanctions and reputational harm."
512
+ ```
513
+
514
+ The finding_tracker.py `export` command supports filtering by severity to focus the executive report on material findings only:
515
+
516
+ ```bash
517
+ # Export only Critical and High findings for exec report
518
+ python finding_tracker.py export \
519
+ --format json \
520
+ --severity Critical,High \
521
+ --output /tmp/exec_findings.json
522
+
523
+ # Export all findings for remediation roadmap (includes Medium/Low)
524
+ python finding_tracker.py export \
525
+ --format json \
526
+ --output /tmp/all_findings.json
527
+ ```
528
+
529
+ ### autodoc_engine.py integration
530
+
531
+ The autodoc_engine.py script handles:
532
+ - Merging the markdown draft with engagement metadata
533
+ - Generating risk charts from severity data
534
+ - Applying the RTExit PDF template with correct branding
535
+ - Rendering Arabic output with RTL layout when `--lang ar` is specified
536
+
537
+ Key commands:
538
+
539
+ ```bash
540
+ # Validate that all required sections are present in draft
541
+ python autodoc_engine.py validate \
542
+ --template executive_report \
543
+ --input /tmp/exec_report_draft.md
544
+
545
+ # Generate English PDF
546
+ python autodoc_engine.py render \
547
+ --template executive_report \
548
+ --input /tmp/exec_report_draft.md \
549
+ --findings /tmp/all_findings.json \
550
+ --engagement RT-2024-NFG-003 \
551
+ --lang en \
552
+ --output ./deliverables/RT-2024-NFG-003_executive_report_EN.pdf
553
+
554
+ # Generate Arabic PDF
555
+ python autodoc_engine.py render \
556
+ --template executive_report \
557
+ --input /tmp/exec_report_draft.md \
558
+ --findings /tmp/all_findings.json \
559
+ --engagement RT-2024-NFG-003 \
560
+ --lang ar \
561
+ --output ./deliverables/RT-2024-NFG-003_executive_report_AR.pdf
562
+ ```
563
+
564
+ autodoc_engine.py injects the following automatically when rendering:
565
+ - `risk_chart` — horizontal bar chart, severity breakdown
566
+ - `severity_pie` — pie chart with Critical/High/Medium/Low proportions
567
+ - `remediation_table` — formatted table from findings JSON sorted by fix_timeline_days
568
+ - Cover page metadata (dates, engagement ID, client name) from engagement record
569
+
570
+ ---
571
+
572
+ ## 5. Quality Checklist
573
+
574
+ Run this checklist before delivering any executive report. Every item is a hard requirement.
575
+
576
+ ### Language and tone
577
+
578
+ - [ ] Zero CVE numbers visible in the document
579
+ - [ ] Zero IP addresses or hostnames visible in the document (exception: cover page scope if client requests it)
580
+ - [ ] Zero exploit tool names (Metasploit, Burp, Cobalt Strike) visible to executives
581
+ - [ ] Every technical term has been replaced with a plain-English equivalent
582
+ - [ ] Passive voice has been minimized — findings should feel real and active, not abstract
583
+ - [ ] Business impact statements name a specific consequence (regulatory, financial, operational, reputational) — not generic phrases like "data could be exposed"
584
+ - [ ] Report can be understood by a reader with no security background
585
+
586
+ ### Content completeness
587
+
588
+ - [ ] Cover page has correct client name, engagement ID, date range, and report date
589
+ - [ ] Overall risk rating is stated clearly and prominently
590
+ - [ ] Every Critical finding appears in the executive summary key findings list
591
+ - [ ] Attack narrative covers the full chain from initial access to deepest objective reached
592
+ - [ ] Time-to-detection is stated explicitly in the narrative
593
+ - [ ] Every Critical and High finding has a corresponding remediation roadmap entry
594
+ - [ ] Remediation entries have owner role, effort estimate, and timeline
595
+ - [ ] Conclusion includes a recommendation for follow-up testing
596
+
597
+ ### Accuracy
598
+
599
+ - [ ] Finding count matches the finding_tracker.py export
600
+ - [ ] Overall risk rating matches the autodoc_engine.py computed rating
601
+ - [ ] Phishing success rate (if applicable) matches the tracker record
602
+ - [ ] All dates in the narrative are consistent with test_start / test_end metadata
603
+ - [ ] Regulatory references are correct for the client's jurisdiction
604
+
605
+ ### Arabic output (when applicable)
606
+
607
+ - [ ] All section headers rendered in correct formal Arabic
608
+ - [ ] Risk rating terms use agreed Arabic equivalents (Critical = حرج, High = مرتفع, Medium = متوسط, Low = منخفض)
609
+ - [ ] Tables render correctly in RTL layout
610
+ - [ ] No English text appears in Arabic sections except proper nouns (company names, product names)
611
+ - [ ] Dates use the format agreed with client (Gregorian or Hijri)
612
+
613
+ ---
614
+
615
+ ## 6. Example Output — Finished Executive Summary Block
616
+
617
+ This is what a completed, polished executive summary looks like. Use this as a reference for the quality standard required.
618
+
619
+ ```
620
+ EXECUTIVE SUMMARY
621
+
622
+ OVERALL RISK RATING: CRITICAL
623
+
624
+ During a three-week controlled simulation conducted in October 2024, the RTExit
625
+ red team — operating as an external attacker with no insider knowledge — gained
626
+ access to Nile Financial Group's core banking platform and extracted a sample
627
+ of 47,000 customer records from the public internet in 11 days.
628
+
629
+ The security monitoring infrastructure detected this activity on Day 14 — after
630
+ the primary objectives had already been achieved. In a real attack, this gap
631
+ would have been sufficient for an adversary to complete a significant data theft,
632
+ initiate fraudulent transactions, or deploy ransomware.
633
+
634
+ The cause is not a single vulnerability. It is the combination of three
635
+ conditions that, together, removed every barrier between an internet-connected
636
+ attacker and the organization's most sensitive data:
637
+
638
+ First, a legacy administrative system was reachable from the public internet
639
+ with no business justification for that exposure.
640
+
641
+ Second, the account of a former employee — dormant for three years — remained
642
+ active with the same permissions it held during their employment.
643
+
644
+ Third, the network connecting the customer portal to the payment processing
645
+ infrastructure had no controls preventing movement between them.
646
+
647
+ No one of these conditions alone would have produced this outcome. Removing any
648
+ one of them would have stopped or significantly delayed the attack.
649
+
650
+ This report details what happened, what it means for the organization, and
651
+ exactly what to do — in priority order — to close these gaps.
652
+
653
+ KEY FINDINGS
654
+
655
+ CRITICAL Customer database accessible from the internet without login
656
+ credentials. Affects all 47,000+ customer records including
657
+ national ID numbers and account histories.
658
+
659
+ CRITICAL Payment processing network reachable from public-facing web
660
+ servers. A motivated attacker could attempt fraudulent transfers
661
+ or disrupt core banking operations from this position.
662
+
663
+ HIGH One in three employees provided credentials or clicked attacker-
664
+ controlled links during phishing simulation — more than double
665
+ the benchmark for trained workforces.
666
+
667
+ HIGH Administrative accounts protect organization-wide systems with
668
+ passwords only — no second factor required. Any stolen password
669
+ gives full administrative access.
670
+
671
+ IMMEDIATE ACTIONS
672
+
673
+ Before the next board meeting, three actions will materially reduce the
674
+ organization's exposure:
675
+
676
+ 1. Remove the legacy administrative portal from public internet access today.
677
+ 2. Audit and disable all accounts not linked to a current employee within 48 hours.
678
+ 3. Enable multi-factor authentication on all administrative accounts within 72 hours.
679
+
680
+ These three actions would have prevented the attack chain demonstrated in
681
+ this engagement entirely.
682
+ ```
683
+
684
+ ---
685
+
686
+ ## 7. Common Mistakes to Avoid
687
+
688
+ ### Mistake 1 — Writing for the technical reader
689
+
690
+ The executive report is not a place to demonstrate technical depth. Phrases like "the target was vulnerable to unauthenticated SSRF via the X-Forwarded-For header, enabling access to the EC2 metadata endpoint" belong in the technical annex. In the executive report, this becomes: "A flaw in the web application allowed the team to trick the server into revealing internal access credentials — which were then used to enter systems that should not have been reachable from the internet."
691
+
692
+ ### Mistake 2 — Burying the headline
693
+
694
+ Some reports open with scope, methodology, and disclaimers before the reader learns what actually happened. Executives read the first paragraph and decide whether to keep reading. Lead with the result: what was achieved, how quickly, and what it means.
695
+
696
+ ### Mistake 3 — Using generic business impact language
697
+
698
+ "This vulnerability could lead to data exposure" is not a business impact statement. It is a placeholder. Business impact statements must be specific: which data, how much, what regulatory framework applies, what the consequence is. If you cannot be specific, return to finding_tracker.py and fill in the details before writing.
699
+
700
+ ### Mistake 4 — Presenting the remediation roadmap as a flat list
701
+
702
+ Executives need to know what to do first. A flat list of eight items creates decision paralysis. Group by timeline (Immediate, Short Term, Medium Term, Long Term). Put the three most important items at the top with explicit urgency language. Every item should have an owner type and an effort level so leadership can delegate and track.
703
+
704
+ ### Mistake 5 — Making the conclusion feel like a sales pitch
705
+
706
+ The conclusion should leave the reader feeling informed and empowered, not sold to. Avoid phrases like "RTExit's world-class team" or "cutting-edge methodology." The conclusion should restate the key message, affirm that the gaps are fixable, and offer concrete next steps. Keep it honest and direct.
707
+
708
+ ### Mistake 6 — Inconsistent numbers
709
+
710
+ If the executive summary says "six critical findings" and the risk statistics section shows a chart with five, the client will notice and trust in the entire document erodes. Always generate the risk statistics section from the same finding_tracker.py export used for the narrative. Run `autodoc_engine.py validate` before final render to catch mismatches.
711
+
712
+ ### Mistake 7 — Skipping the Arabic review pass
713
+
714
+ Arabic output from autodoc_engine.py is accurate in structure but must be reviewed by a native Arabic speaker before delivery to an Arabic-speaking board. Pay particular attention to: risk rating terminology (agree on terms with the client before the engagement closes), passive/active voice (Arabic business writing has different conventions), and table formatting in RTL layout. Never deliver Arabic output without a review pass.
715
+
716
+ ### Mistake 8 — Omitting time-to-detection
717
+
718
+ Time-to-detection is one of the most powerful data points in the executive report. It makes the risk concrete and time-bound. Always state it explicitly in the attack narrative: "The security monitoring system detected our activity on Day 14 — three days after we had achieved our primary objective." If the security team did not detect the activity at all during the engagement window, that is even more important to state clearly and directly.