fingerprint-mcp 0.1.0

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 (269) hide show
  1. package/LICENSE +663 -0
  2. package/README.ar.md +767 -0
  3. package/README.bn.md +767 -0
  4. package/README.bs.md +767 -0
  5. package/README.da.md +767 -0
  6. package/README.de.md +770 -0
  7. package/README.el.md +767 -0
  8. package/README.es.md +769 -0
  9. package/README.fr.md +769 -0
  10. package/README.hi.md +767 -0
  11. package/README.it.md +767 -0
  12. package/README.ja.md +767 -0
  13. package/README.ko.md +772 -0
  14. package/README.md +767 -0
  15. package/README.no.md +767 -0
  16. package/README.pl.md +767 -0
  17. package/README.pt-BR.md +767 -0
  18. package/README.ru.md +767 -0
  19. package/README.th.md +767 -0
  20. package/README.tr.md +767 -0
  21. package/README.uk.md +767 -0
  22. package/README.vi.md +767 -0
  23. package/README.zh-TW.md +768 -0
  24. package/README.zh.md +768 -0
  25. package/dist/app/index.d.ts +3 -0
  26. package/dist/app/index.d.ts.map +1 -0
  27. package/dist/app/index.js +614 -0
  28. package/dist/app/index.js.map +1 -0
  29. package/dist/composite/analyze.d.ts +3 -0
  30. package/dist/composite/analyze.d.ts.map +1 -0
  31. package/dist/composite/analyze.js +59 -0
  32. package/dist/composite/analyze.js.map +1 -0
  33. package/dist/composite/correlate.d.ts +3 -0
  34. package/dist/composite/correlate.d.ts.map +1 -0
  35. package/dist/composite/correlate.js +184 -0
  36. package/dist/composite/correlate.js.map +1 -0
  37. package/dist/composite/enumerate.d.ts +3 -0
  38. package/dist/composite/enumerate.d.ts.map +1 -0
  39. package/dist/composite/enumerate.js +94 -0
  40. package/dist/composite/enumerate.js.map +1 -0
  41. package/dist/composite/helpers.d.ts +22 -0
  42. package/dist/composite/helpers.d.ts.map +1 -0
  43. package/dist/composite/helpers.js +111 -0
  44. package/dist/composite/helpers.js.map +1 -0
  45. package/dist/composite/index.d.ts +3 -0
  46. package/dist/composite/index.d.ts.map +1 -0
  47. package/dist/composite/index.js +29 -0
  48. package/dist/composite/index.js.map +1 -0
  49. package/dist/composite/meta.d.ts +3 -0
  50. package/dist/composite/meta.d.ts.map +1 -0
  51. package/dist/composite/meta.js +23 -0
  52. package/dist/composite/meta.js.map +1 -0
  53. package/dist/composite/osint.d.ts +3 -0
  54. package/dist/composite/osint.d.ts.map +1 -0
  55. package/dist/composite/osint.js +40 -0
  56. package/dist/composite/osint.js.map +1 -0
  57. package/dist/composite/recon.d.ts +3 -0
  58. package/dist/composite/recon.d.ts.map +1 -0
  59. package/dist/composite/recon.js +131 -0
  60. package/dist/composite/recon.js.map +1 -0
  61. package/dist/composite/scan-dns.d.ts +3 -0
  62. package/dist/composite/scan-dns.d.ts.map +1 -0
  63. package/dist/composite/scan-dns.js +44 -0
  64. package/dist/composite/scan-dns.js.map +1 -0
  65. package/dist/composite/scan-http.d.ts +3 -0
  66. package/dist/composite/scan-http.d.ts.map +1 -0
  67. package/dist/composite/scan-http.js +68 -0
  68. package/dist/composite/scan-http.js.map +1 -0
  69. package/dist/composite/scan-paths.d.ts +3 -0
  70. package/dist/composite/scan-paths.d.ts.map +1 -0
  71. package/dist/composite/scan-paths.js +32 -0
  72. package/dist/composite/scan-paths.js.map +1 -0
  73. package/dist/composite/scan-ports.d.ts +3 -0
  74. package/dist/composite/scan-ports.d.ts.map +1 -0
  75. package/dist/composite/scan-ports.js +79 -0
  76. package/dist/composite/scan-ports.js.map +1 -0
  77. package/dist/composite/scan-services.d.ts +3 -0
  78. package/dist/composite/scan-services.d.ts.map +1 -0
  79. package/dist/composite/scan-services.js +111 -0
  80. package/dist/composite/scan-services.js.map +1 -0
  81. package/dist/composite/scan-tls.d.ts +3 -0
  82. package/dist/composite/scan-tls.d.ts.map +1 -0
  83. package/dist/composite/scan-tls.js +32 -0
  84. package/dist/composite/scan-tls.js.map +1 -0
  85. package/dist/composite/scan-waf.d.ts +3 -0
  86. package/dist/composite/scan-waf.d.ts.map +1 -0
  87. package/dist/composite/scan-waf.js +35 -0
  88. package/dist/composite/scan-waf.js.map +1 -0
  89. package/dist/correlation/index.d.ts +3 -0
  90. package/dist/correlation/index.d.ts.map +1 -0
  91. package/dist/correlation/index.js +1044 -0
  92. package/dist/correlation/index.js.map +1 -0
  93. package/dist/data/analytics-patterns.d.ts +21 -0
  94. package/dist/data/analytics-patterns.d.ts.map +1 -0
  95. package/dist/data/analytics-patterns.js +449 -0
  96. package/dist/data/analytics-patterns.js.map +1 -0
  97. package/dist/data/app-signatures.d.ts +52 -0
  98. package/dist/data/app-signatures.d.ts.map +1 -0
  99. package/dist/data/app-signatures.js +1143 -0
  100. package/dist/data/app-signatures.js.map +1 -0
  101. package/dist/data/c2-signatures.d.ts +54 -0
  102. package/dist/data/c2-signatures.d.ts.map +1 -0
  103. package/dist/data/c2-signatures.js +256 -0
  104. package/dist/data/c2-signatures.js.map +1 -0
  105. package/dist/data/cloud-ranges.d.ts +34 -0
  106. package/dist/data/cloud-ranges.d.ts.map +1 -0
  107. package/dist/data/cloud-ranges.js +628 -0
  108. package/dist/data/cloud-ranges.js.map +1 -0
  109. package/dist/data/cookie-patterns.d.ts +28 -0
  110. package/dist/data/cookie-patterns.d.ts.map +1 -0
  111. package/dist/data/cookie-patterns.js +225 -0
  112. package/dist/data/cookie-patterns.js.map +1 -0
  113. package/dist/data/error-signatures.d.ts +19 -0
  114. package/dist/data/error-signatures.d.ts.map +1 -0
  115. package/dist/data/error-signatures.js +321 -0
  116. package/dist/data/error-signatures.js.map +1 -0
  117. package/dist/data/favicon-hashes.d.ts +25 -0
  118. package/dist/data/favicon-hashes.d.ts.map +1 -0
  119. package/dist/data/favicon-hashes.js +249 -0
  120. package/dist/data/favicon-hashes.js.map +1 -0
  121. package/dist/data/h2-signatures.d.ts +50 -0
  122. package/dist/data/h2-signatures.d.ts.map +1 -0
  123. package/dist/data/h2-signatures.js +211 -0
  124. package/dist/data/h2-signatures.js.map +1 -0
  125. package/dist/data/header-order.d.ts +38 -0
  126. package/dist/data/header-order.d.ts.map +1 -0
  127. package/dist/data/header-order.js +185 -0
  128. package/dist/data/header-order.js.map +1 -0
  129. package/dist/data/jarm-signatures.d.ts +25 -0
  130. package/dist/data/jarm-signatures.d.ts.map +1 -0
  131. package/dist/data/jarm-signatures.js +213 -0
  132. package/dist/data/jarm-signatures.js.map +1 -0
  133. package/dist/data/saas-patterns.d.ts +23 -0
  134. package/dist/data/saas-patterns.d.ts.map +1 -0
  135. package/dist/data/saas-patterns.js +139 -0
  136. package/dist/data/saas-patterns.js.map +1 -0
  137. package/dist/data/sensitive-paths.d.ts +12 -0
  138. package/dist/data/sensitive-paths.d.ts.map +1 -0
  139. package/dist/data/sensitive-paths.js +1539 -0
  140. package/dist/data/sensitive-paths.js.map +1 -0
  141. package/dist/data/service-banners.d.ts +59 -0
  142. package/dist/data/service-banners.d.ts.map +1 -0
  143. package/dist/data/service-banners.js +323 -0
  144. package/dist/data/service-banners.js.map +1 -0
  145. package/dist/data/smtp-signatures.d.ts +12 -0
  146. package/dist/data/smtp-signatures.d.ts.map +1 -0
  147. package/dist/data/smtp-signatures.js +350 -0
  148. package/dist/data/smtp-signatures.js.map +1 -0
  149. package/dist/data/takeover-patterns.d.ts +37 -0
  150. package/dist/data/takeover-patterns.d.ts.map +1 -0
  151. package/dist/data/takeover-patterns.js +249 -0
  152. package/dist/data/takeover-patterns.js.map +1 -0
  153. package/dist/data/tech-patterns.d.ts +44 -0
  154. package/dist/data/tech-patterns.d.ts.map +1 -0
  155. package/dist/data/tech-patterns.js +690 -0
  156. package/dist/data/tech-patterns.js.map +1 -0
  157. package/dist/data/waf-signatures.d.ts +21 -0
  158. package/dist/data/waf-signatures.d.ts.map +1 -0
  159. package/dist/data/waf-signatures.js +318 -0
  160. package/dist/data/waf-signatures.js.map +1 -0
  161. package/dist/dns/index.d.ts +3 -0
  162. package/dist/dns/index.d.ts.map +1 -0
  163. package/dist/dns/index.js +1067 -0
  164. package/dist/dns/index.js.map +1 -0
  165. package/dist/enum/index.d.ts +3 -0
  166. package/dist/enum/index.d.ts.map +1 -0
  167. package/dist/enum/index.js +818 -0
  168. package/dist/enum/index.js.map +1 -0
  169. package/dist/h2/index.d.ts +3 -0
  170. package/dist/h2/index.d.ts.map +1 -0
  171. package/dist/h2/index.js +414 -0
  172. package/dist/h2/index.js.map +1 -0
  173. package/dist/http/index.d.ts +3 -0
  174. package/dist/http/index.d.ts.map +1 -0
  175. package/dist/http/index.js +2444 -0
  176. package/dist/http/index.js.map +1 -0
  177. package/dist/identify/index.d.ts +3 -0
  178. package/dist/identify/index.d.ts.map +1 -0
  179. package/dist/identify/index.js +447 -0
  180. package/dist/identify/index.js.map +1 -0
  181. package/dist/index.d.ts +3 -0
  182. package/dist/index.d.ts.map +1 -0
  183. package/dist/index.js +165 -0
  184. package/dist/index.js.map +1 -0
  185. package/dist/infra/index.d.ts +3 -0
  186. package/dist/infra/index.d.ts.map +1 -0
  187. package/dist/infra/index.js +989 -0
  188. package/dist/infra/index.js.map +1 -0
  189. package/dist/iot/index.d.ts +3 -0
  190. package/dist/iot/index.d.ts.map +1 -0
  191. package/dist/iot/index.js +610 -0
  192. package/dist/iot/index.js.map +1 -0
  193. package/dist/meta/index.d.ts +3 -0
  194. package/dist/meta/index.d.ts.map +1 -0
  195. package/dist/meta/index.js +442 -0
  196. package/dist/meta/index.js.map +1 -0
  197. package/dist/osint/index.d.ts +3 -0
  198. package/dist/osint/index.d.ts.map +1 -0
  199. package/dist/osint/index.js +687 -0
  200. package/dist/osint/index.js.map +1 -0
  201. package/dist/passive/index.d.ts +3 -0
  202. package/dist/passive/index.d.ts.map +1 -0
  203. package/dist/passive/index.js +944 -0
  204. package/dist/passive/index.js.map +1 -0
  205. package/dist/path/index.d.ts +3 -0
  206. package/dist/path/index.d.ts.map +1 -0
  207. package/dist/path/index.js +878 -0
  208. package/dist/path/index.js.map +1 -0
  209. package/dist/protocol/mcp-server.d.ts +4 -0
  210. package/dist/protocol/mcp-server.d.ts.map +1 -0
  211. package/dist/protocol/mcp-server.js +32 -0
  212. package/dist/protocol/mcp-server.js.map +1 -0
  213. package/dist/protocol/tools.d.ts +3 -0
  214. package/dist/protocol/tools.d.ts.map +1 -0
  215. package/dist/protocol/tools.js +5 -0
  216. package/dist/protocol/tools.js.map +1 -0
  217. package/dist/service/index.d.ts +3 -0
  218. package/dist/service/index.d.ts.map +1 -0
  219. package/dist/service/index.js +1053 -0
  220. package/dist/service/index.js.map +1 -0
  221. package/dist/smtp/index.d.ts +3 -0
  222. package/dist/smtp/index.d.ts.map +1 -0
  223. package/dist/smtp/index.js +437 -0
  224. package/dist/smtp/index.js.map +1 -0
  225. package/dist/ssh/index.d.ts +3 -0
  226. package/dist/ssh/index.d.ts.map +1 -0
  227. package/dist/ssh/index.js +676 -0
  228. package/dist/ssh/index.js.map +1 -0
  229. package/dist/tcp/index.d.ts +3 -0
  230. package/dist/tcp/index.d.ts.map +1 -0
  231. package/dist/tcp/index.js +369 -0
  232. package/dist/tcp/index.js.map +1 -0
  233. package/dist/timing/index.d.ts +3 -0
  234. package/dist/timing/index.d.ts.map +1 -0
  235. package/dist/timing/index.js +425 -0
  236. package/dist/timing/index.js.map +1 -0
  237. package/dist/tls/index.d.ts +3 -0
  238. package/dist/tls/index.d.ts.map +1 -0
  239. package/dist/tls/index.js +1332 -0
  240. package/dist/tls/index.js.map +1 -0
  241. package/dist/types/index.d.ts +26 -0
  242. package/dist/types/index.d.ts.map +1 -0
  243. package/dist/types/index.js +8 -0
  244. package/dist/types/index.js.map +1 -0
  245. package/dist/utils/cache.d.ts +11 -0
  246. package/dist/utils/cache.d.ts.map +1 -0
  247. package/dist/utils/cache.js +35 -0
  248. package/dist/utils/cache.js.map +1 -0
  249. package/dist/utils/murmurhash3.d.ts +3 -0
  250. package/dist/utils/murmurhash3.d.ts.map +1 -0
  251. package/dist/utils/murmurhash3.js +57 -0
  252. package/dist/utils/murmurhash3.js.map +1 -0
  253. package/dist/utils/rate-limiter.d.ts +10 -0
  254. package/dist/utils/rate-limiter.d.ts.map +1 -0
  255. package/dist/utils/rate-limiter.js +35 -0
  256. package/dist/utils/rate-limiter.js.map +1 -0
  257. package/dist/utils/require-key.d.ts +2 -0
  258. package/dist/utils/require-key.d.ts.map +1 -0
  259. package/dist/utils/require-key.js +8 -0
  260. package/dist/utils/require-key.js.map +1 -0
  261. package/dist/waf/index.d.ts +3 -0
  262. package/dist/waf/index.d.ts.map +1 -0
  263. package/dist/waf/index.js +767 -0
  264. package/dist/waf/index.js.map +1 -0
  265. package/dist/web/index.d.ts +3 -0
  266. package/dist/web/index.d.ts.map +1 -0
  267. package/dist/web/index.js +1366 -0
  268. package/dist/web/index.js.map +1 -0
  269. package/package.json +66 -0
@@ -0,0 +1,350 @@
1
+ // smtp-signatures.ts — SMTP banner and EHLO extension patterns for mail server fingerprinting
2
+ // Used to identify mail transfer agents, hosted email providers, and relay services.
3
+ export const SMTP_SIGNATURES = [
4
+ // ── Postfix ────────────────────────────────────────────────────────────
5
+ {
6
+ name: "Postfix",
7
+ bannerPatterns: [
8
+ "220\\s+.*\\s+ESMTP\\s+Postfix",
9
+ "220\\s+.*Postfix\\s*\\(",
10
+ "220\\s+.*ESMTP\\s+Postfix\\s+\\(.*?\\)",
11
+ ],
12
+ ehloExtensions: [
13
+ "PIPELINING",
14
+ "SIZE",
15
+ "VRFY",
16
+ "ETRN",
17
+ "STARTTLS",
18
+ "ENHANCEDSTATUSCODES",
19
+ "8BITMIME",
20
+ "DSN",
21
+ "SMTPUTF8",
22
+ "CHUNKING",
23
+ ],
24
+ category: "mta",
25
+ },
26
+ // ── Sendmail ───────────────────────────────────────────────────────────
27
+ {
28
+ name: "Sendmail",
29
+ bannerPatterns: [
30
+ "220\\s+.*Sendmail\\s+[\\d.]+\\/",
31
+ "220\\s+.*ESMTP\\s+Sendmail",
32
+ "220\\s+.*Sendmail\\s+ready",
33
+ ],
34
+ ehloExtensions: [
35
+ "ENHANCEDSTATUSCODES",
36
+ "PIPELINING",
37
+ "8BITMIME",
38
+ "SIZE",
39
+ "DSN",
40
+ "ETRN",
41
+ "STARTTLS",
42
+ "DELIVERBY",
43
+ ],
44
+ category: "mta",
45
+ },
46
+ // ── Exim ───────────────────────────────────────────────────────────────
47
+ {
48
+ name: "Exim",
49
+ bannerPatterns: [
50
+ "220\\s+.*ESMTP\\s+Exim\\s+[\\d.]+",
51
+ "220\\s+.*Exim\\s+[\\d.]+\\s+.*ready",
52
+ "220-.*Exim",
53
+ ],
54
+ ehloExtensions: [
55
+ "SIZE",
56
+ "8BITMIME",
57
+ "PIPELINING",
58
+ "STARTTLS",
59
+ "PRDR",
60
+ "CHUNKING",
61
+ ],
62
+ category: "mta",
63
+ },
64
+ // ── Microsoft Exchange ─────────────────────────────────────────────────
65
+ {
66
+ name: "Microsoft Exchange",
67
+ bannerPatterns: [
68
+ "220\\s+.*Microsoft\\s+ESMTP\\s+MAIL\\s+Service",
69
+ "220\\s+.*Microsoft\\s+Exchange",
70
+ "220\\s+.*Exchange\\s+Server",
71
+ "220\\s+.*Microsoft\\s+SMTP",
72
+ ],
73
+ ehloExtensions: [
74
+ "SIZE",
75
+ "PIPELINING",
76
+ "DSN",
77
+ "ENHANCEDSTATUSCODES",
78
+ "STARTTLS",
79
+ "8BITMIME",
80
+ "BINARYMIME",
81
+ "CHUNKING",
82
+ "XEXCH50",
83
+ "XRDST",
84
+ "X-EXPS",
85
+ "X-ANONYMOUSTLS",
86
+ ],
87
+ category: "mta",
88
+ },
89
+ // ── Gmail / Google ─────────────────────────────────────────────────────
90
+ {
91
+ name: "Gmail",
92
+ bannerPatterns: [
93
+ "220\\s+mx\\.google\\.com\\s+ESMTP",
94
+ "220\\s+smtp\\.gmail\\.com\\s+ESMTP",
95
+ "220\\s+smtp\\.google\\.com\\s+ESMTP",
96
+ "220\\s+.*\\.google\\.com\\s+ESMTP\\s+[a-z0-9]+\\.[0-9]+\\s*-\\s*gsmtp",
97
+ ],
98
+ ehloExtensions: [
99
+ "SIZE",
100
+ "8BITMIME",
101
+ "STARTTLS",
102
+ "ENHANCEDSTATUSCODES",
103
+ "PIPELINING",
104
+ "CHUNKING",
105
+ "SMTPUTF8",
106
+ ],
107
+ category: "provider",
108
+ },
109
+ // ── Yahoo Mail ─────────────────────────────────────────────────────────
110
+ {
111
+ name: "Yahoo Mail",
112
+ bannerPatterns: [
113
+ "220\\s+mta.*\\.am0\\.yahoodns\\.net\\s+ESMTP",
114
+ "220\\s+.*\\.yahoo\\.com\\s+ESMTP",
115
+ "220\\s+.*Yahoo\\s+ESMTP",
116
+ "220\\s+smtp\\.mail\\.yahoo\\.com",
117
+ ],
118
+ ehloExtensions: [
119
+ "SIZE",
120
+ "8BITMIME",
121
+ "PIPELINING",
122
+ "STARTTLS",
123
+ ],
124
+ category: "provider",
125
+ },
126
+ // ── ProtonMail ─────────────────────────────────────────────────────────
127
+ {
128
+ name: "ProtonMail",
129
+ bannerPatterns: [
130
+ "220\\s+mail\\.protonmail\\.ch\\s+ESMTP",
131
+ "220\\s+.*\\.protonmail\\.ch\\s+ESMTP",
132
+ "220\\s+.*Proton Mail",
133
+ "220\\s+mail\\.proton\\.me\\s+ESMTP",
134
+ ],
135
+ ehloExtensions: [
136
+ "SIZE",
137
+ "8BITMIME",
138
+ "STARTTLS",
139
+ "ENHANCEDSTATUSCODES",
140
+ "CHUNKING",
141
+ ],
142
+ category: "provider",
143
+ },
144
+ // ── Amazon SES ─────────────────────────────────────────────────────────
145
+ {
146
+ name: "Amazon SES",
147
+ bannerPatterns: [
148
+ "220\\s+email-smtp\\..*\\.amazonaws\\.com\\s+ESMTP",
149
+ "220\\s+.*\\.smtp\\.amazonaws\\.com",
150
+ "220\\s+.*Amazon\\s+SES",
151
+ "220\\s+inbound-smtp\\..*\\.amazonaws\\.com",
152
+ ],
153
+ ehloExtensions: [
154
+ "SIZE",
155
+ "8BITMIME",
156
+ "STARTTLS",
157
+ "PIPELINING",
158
+ ],
159
+ category: "relay",
160
+ },
161
+ // ── Outlook.com / Office 365 ───────────────────────────────────────────
162
+ {
163
+ name: "Outlook.com",
164
+ bannerPatterns: [
165
+ "220\\s+.*\\.mail\\.protection\\.outlook\\.com\\s+Microsoft\\s+ESMTP",
166
+ "220\\s+.*\\.outlook\\.com\\s+ESMTP",
167
+ "220\\s+.*\\.hotmail\\.com\\s+",
168
+ "220\\s+.*\\.olc\\.protection\\.outlook\\.com",
169
+ ],
170
+ ehloExtensions: [
171
+ "SIZE",
172
+ "PIPELINING",
173
+ "DSN",
174
+ "ENHANCEDSTATUSCODES",
175
+ "STARTTLS",
176
+ "8BITMIME",
177
+ "BINARYMIME",
178
+ "CHUNKING",
179
+ "SMTPUTF8",
180
+ ],
181
+ category: "provider",
182
+ },
183
+ // ── Zimbra ─────────────────────────────────────────────────────────────
184
+ {
185
+ name: "Zimbra",
186
+ bannerPatterns: [
187
+ "220\\s+.*Zimbra\\s+ESMTP",
188
+ "220\\s+.*ESMTP\\s+Zimbra",
189
+ "220\\s+.*Zimbra\\s+[\\d.]+",
190
+ ],
191
+ ehloExtensions: [
192
+ "SIZE",
193
+ "8BITMIME",
194
+ "STARTTLS",
195
+ "ENHANCEDSTATUSCODES",
196
+ "PIPELINING",
197
+ "CHUNKING",
198
+ "AUTH LOGIN PLAIN",
199
+ ],
200
+ category: "mta",
201
+ },
202
+ // ── hMailServer ────────────────────────────────────────────────────────
203
+ {
204
+ name: "hMailServer",
205
+ bannerPatterns: [
206
+ "220\\s+.*hMailServer\\s+[\\d.]+",
207
+ "220\\s+.*ESMTP\\s+hMailServer",
208
+ ],
209
+ ehloExtensions: [
210
+ "SIZE",
211
+ "8BITMIME",
212
+ "STARTTLS",
213
+ "AUTH LOGIN PLAIN",
214
+ ],
215
+ category: "mta",
216
+ },
217
+ // ── Dovecot LMTP ───────────────────────────────────────────────────────
218
+ {
219
+ name: "Dovecot",
220
+ bannerPatterns: [
221
+ "220\\s+.*Dovecot\\s+ready",
222
+ "220\\s+.*Dovecot\\s+LMTP",
223
+ "220\\s+.*LMTP\\s+Dovecot",
224
+ ],
225
+ ehloExtensions: [
226
+ "8BITMIME",
227
+ "ENHANCEDSTATUSCODES",
228
+ "PIPELINING",
229
+ "CHUNKING",
230
+ "STARTTLS",
231
+ ],
232
+ category: "mta",
233
+ },
234
+ // ── OpenSMTPD ──────────────────────────────────────────────────────────
235
+ {
236
+ name: "OpenSMTPD",
237
+ bannerPatterns: [
238
+ "220\\s+.*ESMTP\\s+OpenSMTPD",
239
+ "220\\s+.*OpenSMTPD",
240
+ ],
241
+ ehloExtensions: [
242
+ "SIZE",
243
+ "8BITMIME",
244
+ "ENHANCEDSTATUSCODES",
245
+ "STARTTLS",
246
+ "DSN",
247
+ "AUTH PLAIN LOGIN",
248
+ ],
249
+ category: "mta",
250
+ },
251
+ // ── Haraka ─────────────────────────────────────────────────────────────
252
+ {
253
+ name: "Haraka",
254
+ bannerPatterns: [
255
+ "220\\s+.*ESMTP\\s+Haraka\\s+[\\d.]+",
256
+ "220\\s+.*Haraka\\s+ready",
257
+ ],
258
+ ehloExtensions: [
259
+ "PIPELINING",
260
+ "8BITMIME",
261
+ "SIZE",
262
+ "STARTTLS",
263
+ ],
264
+ category: "mta",
265
+ },
266
+ // ── MailEnable ─────────────────────────────────────────────────────────
267
+ {
268
+ name: "MailEnable",
269
+ bannerPatterns: [
270
+ "220\\s+.*MailEnable",
271
+ "220\\s+.*ESMTP\\s+MailEnable",
272
+ ],
273
+ ehloExtensions: [
274
+ "SIZE",
275
+ "8BITMIME",
276
+ "STARTTLS",
277
+ "AUTH LOGIN",
278
+ ],
279
+ category: "mta",
280
+ },
281
+ // ── Mailcow (Dockerized) ──────────────────────────────────────────────
282
+ {
283
+ name: "Mailcow",
284
+ bannerPatterns: [
285
+ "220\\s+.*ESMTP\\s+Postfix\\s+\\(Mailcow\\)",
286
+ "220\\s+.*mailcow",
287
+ ],
288
+ ehloExtensions: [
289
+ "PIPELINING",
290
+ "SIZE",
291
+ "ETRN",
292
+ "STARTTLS",
293
+ "ENHANCEDSTATUSCODES",
294
+ "8BITMIME",
295
+ "DSN",
296
+ "CHUNKING",
297
+ ],
298
+ category: "mta",
299
+ },
300
+ // ── SendGrid ───────────────────────────────────────────────────────────
301
+ {
302
+ name: "SendGrid",
303
+ bannerPatterns: [
304
+ "220\\s+.*\\.sendgrid\\.net\\s+ESMTP",
305
+ "220\\s+.*SendGrid",
306
+ "220\\s+smtp\\.sendgrid\\.net",
307
+ ],
308
+ ehloExtensions: [
309
+ "SIZE",
310
+ "8BITMIME",
311
+ "STARTTLS",
312
+ "PIPELINING",
313
+ "AUTH PLAIN LOGIN",
314
+ ],
315
+ category: "relay",
316
+ },
317
+ // ── Mailgun ────────────────────────────────────────────────────────────
318
+ {
319
+ name: "Mailgun",
320
+ bannerPatterns: [
321
+ "220\\s+.*\\.mailgun\\.org\\s+ESMTP",
322
+ "220\\s+smtp\\.mailgun\\.org",
323
+ "220\\s+.*Mailgun\\s+Influx",
324
+ ],
325
+ ehloExtensions: [
326
+ "SIZE",
327
+ "8BITMIME",
328
+ "STARTTLS",
329
+ "AUTH PLAIN LOGIN",
330
+ ],
331
+ category: "relay",
332
+ },
333
+ // ── Fastmail ───────────────────────────────────────────────────────────
334
+ {
335
+ name: "Fastmail",
336
+ bannerPatterns: [
337
+ "220\\s+.*\\.messagingengine\\.com\\s+ESMTP",
338
+ "220\\s+.*\\.fastmail\\.com\\s+ESMTP",
339
+ ],
340
+ ehloExtensions: [
341
+ "SIZE",
342
+ "8BITMIME",
343
+ "STARTTLS",
344
+ "ENHANCEDSTATUSCODES",
345
+ "PIPELINING",
346
+ ],
347
+ category: "provider",
348
+ },
349
+ ];
350
+ //# sourceMappingURL=smtp-signatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp-signatures.js","sourceRoot":"","sources":["../../src/data/smtp-signatures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Subdomain takeover detection patterns.
3
+ *
4
+ * When a DNS CNAME record points to a third-party service (e.g., Heroku,
5
+ * GitHub Pages, S3) but the resource on that service has been deleted or never
6
+ * provisioned, an attacker can register the same resource and serve arbitrary
7
+ * content on the victim's subdomain.
8
+ *
9
+ * Each entry contains CNAME target regex patterns and response fingerprints
10
+ * (body text, HTTP status, headers) that confirm the resource is unclaimed.
11
+ *
12
+ * References:
13
+ * - https://github.com/EdOverflow/can-i-take-over-xyz
14
+ * - https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/02-Configuration_and_Deployment_Management_Testing/10-Test_for_Subdomain_Takeover
15
+ */
16
+ /** A subdomain takeover detection entry for a specific hosting service. */
17
+ export interface TakeoverPattern {
18
+ /** Name of the hosting / SaaS service */
19
+ service: string;
20
+ /** Regex patterns that match the CNAME target hostname */
21
+ cnamePatterns: string[];
22
+ /** Response fingerprints that confirm the resource is unclaimed */
23
+ fingerprints: {
24
+ /** Body content patterns (regex) indicating an unclaimed resource */
25
+ body?: string[];
26
+ /** Expected HTTP status code for unclaimed resources */
27
+ status?: number;
28
+ /** Header patterns (name → regex) on the error response */
29
+ headers?: Record<string, string>;
30
+ };
31
+ /** Risk severity — high means trivially exploitable with no auth */
32
+ severity: "high" | "medium" | "low";
33
+ /** Reference URL for takeover documentation / proof-of-concept */
34
+ documentation?: string;
35
+ }
36
+ export declare const TAKEOVER_PATTERNS: TakeoverPattern[];
37
+ //# sourceMappingURL=takeover-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"takeover-patterns.d.ts","sourceRoot":"","sources":["../../src/data/takeover-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mEAAmE;IACnE,YAAY,EAAE;QACZ,qEAAqE;QACrE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,wDAAwD;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,2DAA2D;QAC3D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;IACF,oEAAoE;IACpE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,EAAE,eAAe,EAqP9C,CAAC"}
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Subdomain takeover detection patterns.
3
+ *
4
+ * When a DNS CNAME record points to a third-party service (e.g., Heroku,
5
+ * GitHub Pages, S3) but the resource on that service has been deleted or never
6
+ * provisioned, an attacker can register the same resource and serve arbitrary
7
+ * content on the victim's subdomain.
8
+ *
9
+ * Each entry contains CNAME target regex patterns and response fingerprints
10
+ * (body text, HTTP status, headers) that confirm the resource is unclaimed.
11
+ *
12
+ * References:
13
+ * - https://github.com/EdOverflow/can-i-take-over-xyz
14
+ * - https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/02-Configuration_and_Deployment_Management_Testing/10-Test_for_Subdomain_Takeover
15
+ */
16
+ export const TAKEOVER_PATTERNS = [
17
+ // ──────────────────────────────────────────────────
18
+ // PaaS / Hosting
19
+ // ──────────────────────────────────────────────────
20
+ {
21
+ service: "Heroku",
22
+ cnamePatterns: ["\\.herokuapp\\.com$", "\\.herokussl\\.com$"],
23
+ fingerprints: {
24
+ body: ["No such app", "no-hierarchical-app-detected"],
25
+ status: 404,
26
+ headers: { server: "^heroku-router$" },
27
+ },
28
+ severity: "high",
29
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#heroku",
30
+ },
31
+ {
32
+ service: "GitHub Pages",
33
+ cnamePatterns: ["\\.github\\.io$"],
34
+ fingerprints: {
35
+ body: [
36
+ "There isn't a GitHub Pages site here",
37
+ "For root URLs \\(like http://example\\.com/\\) you must provide an index\\.html file",
38
+ ],
39
+ status: 404,
40
+ },
41
+ severity: "high",
42
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#github-pages",
43
+ },
44
+ {
45
+ service: "AWS S3",
46
+ cnamePatterns: [
47
+ "\\.s3\\.amazonaws\\.com$",
48
+ "\\.s3-website[-.].+\\.amazonaws\\.com$",
49
+ "\\.s3\\..+\\.amazonaws\\.com$",
50
+ ],
51
+ fingerprints: {
52
+ body: ["NoSuchBucket", "The specified bucket does not exist"],
53
+ status: 404,
54
+ },
55
+ severity: "high",
56
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#aws-s3",
57
+ },
58
+ {
59
+ service: "Microsoft Azure",
60
+ cnamePatterns: [
61
+ "\\.azurewebsites\\.net$",
62
+ "\\.cloudapp\\.azure\\.com$",
63
+ "\\.azure-api\\.net$",
64
+ "\\.azurefd\\.net$",
65
+ "\\.trafficmanager\\.net$",
66
+ ],
67
+ fingerprints: {
68
+ body: ["404 Web Site not found", "Web App - Pair Not Found"],
69
+ status: 404,
70
+ },
71
+ severity: "high",
72
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#azure",
73
+ },
74
+ {
75
+ service: "Shopify",
76
+ cnamePatterns: ["shops\\.myshopify\\.com$"],
77
+ fingerprints: {
78
+ body: [
79
+ "Sorry, this shop is currently unavailable",
80
+ "Only one step left!",
81
+ ],
82
+ status: 404,
83
+ },
84
+ severity: "high",
85
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#shopify",
86
+ },
87
+ {
88
+ service: "Fastly",
89
+ cnamePatterns: ["\\.fastly\\.net$", "\\.fastlylb\\.net$"],
90
+ fingerprints: {
91
+ body: ["Fastly error: unknown domain"],
92
+ status: 500,
93
+ },
94
+ severity: "high",
95
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#fastly",
96
+ },
97
+ {
98
+ service: "Ghost",
99
+ cnamePatterns: ["\\.ghost\\.io$"],
100
+ fingerprints: {
101
+ body: ["The thing you were looking for is no longer here"],
102
+ status: 404,
103
+ },
104
+ severity: "medium",
105
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#ghost",
106
+ },
107
+ {
108
+ service: "Pantheon",
109
+ cnamePatterns: ["\\.pantheonsite\\.io$", "\\.pantheon\\.io$"],
110
+ fingerprints: {
111
+ body: [
112
+ "404 error unknown site",
113
+ "The gods are wise, but do not know of the site",
114
+ ],
115
+ status: 404,
116
+ },
117
+ severity: "medium",
118
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#pantheon",
119
+ },
120
+ {
121
+ service: "Tumblr",
122
+ cnamePatterns: ["\\.tumblr\\.com$", "domains\\.tumblr\\.com$"],
123
+ fingerprints: {
124
+ body: [
125
+ "There's nothing here",
126
+ "Whatever you were looking for doesn't currently exist",
127
+ ],
128
+ status: 404,
129
+ },
130
+ severity: "medium",
131
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#tumblr",
132
+ },
133
+ {
134
+ service: "Zendesk",
135
+ cnamePatterns: ["\\.zendesk\\.com$"],
136
+ fingerprints: {
137
+ body: ["Help Center Closed", "This help center no longer exists"],
138
+ status: 404,
139
+ headers: { "x-zendesk-request-id": "." },
140
+ },
141
+ severity: "medium",
142
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#zendesk",
143
+ },
144
+ // ──────────────────────────────────────────────────
145
+ // Static Hosting / Portfolios
146
+ // ──────────────────────────────────────────────────
147
+ {
148
+ service: "Cargo Collective",
149
+ cnamePatterns: ["\\.cargocollective\\.com$"],
150
+ fingerprints: {
151
+ body: ["404 Not Found"],
152
+ status: 404,
153
+ },
154
+ severity: "medium",
155
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#cargo",
156
+ },
157
+ {
158
+ service: "StatusPage (Atlassian)",
159
+ cnamePatterns: ["\\.statuspage\\.io$"],
160
+ fingerprints: {
161
+ body: ["Status page launch is imminent", "You are being redirected"],
162
+ status: 302,
163
+ },
164
+ severity: "medium",
165
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#statuspage",
166
+ },
167
+ {
168
+ service: "Surge.sh",
169
+ cnamePatterns: ["\\.surge\\.sh$"],
170
+ fingerprints: {
171
+ body: ["project not found"],
172
+ status: 404,
173
+ },
174
+ severity: "high",
175
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#surge",
176
+ },
177
+ {
178
+ service: "Fly.io",
179
+ cnamePatterns: ["\\.fly\\.dev$"],
180
+ fingerprints: {
181
+ body: ["Could not find the app", "404 Not Found"],
182
+ status: 404,
183
+ },
184
+ severity: "medium",
185
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#fly",
186
+ },
187
+ {
188
+ service: "Netlify",
189
+ cnamePatterns: ["\\.netlify\\.app$", "\\.netlify\\.com$"],
190
+ fingerprints: {
191
+ body: ["Not Found - Request ID"],
192
+ status: 404,
193
+ },
194
+ severity: "high",
195
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#netlify",
196
+ },
197
+ {
198
+ service: "Vercel",
199
+ cnamePatterns: ["cname\\.vercel-dns\\.com$", "\\.vercel\\.app$"],
200
+ fingerprints: {
201
+ body: ["The deployment could not be found", "DEPLOYMENT_NOT_FOUND"],
202
+ status: 404,
203
+ headers: { server: "^Vercel$" },
204
+ },
205
+ severity: "high",
206
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#vercel",
207
+ },
208
+ {
209
+ service: "ReadMe",
210
+ cnamePatterns: ["\\.readme\\.io$"],
211
+ fingerprints: {
212
+ body: ["Project doesnt exist"],
213
+ status: 404,
214
+ },
215
+ severity: "medium",
216
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#readme",
217
+ },
218
+ {
219
+ service: "GitBook",
220
+ cnamePatterns: ["\\.gitbook\\.io$"],
221
+ fingerprints: {
222
+ body: ["If you need specifics"],
223
+ status: 404,
224
+ },
225
+ severity: "medium",
226
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#gitbook",
227
+ },
228
+ {
229
+ service: "WordPress.com",
230
+ cnamePatterns: ["\\.wordpress\\.com$"],
231
+ fingerprints: {
232
+ body: ["Do you want to register"],
233
+ status: 404,
234
+ },
235
+ severity: "low",
236
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#wordpress",
237
+ },
238
+ {
239
+ service: "Unbounce",
240
+ cnamePatterns: ["\\.unbouncepages\\.com$"],
241
+ fingerprints: {
242
+ body: ["The requested URL was not found on this server"],
243
+ status: 404,
244
+ },
245
+ severity: "medium",
246
+ documentation: "https://github.com/EdOverflow/can-i-take-over-xyz#unbounce",
247
+ },
248
+ ];
249
+ //# sourceMappingURL=takeover-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"takeover-patterns.js","sourceRoot":"","sources":["../../src/data/takeover-patterns.ts"],"names":[],"mappings":"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"}