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
package/README.bn.md ADDED
@@ -0,0 +1,767 @@
1
+ <p align="center">
2
+ <a href="README.md">English</a> |
3
+ <a href="README.zh.md">简体中文</a> |
4
+ <a href="README.zh-TW.md">繁體中文</a> |
5
+ <a href="README.ko.md">한국어</a> |
6
+ <a href="README.de.md">Deutsch</a> |
7
+ <a href="README.es.md">Español</a> |
8
+ <a href="README.fr.md">Français</a> |
9
+ <a href="README.it.md">Italiano</a> |
10
+ <a href="README.da.md">Dansk</a> |
11
+ <a href="README.ja.md">日本語</a> |
12
+ <a href="README.pl.md">Polski</a> |
13
+ <a href="README.ru.md">Русский</a> |
14
+ <a href="README.bs.md">Bosanski</a> |
15
+ <a href="README.ar.md">العربية</a> |
16
+ <a href="README.no.md">Norsk</a> |
17
+ <a href="README.pt-BR.md">Português (Brasil)</a> |
18
+ <a href="README.th.md">ไทย</a> |
19
+ <a href="README.tr.md">Türkçe</a> |
20
+ <a href="README.uk.md">Українська</a> |
21
+ <strong>বাংলা</strong> |
22
+ <a href="README.el.md">Ελληνικά</a> |
23
+ <a href="README.vi.md">Tiếng Việt</a> |
24
+ <a href="README.hi.md">हिन्दी</a>
25
+ </p>
26
+
27
+ <p align="center">
28
+ <br>
29
+ <picture>
30
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/badchars/fingerprint-mcp/main/.github/banner-dark.svg">
31
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/badchars/fingerprint-mcp/main/.github/banner-light.svg">
32
+ <img alt="fingerprint-mcp" src="https://raw.githubusercontent.com/badchars/fingerprint-mcp/main/.github/banner-dark.svg" width="700">
33
+ </picture>
34
+ </p>
35
+
36
+ <h3 align="center">AI এজেন্টদের জন্য সর্বজনীন ডিজিটাল ফিঙ্গারপ্রিন্টিং।</h3>
37
+
38
+ <p align="center">
39
+ TCP, TLS/SSL, SSH, HTTP, DNS, WAF/CDN, IoT, SMTP, সার্ভিস প্রোবিং, JARM, JA4X, ফেভিকন হ্যাশিং, অবকাঠামো টপোলজি, C2 শনাক্তকরণ, OSINT সমৃদ্ধকরণ &mdash; একটি একক MCP সার্ভারে একীভূত।<br>
40
+ আপনার AI এজেন্ট পায় <b>চাহিদা অনুযায়ী সম্পূর্ণ-বর্ণালী ফিঙ্গারপ্রিন্টিং</b>, ১১টি বিচ্ছিন্ন CLI টুল এবং ম্যানুয়াল সম্পর্কযুক্তকরণ নয়।
41
+ </p>
42
+
43
+ <br>
44
+
45
+ <p align="center">
46
+ <a href="#সমস্যা">সমস্যা</a> &bull;
47
+ <a href="#এটি-কীভাবে-আলাদা">এটি কীভাবে আলাদা</a> &bull;
48
+ <a href="#দ্রুত-শুরু">দ্রুত শুরু</a> &bull;
49
+ <a href="#ai-কী-করতে-পারে">AI কী করতে পারে</a> &bull;
50
+ <a href="#টুল-রেফারেন্স-১৩-টুল-১০৩-কৌশল">টুল (১৩)</a> &bull;
51
+ <a href="#ডেটা-উৎস-২১">ডেটা উৎস</a> &bull;
52
+ <a href="#আর্কিটেকচার">আর্কিটেকচার</a> &bull;
53
+ <a href="CHANGELOG.md">পরিবর্তন লগ</a> &bull;
54
+ <a href="CONTRIBUTING.md">অবদান</a>
55
+ </p>
56
+
57
+ <p align="center">
58
+ <a href="https://www.npmjs.com/package/fingerprint-mcp"><img src="https://img.shields.io/npm/v/fingerprint-mcp.svg" alt="npm"></a>
59
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-blue.svg" alt="লাইসেন্স"></a>
60
+ <img src="https://img.shields.io/badge/runtime-Bun-f472b6" alt="Bun">
61
+ <img src="https://img.shields.io/badge/protocol-MCP-8b5cf6" alt="MCP">
62
+ <img src="https://img.shields.io/badge/tools-13-ef4444" alt="১৩ টুল">
63
+ <img src="https://img.shields.io/badge/techniques-103-f97316" alt="১০৩ কৌশল">
64
+ </p>
65
+
66
+ <p align="center">
67
+ <img src="https://raw.githubusercontent.com/badchars/fingerprint-mcp/main/.github/demo.gif" alt="fingerprint-mcp ডেমো" width="800">
68
+ </p>
69
+
70
+ ---
71
+
72
+ ## সমস্যা
73
+
74
+ আজকে একটি সার্ভারের ফিঙ্গারপ্রিন্ট নেওয়া মানে একগুচ্ছ বিচ্ছিন্ন টুল নিয়ে জাগলিং করা। আপনি পোর্ট স্ক্যানিংয়ের জন্য `nmap`, সার্টিফিকেট বিশ্লেষণের জন্য `testssl.sh`, HTTP হেডারের জন্য `curl -I`, DNS-এর জন্য `dig`, WAF শনাক্তকরণের জন্য `wafw00f`, SSH-এর জন্য `ssh-audit`, একটি আলাদা JARM টুল, প্রযুক্তি শনাক্তকরণের জন্য Wappalyzer চালান &mdash; এবং তারপর আসলে কী চলছে তা বুঝতে একটি স্প্রেডশিটে সবকিছু ম্যানুয়ালি ক্রস-রেফারেন্স করতে ৩০ মিনিট ব্যয় করেন।
75
+
76
+ ```
77
+ ঐতিহ্যবাহী ফিঙ্গারপ্রিন্টিং কর্মপ্রবাহ:
78
+ TLS সার্টিফিকেট বিশ্লেষণ -> testssl.sh / openssl s_client
79
+ HTTP হেডার সংগ্রহ -> curl -I
80
+ ওয়েব প্রযুক্তি শনাক্তকরণ -> wappalyzer CLI
81
+ DNS রিকনেসান্স -> dig / nslookup / dnsenum
82
+ পোর্ট স্ক্যানিং -> nmap -sV
83
+ WAF শনাক্তকরণ -> wafw00f
84
+ SSH অডিট -> ssh-audit
85
+ সার্ভিস ফিঙ্গারপ্রিন্টিং -> nmap scripts
86
+ JARM ফিঙ্গারপ্রিন্ট -> jarm (আলাদা টুল)
87
+ OSINT ডাটাবেস পরীক্ষা -> shodan CLI, censys CLI
88
+ সবকিছু সম্পর্কযুক্ত করা -> ম্যানুয়ালি স্প্রেডশিটে
89
+ ──────────────────────────────
90
+ মোট: ১১ টুল, ৩০+ মিনিট, ম্যানুয়াল সম্পর্কযুক্তকরণ
91
+ ```
92
+
93
+ **fingerprint-mcp** আপনার AI এজেন্টকে [Model Context Protocol](https://modelcontextprotocol.io) এর মাধ্যমে ২১টি প্রদানকারী জুড়ে ১০৩টি ফিঙ্গারপ্রিন্টিং কৌশল সম্বলিত ১৩টি কম্পোজিট টুল দেয়। এজেন্ট সমান্তরালে বহু-স্তরের ফিঙ্গারপ্রিন্টিং চালায়, TCP/TLS/HTTP/DNS/SSH স্তর জুড়ে সংকেত সম্পর্কযুক্ত করে, হানিপট এবং C2 অবকাঠামো শনাক্ত করে, এবং একটি একীভূত গোয়েন্দা চিত্র উপস্থাপন করে &mdash; একটি একক কথোপকথনে।
94
+
95
+ ```
96
+ fingerprint-mcp দিয়ে:
97
+ আপনি: "target.com-এ গভীর রিকন করো"
98
+
99
+ এজেন্ট: -> recon {url: "https://target.com", depth: "deep"}
100
+
101
+ -> TLS: JARM (3fd21b20d00000...) এর মাধ্যমে nginx/1.24.0,
102
+ Let's Encrypt সার্টিফিকেট, ২ SAN, TLS 1.2+1.3
103
+ -> HTTP: Cloudflare WAF-এর পিছনে Express.js,
104
+ React SPA, Google Analytics, ১৪টি নিরাপত্তা হেডার বিশ্লেষিত
105
+ -> DNS: A/AAAA/MX/TXT রেকর্ড, SPF/DKIM/DMARC কনফিগার করা,
106
+ CNAME/MX এর মাধ্যমে Slack + Google Workspace শনাক্ত
107
+ -> পোর্ট: 80, 443, 22 (OpenSSH 9.6), 8080 (dev সার্ভার)
108
+ -> WAF: Cloudflare শনাক্ত, direct-connect এর মাধ্যমে উৎস IP আবিষ্কৃত
109
+ -> গণনা: CT লগের মাধ্যমে ১২টি সাবডোমেইন, wildcard DNS শনাক্ত
110
+ -> "target.com Cloudflare WAF-এর পিছনে Express.js সহ nginx/1.24.0 চালায়।
111
+ উৎস IP 203.0.113.42 পোর্ট 8080-এ উন্মুক্ত।
112
+ TLS সঠিকভাবে কনফিগার করা (A+ সমতুল্য) কিন্তু 8080-এর dev সার্ভারে
113
+ কোনো WAF সুরক্ষা নেই। ৩টি সাবডোমেইন অবসরপ্রাপ্ত
114
+ অবকাঠামোতে নির্দেশ করে — সম্ভাব্য টেকওভার ঝুঁকি।"
115
+ ```
116
+
117
+ ---
118
+
119
+ ## এটি কীভাবে আলাদা
120
+
121
+ বিদ্যমান টুলগুলি আপনাকে একবারে একটি স্তরের কাঁচা ডেটা দেয়। fingerprint-mcp আপনার AI এজেন্টকে **একই সাথে সমস্ত ফিঙ্গারপ্রিন্টিং স্তর জুড়ে যুক্তি করার** ক্ষমতা দেয়।
122
+
123
+ <table>
124
+ <thead>
125
+ <tr>
126
+ <th></th>
127
+ <th>ঐতিহ্যবাহী পদ্ধতি</th>
128
+ <th>fingerprint-mcp</th>
129
+ </tr>
130
+ </thead>
131
+ <tbody>
132
+ <tr>
133
+ <td><b>ইন্টারফেস</b></td>
134
+ <td>বিভিন্ন আউটপুট ফরম্যাটসহ ১১টি ভিন্ন CLI টুল</td>
135
+ <td>MCP &mdash; AI এজেন্ট কথোপকথনমূলকভাবে টুল কল করে</td>
136
+ </tr>
137
+ <tr>
138
+ <td><b>কৌশল</b></td>
139
+ <td>একটি টুল, একবারে একটি স্তর</td>
140
+ <td>২১ প্রদানকারী জুড়ে ১০৩ কৌশল, সমান্তরালে চলে</td>
141
+ </tr>
142
+ <tr>
143
+ <td><b>TLS বিশ্লেষণ</b></td>
144
+ <td>testssl.sh আউটপুট, আলাদাভাবে ম্যানুয়ালি JARM পার্স করা</td>
145
+ <td>এজেন্ট সার্টিফিকেট + JARM + JA4X + সাইফার স্যুট + SNI + CT লগ একটি কলে সংযুক্ত করে</td>
146
+ </tr>
147
+ <tr>
148
+ <td><b>সম্পর্কযুক্তকরণ</b></td>
149
+ <td>ফলাফল স্প্রেডশিটে কপি-পেস্ট করা</td>
150
+ <td>এজেন্ট ক্রস-সম্পর্কযুক্ত করে: "JARM পরিচিত C2 ফ্রেমওয়ার্কের সাথে মেলে, HTTP টাইমিং হানিপট নিশ্চিত করে"</td>
151
+ </tr>
152
+ <tr>
153
+ <td><b>WAF বাইপাস</b></td>
154
+ <td>wafw00f WAF শনাক্ত করে, আপনি ম্যানুয়ালি উৎস খুঁজেন</td>
155
+ <td>এজেন্ট WAF শনাক্ত করে, উৎস IP আবিষ্কার করে, এবং যাচাই করে যে এটি একই কন্টেন্ট পরিবেশন করে</td>
156
+ </tr>
157
+ <tr>
158
+ <td><b>API কী</b></td>
159
+ <td>Shodan, Censys ইত্যাদির জন্য প্রয়োজন।</td>
160
+ <td>৮০+ সক্রিয় কৌশল কোনো API কী ছাড়াই কাজ করে; কীগুলি OSINT সমৃদ্ধকরণ আনলক করে</td>
161
+ </tr>
162
+ <tr>
163
+ <td><b>সেটআপ</b></td>
164
+ <td>nmap, testssl, wafw00f, ssh-audit, jarm, wappalyzer... ইনস্টল করুন</td>
165
+ <td><code>npx fingerprint-mcp</code> &mdash; একটি কমান্ড, শূন্য কনফিগারেশন</td>
166
+ </tr>
167
+ </tbody>
168
+ </table>
169
+
170
+ ---
171
+
172
+ ## দ্রুত শুরু
173
+
174
+ ### বিকল্প ১: npx (ইনস্টল ছাড়া)
175
+
176
+ ```bash
177
+ npx fingerprint-mcp
178
+ ```
179
+
180
+ সমস্ত ৮০+ সক্রিয় ফিঙ্গারপ্রিন্টিং কৌশল তাৎক্ষণিকভাবে কাজ করে। TCP, TLS, SSH, HTTP, DNS, WAF, পাথ, সার্ভিস, টাইমিং, IoT, SMTP, অবকাঠামো এবং অ্যাপ্লিকেশন ফিঙ্গারপ্রিন্টিংয়ের জন্য কোনো API কী প্রয়োজন নেই।
181
+
182
+ ### বিকল্প ২: ক্লোন
183
+
184
+ ```bash
185
+ git clone https://github.com/badchars/fingerprint-mcp.git
186
+ cd fingerprint-mcp
187
+ bun install
188
+ ```
189
+
190
+ ### এনভায়রনমেন্ট ভেরিয়েবল (ঐচ্ছিক)
191
+
192
+ ```bash
193
+ # OSINT সমৃদ্ধকরণ (সব ঐচ্ছিক — সক্রিয় ফিঙ্গারপ্রিন্টিং কোনো কী ছাড়াই কাজ করে)
194
+ export SHODAN_API_KEY=your-key # osint_shodan, ssh_hostkey_lookup সক্রিয় করে
195
+ export CENSYS_API_ID=your-id # osint_censys সক্রিয় করে (বিনামূল্যে: ২৫০ কোয়েরি/মাস)
196
+ export CENSYS_API_SECRET=your-secret # Censys API সিক্রেট
197
+ export SECURITYTRAILS_API_KEY=your-key # waf_origin, enum_passive_dns সক্রিয় করে
198
+ export VIRUSTOTAL_API_KEY=your-key # osint_virustotal সক্রিয় করে (বিনামূল্যে: ৫০০ কোয়েরি/দিন)
199
+ ```
200
+
201
+ সমস্ত API কী ঐচ্ছিক। এগুলি ছাড়াও, আপনি সম্পূর্ণ TCP/TLS/SSH/HTTP/DNS/WAF/পাথ/সার্ভিস/টাইমিং/IoT/SMTP/অবকাঠামো/অ্যাপ্লিকেশন ফিঙ্গারপ্রিন্টিং, সম্পর্কযুক্তকরণ, প্যাসিভ বিশ্লেষণ, গণনা এবং মেটা টুল পাবেন &mdash; ৮০+ কৌশল যা সরাসরি লক্ষ্য প্রোব করে কাজ করে।
202
+
203
+ ### আপনার AI এজেন্টের সাথে সংযোগ করুন
204
+
205
+ <details open>
206
+ <summary><b>Claude Code</b></summary>
207
+
208
+ ```bash
209
+ # npx দিয়ে
210
+ claude mcp add fingerprint-mcp -- npx fingerprint-mcp
211
+
212
+ # লোকাল ক্লোন দিয়ে
213
+ claude mcp add fingerprint-mcp -- bun run /path/to/fingerprint-mcp/src/index.ts
214
+ ```
215
+
216
+ </details>
217
+
218
+ <details>
219
+ <summary><b>Claude Desktop</b></summary>
220
+
221
+ `~/Library/Application Support/Claude/claude_desktop_config.json`-এ যোগ করুন:
222
+
223
+ ```json
224
+ {
225
+ "mcpServers": {
226
+ "fingerprint": {
227
+ "command": "npx",
228
+ "args": ["-y", "fingerprint-mcp"],
229
+ "env": {
230
+ "SHODAN_API_KEY": "optional",
231
+ "CENSYS_API_ID": "optional",
232
+ "CENSYS_API_SECRET": "optional",
233
+ "SECURITYTRAILS_API_KEY": "optional",
234
+ "VIRUSTOTAL_API_KEY": "optional"
235
+ }
236
+ }
237
+ }
238
+ }
239
+ ```
240
+
241
+ </details>
242
+
243
+ <details>
244
+ <summary><b>Cursor / Windsurf / অন্যান্য MCP ক্লায়েন্ট</b></summary>
245
+
246
+ একই JSON কনফিগারেশন ফরম্যাট। কমান্ডটি `npx fingerprint-mcp` বা আপনার লোকাল ইনস্টলেশন পাথে নির্দেশ করুন।
247
+
248
+ </details>
249
+
250
+ ### কোয়েরি শুরু করুন
251
+
252
+ ```
253
+ আপনি: "target.com-এর সবকিছুর ফিঙ্গারপ্রিন্ট নাও — TLS, HTTP স্ট্যাক, WAF, DNS, খোলা পোর্ট"
254
+ ```
255
+
256
+ এটাই সব। এজেন্ট স্বয়ংক্রিয়ভাবে বহু-স্তরের ফিঙ্গারপ্রিন্টিং, সংকেত সম্পর্কযুক্তকরণ এবং অবকাঠামো বিশ্লেষণ পরিচালনা করে।
257
+
258
+ ---
259
+
260
+ ## AI কী করতে পারে
261
+
262
+ ### দ্রুত রিকন
263
+
264
+ ```
265
+ আপনি: "target.com-এর দ্রুত রিকন"
266
+
267
+ এজেন্ট: -> recon {url: "https://target.com", depth: "quick"}
268
+
269
+ -> TCP: পোর্ট 80, 443, 22 খোলা
270
+ -> TLS: Let's Encrypt RSA সার্টিফিকেট, TLS 1.2+1.3, nginx JARM স্বাক্ষর
271
+ -> HTTP: nginx/1.24.0, Express.js, React, Cloudflare CDN
272
+ -> DNS: A 203.0.113.42, MX Google Workspace, SPF/DKIM কনফিগার করা
273
+ -> WAF: Cloudflare শনাক্ত (cf-ray হেডার)
274
+ -> "target.com হলো nginx/1.24.0-এর পিছনে Express.js-এ একটি React SPA,
275
+ Cloudflare CDN-এর মাধ্যমে পরিবেশিত। Let's Encrypt দিয়ে TLS
276
+ সঠিকভাবে কনফিগার করা। পোর্ট 22-এ SSH OpenSSH 9.6 চালাচ্ছে। ইমেইল
277
+ সম্পূর্ণ SPF/DKIM/DMARC সহ Google Workspace দ্বারা পরিচালিত।"
278
+ ```
279
+
280
+ ### গভীর TLS তদন্ত
281
+
282
+ ```
283
+ আপনি: "suspicious-server.com-এর TLS কনফিগারেশন বিস্তারিতভাবে বিশ্লেষণ করো"
284
+
285
+ এজেন্ট: -> scan_tls {host: "suspicious-server.com"}
286
+
287
+ -> সার্টিফিকেট: স্ব-স্বাক্ষরিত, CN=localhost, ৪৭ দিন আগে মেয়াদ শেষ
288
+ -> JARM: 2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
289
+ (Cobalt Strike ডিফল্ট প্রোফাইলের সাথে মেলে)
290
+ -> JA4X: ফিঙ্গারপ্রিন্ট পরিচিত C2 ফ্রেমওয়ার্ক প্যাটার্নের সাথে মেলে
291
+ -> সাইফার স্যুট: দুর্বল সাইফার গ্রহণ করে (RC4, 3DES)
292
+ -> SNI: যেকোনো SNI মানে অভিন্নভাবে সাড়া দেয়
293
+ -> CT লগ: সার্টিফিকেট লগ করা হয়নি (সর্বজনীনভাবে বিশ্বস্ত নয়)
294
+ -> "উচ্চ ঝুঁকি: TLS কনফিগারেশন দৃঢ়ভাবে C2 অবকাঠামো নির্দেশ করে।
295
+ স্ব-স্বাক্ষরিত মেয়াদোত্তীর্ণ সার্টিফিকেট, JARM ফিঙ্গারপ্রিন্ট Cobalt Strike-এর সাথে মেলে,
296
+ দুর্বল সাইফার গ্রহণ করে, এবং যেকোনো SNI মানে সাড়া দেয়।
297
+ অবিলম্বে তদন্ত এবং ব্লকিং সুপারিশ করা হয়।"
298
+ ```
299
+
300
+ ### WAF বাইপাস এবং উৎস আবিষ্কার
301
+
302
+ ```
303
+ আপনি: "target.com একটি WAF-এর পিছনে। তুমি কি উৎস সার্ভার খুঁজে পেতে পারো?"
304
+
305
+ এজেন্ট: -> scan_waf {url: "https://target.com"}
306
+ -> scan_dns {domain: "target.com"}
307
+ -> enumerate {domain: "target.com"}
308
+
309
+ -> WAF: Cloudflare (AS13335), সন্দেহজনক অনুরোধে চ্যালেঞ্জ পেজ
310
+ -> DNS: A রেকর্ড Cloudflare IP 104.21.x.x-এ নির্দেশ করে
311
+ -> সাবডোমেইন: dev.target.com 203.0.113.42-এ রিজলভ হয় (Cloudflare নয়)
312
+ -> 203.0.113.42:443-এ সরাসরি সংযোগ একই TLS সার্টিফিকেট রিটার্ন করে
313
+ -> SecurityTrails ইতিহাস: Cloudflare-এর আগে উৎস ছিল 203.0.113.42
314
+ -> "উৎস IP পাওয়া গেছে: 203.0.113.42। dev.target.com সাবডোমেইনের
315
+ মাধ্যমে আবিষ্কৃত যা Cloudflare বাইপাস করে। উৎস একই
316
+ TLS সার্টিফিকেট পরিবেশন করে এবং target.com Host হেডারে সাড়া দেয়।
317
+ উৎসে কোনো WAF সুরক্ষা নেই — সরাসরি অ্যাক্সেস সম্ভব।"
318
+ ```
319
+
320
+ ### একটি হোস্টে সার্ভিস আবিষ্কার
321
+
322
+ ```
323
+ আপনি: "10.0.1.50-তে কোন সার্ভিসগুলি চলছে?"
324
+
325
+ এজেন্ট: -> scan_ports {host: "10.0.1.50"}
326
+ -> scan_services {host: "10.0.1.50", ports: [22, 80, 3306, 5432, 6379, 8080]}
327
+
328
+ -> পোর্ট 22: OpenSSH 8.9p1 Ubuntu, ED25519 হোস্ট কী
329
+ -> পোর্ট 80: Apache/2.4.57, PHP/8.2, WordPress 6.4
330
+ -> পোর্ট 3306: MySQL 8.0.36, প্রমাণীকরণ প্রয়োজন
331
+ -> পোর্ট 5432: PostgreSQL 16.1, SSL প্রয়োজন
332
+ -> পোর্ট 6379: Redis 7.2.4, কোনো প্রমাণীকরণ নেই (খোলা)
333
+ -> পোর্ট 8080: Node.js Express dev সার্ভার, CORS: *
334
+ -> "জটিল: পোর্ট 6379-এ Redis-এর কোনো প্রমাণীকরণ নেই — নেটওয়ার্কে
335
+ যেকেউ ডেটা পড়তে/লিখতে পারে। 8080-এর Express dev সার্ভারে
336
+ ওয়াইল্ডকার্ড CORS আছে। MySQL এবং PostgreSQL সঠিকভাবে প্রমাণীকরণ
337
+ প্রয়োজন করে। WordPress ২টি মাইনর ভার্সন পিছিয়ে আছে। Redis এবং
338
+ dev সার্ভার এক্সপোজারে অবিলম্বে পদক্ষেপ প্রয়োজন।"
339
+ ```
340
+
341
+ ---
342
+
343
+ ## টুল রেফারেন্স (১৩ টুল, ১০৩ কৌশল)
344
+
345
+ <details open>
346
+ <summary><b>recon &mdash; গভীরতা-ভিত্তিক কৌশল নির্বাচনসহ সম্পূর্ণ রিকনেসান্স</b></summary>
347
+
348
+ | প্যারামিটার | টাইপ | বিবরণ |
349
+ |-------------|------|-------|
350
+ | `url` | string | ফিঙ্গারপ্রিন্ট করার লক্ষ্য URL |
351
+ | `depth` | `quick` \| `standard` \| `deep` | স্ক্যান গভীরতা: quick=৫ কৌশল, standard=২০, deep=৫০+ |
352
+
353
+ গভীরতার স্তরের ভিত্তিতে সমস্ত প্রদানকারীদের থেকে কৌশল অর্কেস্ট্রেট করে। দ্রুত মোড একটি দ্রুত ওভারভিউ দেয়; গভীর মোড গণনা, OSINT এবং সম্পর্কযুক্তকরণসহ বিস্তৃত ফিঙ্গারপ্রিন্টিং চালায়।
354
+
355
+ </details>
356
+
357
+ <details>
358
+ <summary><b>scan_ports &mdash; সার্ভিস শনাক্তকরণসহ TCP পোর্ট স্ক্যানিং (৩ কৌশল)</b></summary>
359
+
360
+ | প্যারামিটার | টাইপ | বিবরণ |
361
+ |-------------|------|-------|
362
+ | `host` | string | লক্ষ্য হোস্ট (IP বা ডোমেইন) |
363
+ | `ports` | number[] | ঐচ্ছিক &mdash; স্ক্যান করার জন্য নির্দিষ্ট পোর্ট (ডিফল্ট সাধারণ পোর্ট) |
364
+
365
+ | কৌশল | বিবরণ |
366
+ |-------|-------|
367
+ | `tcp_probe` | খোলা পোর্ট শনাক্ত করতে TCP connect স্ক্যান |
368
+ | `tcp_banner` | সার্ভিস শনাক্তকরণের জন্য খোলা পোর্টে ব্যানার গ্র্যাবিং |
369
+ | `tcp_analysis` | পোর্ট সংমিশ্রণ বিশ্লেষণ এবং সার্ভিস অনুমান |
370
+
371
+ </details>
372
+
373
+ <details>
374
+ <summary><b>scan_tls &mdash; সম্পূর্ণ TLS/SSL বিশ্লেষণ (৮ কৌশল)</b></summary>
375
+
376
+ | প্যারামিটার | টাইপ | বিবরণ |
377
+ |-------------|------|-------|
378
+ | `host` | string | লক্ষ্য হোস্ট (IP বা ডোমেইন) |
379
+ | `port` | number | ঐচ্ছিক &mdash; TLS পোর্ট (ডিফল্ট: 443) |
380
+
381
+ | কৌশল | বিবরণ |
382
+ |-------|-------|
383
+ | `tls_certificate` | X.509 সার্টিফিকেট পার্সিং &mdash; সাবজেক্ট, ইস্যুয়ার, SAN, বৈধতা, চেইন |
384
+ | `tls_jarm` | JARM সক্রিয় ফিঙ্গারপ্রিন্টিং &mdash; ১০টি TLS Client Hello প্রোব, ৬২-অক্ষর হ্যাশ |
385
+ | `tls_ja4x` | সার্টিফিকেট বৈশিষ্ট্য থেকে JA4X প্যাসিভ TLS ফিঙ্গারপ্রিন্টিং |
386
+ | `tls_ciphers` | সাইফার স্যুট গণনা এবং শক্তি বিশ্লেষণ |
387
+ | `tls_protocols` | সমর্থিত TLS প্রোটোকল ভার্সন শনাক্তকরণ (SSLv3 থেকে TLS 1.3) |
388
+ | `tls_sni` | SNI আচরণ পরীক্ষা &mdash; ডিফল্ট সার্টিফিকেট বনাম অনুরোধকৃত হোস্টনেম |
389
+ | `tls_ct_logs` | crt.sh এর মাধ্যমে Certificate Transparency লগ লুকআপ |
390
+ | `tls_ocsp` | OCSP stapling এবং প্রত্যাহার স্থিতি পরীক্ষা |
391
+
392
+ </details>
393
+
394
+ <details>
395
+ <summary><b>scan_dns &mdash; DNS গোয়েন্দা তথ্য (৭ কৌশল)</b></summary>
396
+
397
+ | প্যারামিটার | টাইপ | বিবরণ |
398
+ |-------------|------|-------|
399
+ | `domain` | string | লক্ষ্য ডোমেইন |
400
+
401
+ | কৌশল | বিবরণ |
402
+ |-------|-------|
403
+ | `dns_records` | সম্পূর্ণ রেকর্ড গণনা &mdash; A, AAAA, MX, NS, TXT, CNAME, SOA |
404
+ | `dns_email_auth` | SPF, DKIM এবং DMARC রেকর্ড বিশ্লেষণ |
405
+ | `dns_saas` | CNAME এবং MX প্যাটার্নের মাধ্যমে SaaS/সার্ভিস শনাক্তকরণ (Slack, Zendesk ইত্যাদি) |
406
+ | `dns_server` | DNS সার্ভার ফিঙ্গারপ্রিন্টিং (BIND, PowerDNS, Cloudflare ইত্যাদি) |
407
+ | `dns_takeover` | ড্যাংলিং CNAME বিশ্লেষণের মাধ্যমে সাবডোমেইন টেকওভার শনাক্তকরণ |
408
+ | `dns_zone` | জোন ট্রান্সফার প্রচেষ্টা (AXFR) |
409
+ | `dns_caa` | সার্টিফিকেট অথরিটি সীমাবদ্ধতার জন্য CAA রেকর্ড বিশ্লেষণ |
410
+
411
+ </details>
412
+
413
+ <details>
414
+ <summary><b>scan_http &mdash; HTTP/ওয়েব ফিঙ্গারপ্রিন্টিং (২৯ কৌশল)</b></summary>
415
+
416
+ | প্যারামিটার | টাইপ | বিবরণ |
417
+ |-------------|------|-------|
418
+ | `url` | string | লক্ষ্য URL |
419
+
420
+ | কৌশল | প্রদানকারী | বিবরণ |
421
+ |-------|-----------|-------|
422
+ | `http_headers` | HTTP | রেসপন্স হেডার বিশ্লেষণ এবং সার্ভার শনাক্তকরণ |
423
+ | `http_header_order` | HTTP | হেডার ক্রম ফিঙ্গারপ্রিন্ট (সার্ভার সফটওয়্যার স্বাক্ষর) |
424
+ | `http_security_headers` | HTTP | নিরাপত্তা হেডার অডিট (CSP, HSTS, X-Frame-Options ইত্যাদি) |
425
+ | `http_cookies` | HTTP | কুকি বিশ্লেষণ &mdash; ফ্ল্যাগ, প্রিফিক্স, ফ্রেমওয়ার্ক শনাক্তকরণ |
426
+ | `http_methods` | HTTP | অনুমোদিত HTTP মেথড গণনা (OPTIONS) |
427
+ | `http_cors` | HTTP | CORS নীতি বিশ্লেষণ এবং ভুল কনফিগারেশন শনাক্তকরণ |
428
+ | `http_compression` | HTTP | সমর্থিত কম্প্রেশন অ্যালগরিদম (gzip, br, zstd) |
429
+ | `http_caching` | HTTP | ক্যাশে হেডার বিশ্লেষণ (CDN, রিভার্স প্রক্সি শনাক্তকরণ) |
430
+ | `http_etag` | HTTP | ব্যাকএন্ড শনাক্তকরণের জন্য ETag ফরম্যাট বিশ্লেষণ |
431
+ | `http_error` | HTTP | এরর পেজ ফিঙ্গারপ্রিন্টিং (কাস্টম বনাম ডিফল্ট এরর পেজ) |
432
+ | `http_redirect` | HTTP | রিডাইরেক্ট চেইন বিশ্লেষণ |
433
+ | `http_timing` | HTTP | সার্ভার পারফরম্যান্স প্রোফাইলিংয়ের জন্য রেসপন্স টাইমিং বেসলাইন |
434
+ | `http_favicon` | HTTP | প্রযুক্তি শনাক্তকরণের জন্য ফেভিকন হ্যাশ (MurmurHash3) |
435
+ | `http_robots` | HTTP | robots.txt পার্সিং এবং নিষিদ্ধ পাথ বের করা |
436
+ | `http_sitemap` | HTTP | সাইটম্যাপ আবিষ্কার এবং URL বের করা |
437
+ | `http_wellknown` | HTTP | .well-known এন্ডপয়েন্ট আবিষ্কার (security.txt, openid ইত্যাদি) |
438
+ | `web_tech` | Web | HTML/JS/CSS প্যাটার্নের মাধ্যমে প্রযুক্তি শনাক্তকরণ |
439
+ | `web_analytics` | Web | অ্যানালিটিক্স এবং ট্র্যাকিং সার্ভিস শনাক্তকরণ |
440
+ | `web_sourcemaps` | Web | সোর্স ম্যাপ ফাইল আবিষ্কার |
441
+ | `web_websocket` | Web | WebSocket এন্ডপয়েন্ট শনাক্তকরণ |
442
+ | `web_graphql` | Web | GraphQL এন্ডপয়েন্ট শনাক্তকরণ এবং ইন্ট্রোস্পেকশন |
443
+ | `web_spa` | Web | সিঙ্গেল-পেজ অ্যাপ্লিকেশন ফ্রেমওয়ার্ক শনাক্তকরণ |
444
+ | `web_cdn` | Web | রেসপন্স হেডার এবং DNS এর মাধ্যমে CDN শনাক্তকরণ |
445
+ | `web_meta` | Web | HTML মেটা ট্যাগ বিশ্লেষণ (জেনারেটর, ফ্রেমওয়ার্ক ইঙ্গিত) |
446
+ | `web_feed` | Web | RSS/Atom ফিড আবিষ্কার |
447
+ | `h2_detect` | HTTP/2 | HTTP/2 প্রোটোকল সমর্থন শনাক্তকরণ |
448
+ | `h2_fingerprint` | HTTP/2 | HTTP/2 সার্ভার ফিঙ্গারপ্রিন্টিং (SETTINGS, WINDOW_UPDATE) |
449
+ | `h2_h3` | HTTP/2 | Alt-Svc হেডারের মাধ্যমে HTTP/3 (QUIC) সমর্থন শনাক্তকরণ |
450
+ | `app_cms` | Application | CMS শনাক্তকরণ (WordPress, Drupal, Joomla ইত্যাদি) |
451
+
452
+ </details>
453
+
454
+ <details>
455
+ <summary><b>scan_paths &mdash; পাথ গোয়েন্দা তথ্য (৫ কৌশল)</b></summary>
456
+
457
+ | প্যারামিটার | টাইপ | বিবরণ |
458
+ |-------------|------|-------|
459
+ | `url` | string | লক্ষ্য URL |
460
+ | `categories` | string[] | ঐচ্ছিক &mdash; পরীক্ষা করার বিভাগ (sensitive, git, debug, api, config) |
461
+
462
+ | কৌশল | বিবরণ |
463
+ |-------|-------|
464
+ | `path_sensitive` | সংবেদনশীল ফাইল আবিষ্কার (ব্যাকআপ ফাইল, কনফিগ ফাইল, ডাটাবেস ডাম্প) |
465
+ | `path_robots` | লুকানো পাথের জন্য robots.txt এবং sitemap.xml বিশ্লেষণ |
466
+ | `path_git` | Git রিপোজিটরি লিক শনাক্তকরণ (.git/HEAD, .git/config) |
467
+ | `path_debug` | ডিবাগ এন্ডপয়েন্ট আবিষ্কার (phpinfo, server-status, ডিবাগ কনসোল) |
468
+ | `path_api` | API ভার্সন এবং ডকুমেন্টেশন এন্ডপয়েন্ট আবিষ্কার |
469
+
470
+ </details>
471
+
472
+ <details>
473
+ <summary><b>scan_waf &mdash; WAF/CDN শনাক্তকরণ এবং ফিঙ্গারপ্রিন্টিং (৪ কৌশল)</b></summary>
474
+
475
+ | প্যারামিটার | টাইপ | বিবরণ |
476
+ |-------------|------|-------|
477
+ | `url` | string | লক্ষ্য URL |
478
+
479
+ | কৌশল | বিবরণ |
480
+ |-------|-------|
481
+ | `waf_detect` | রেসপন্স হেডার এবং আচরণ বিশ্লেষণের মাধ্যমে WAF উপস্থিতি শনাক্তকরণ |
482
+ | `waf_cdn` | CDN প্রদানকারী শনাক্তকরণ (Cloudflare, Akamai, Fastly ইত্যাদি) |
483
+ | `waf_fingerprint` | WAF পণ্য শনাক্তকরণ এবং ভার্সন শনাক্তকরণ |
484
+ | `waf_origin` | WAF/CDN-এর পিছনে উৎস IP আবিষ্কার (`SECURITYTRAILS_API_KEY` প্রয়োজন) |
485
+
486
+ </details>
487
+
488
+ <details>
489
+ <summary><b>scan_services &mdash; সার্ভিস-স্তরের প্রোবিং (১২ কৌশল)</b></summary>
490
+
491
+ | প্যারামিটার | টাইপ | বিবরণ |
492
+ |-------------|------|-------|
493
+ | `host` | string | লক্ষ্য হোস্ট (IP বা ডোমেইন) |
494
+ | `ports` | number[] | ঐচ্ছিক &mdash; প্রোব করার জন্য নির্দিষ্ট পোর্ট |
495
+ | `service` | string | ঐচ্ছিক &mdash; প্রোব করার জন্য নির্দিষ্ট সার্ভিস (mysql, postgres, redis, ftp, ssh, smtp, vnc, iot) |
496
+
497
+ | কৌশল | প্রদানকারী | বিবরণ |
498
+ |-------|-----------|-------|
499
+ | `ssh_probe` | SSH | SSH প্রোটোকল ভার্সন এবং সফটওয়্যার শনাক্তকরণ |
500
+ | `ssh_algorithms` | SSH | SSH অ্যালগরিদম অডিট (KEX, সাইফার, MAC, হোস্ট কী টাইপ) |
501
+ | `ssh_hostkey_lookup` | SSH | Shodan এর মাধ্যমে SSH হোস্ট কী লুকআপ (`SHODAN_API_KEY` প্রয়োজন) |
502
+ | `svc_mysql` | Service | MySQL ভার্সন শনাক্তকরণ এবং ক্ষমতা ফিঙ্গারপ্রিন্টিং |
503
+ | `svc_postgres` | Service | PostgreSQL ভার্সন শনাক্তকরণ এবং SSL সমর্থন পরীক্ষা |
504
+ | `svc_redis` | Service | Redis ভার্সন শনাক্তকরণ এবং প্রমাণীকরণ স্থিতি |
505
+ | `svc_ftp` | Service | FTP ব্যানার বিশ্লেষণ এবং বেনামী লগইন পরীক্ষা |
506
+ | `svc_vnc_rdp` | Service | VNC/RDP সার্ভিস শনাক্তকরণ এবং নিরাপত্তা মূল্যায়ন |
507
+ | `smtp_banner` | SMTP | SMTP ব্যানার বিশ্লেষণ এবং MTA শনাক্তকরণ |
508
+ | `smtp_starttls` | SMTP | SMTP STARTTLS সমর্থন এবং সার্টিফিকেট পরিদর্শন |
509
+ | `iot_detect` | IoT | ব্যানার প্যাটার্ন এবং ডিফল্ট পেজের মাধ্যমে IoT ডিভাইস শনাক্তকরণ |
510
+ | `iot_upnp` | IoT | লোকাল নেটওয়ার্কে UPnP/SSDP ডিভাইস আবিষ্কার |
511
+
512
+ </details>
513
+
514
+ <details>
515
+ <summary><b>enumerate &mdash; পরিসর সম্প্রসারণ (৮ কৌশল)</b></summary>
516
+
517
+ | প্যারামিটার | টাইপ | বিবরণ |
518
+ |-------------|------|-------|
519
+ | `domain` | string | লক্ষ্য ডোমেইন |
520
+
521
+ | কৌশল | বিবরণ |
522
+ |-------|-------|
523
+ | `enum_subdomains` | একাধিক পদ্ধতির মাধ্যমে সাবডোমেইন গণনা |
524
+ | `enum_wildcard` | ওয়াইল্ডকার্ড DNS শনাক্তকরণ |
525
+ | `enum_tld` | TLD সম্প্রসারণ (target.com -> target.net, target.org ইত্যাদি) |
526
+ | `enum_related` | শেয়ার করা অবকাঠামোর মাধ্যমে সম্পর্কিত ডোমেইন আবিষ্কার |
527
+ | `enum_asn` | ASN প্রতিবেশী আবিষ্কার &mdash; একই নেটওয়ার্কে অন্যান্য ডোমেইন |
528
+ | `enum_ct` | Certificate Transparency লগ সাবডোমেইন বের করা |
529
+ | `enum_passive_dns` | প্যাসিভ DNS ইতিহাস (`SECURITYTRAILS_API_KEY` প্রয়োজন) |
530
+ | `enum_scope` | পরিসর সারাংশ এবং আক্রমণ পৃষ্ঠ ওভারভিউ |
531
+
532
+ </details>
533
+
534
+ <details>
535
+ <summary><b>osint &mdash; OSINT সমৃদ্ধকরণ (৬ কৌশল)</b></summary>
536
+
537
+ | প্যারামিটার | টাইপ | বিবরণ |
538
+ |-------------|------|-------|
539
+ | `target` | string | সমৃদ্ধ করার জন্য IP ঠিকানা বা ডোমেইন |
540
+ | `type` | `ip` \| `domain` | ঐচ্ছিক &mdash; লক্ষ্যের ধরন (বাদ দিলে স্বয়ংক্রিয়ভাবে শনাক্ত) |
541
+
542
+ | কৌশল | প্রমাণীকরণ | বিবরণ |
543
+ |-------|-----------|-------|
544
+ | `osint_shodan` | `SHODAN_API_KEY` | Shodan হোস্ট লুকআপ &mdash; খোলা পোর্ট, ব্যানার, দুর্বলতা, OS |
545
+ | `osint_censys` | `CENSYS_API_ID` + `CENSYS_API_SECRET` | Censys হোস্ট ডেটা &mdash; সার্ভিস, TLS, স্বায়ত্তশাসিত সিস্টেম |
546
+ | `osint_reverse_ip` | নেই | রিভার্স IP লুকআপ &mdash; একই IP-তে অন্যান্য ডোমেইন |
547
+ | `osint_whois` | নেই | WHOIS রেজিস্ট্রেশন ডেটা &mdash; রেজিস্ট্রার, তারিখ, নেমসার্ভার |
548
+ | `osint_webarchive` | নেই | Web Archive ইতিহাস &mdash; প্রথম/শেষ স্ন্যাপশট, পরিবর্তনের ফ্রিকোয়েন্সি |
549
+ | `osint_virustotal` | `VIRUSTOTAL_API_KEY` | VirusTotal ডোমেইন/IP রিপোর্ট &mdash; শনাক্তকরণ, বিভাগ, DNS |
550
+
551
+ </details>
552
+
553
+ <details>
554
+ <summary><b>analyze &mdash; প্যাসিভ ফিঙ্গারপ্রিন্ট বিশ্লেষণ (৩ মোড)</b></summary>
555
+
556
+ | প্যারামিটার | টাইপ | বিবরণ |
557
+ |-------------|------|-------|
558
+ | `type` | `headers` \| `html` \| `banner` | বিশ্লেষণ করার ডেটার ধরন |
559
+ | `data` | string | বিশ্লেষণ করার কাঁচা ডেটা (হেডার, HTML বা ব্যানার আউটপুট পেস্ট করুন) |
560
+
561
+ | মোড | বিবরণ |
562
+ |-----|-------|
563
+ | `fp_analyze_headers` | প্যাসিভ HTTP হেডার বিশ্লেষণ &mdash; ট্রাফিক না পাঠিয়ে সার্ভার, ফ্রেমওয়ার্ক, প্রক্সি শনাক্তকরণ |
564
+ | `fp_analyze_html` | প্যাসিভ HTML বিশ্লেষণ &mdash; সোর্স থেকে প্রযুক্তি শনাক্তকরণ, ফ্রেমওয়ার্ক সনাক্তকরণ |
565
+ | `fp_analyze_banner` | প্যাসিভ ব্যানার বিশ্লেষণ &mdash; কাঁচা ব্যানার টেক্সট থেকে সার্ভিস শনাক্তকরণ |
566
+
567
+ </details>
568
+
569
+ <details>
570
+ <summary><b>correlate &mdash; বহু-সংকেত সম্পর্কযুক্তকরণ ইঞ্জিন (৭ মোড)</b></summary>
571
+
572
+ | প্যারামিটার | টাইপ | বিবরণ |
573
+ |-------------|------|-------|
574
+ | `type` | `consistency` \| `honeypot` \| `spoofing` \| `compare` \| `topology` \| `c2` \| `identify` | সম্পর্কযুক্তকরণ মোড |
575
+ | `signals` | object | সম্পর্কযুক্ত করার ফিঙ্গারপ্রিন্ট সংকেত (মোড অনুযায়ী পরিবর্তিত হয়) |
576
+
577
+ | মোড | বিবরণ |
578
+ |-----|-------|
579
+ | `fp_consistency` | ক্রস-লেয়ার সংকেত সামঞ্জস্য পরীক্ষা &mdash; TCP, TLS, HTTP এবং DNS ফিঙ্গারপ্রিন্ট কি মিলে? |
580
+ | `fp_honeypot` | হানিপট শনাক্তকরণ &mdash; অসম্ভব সার্ভিস সংমিশ্রণ এবং আচরণগত অসঙ্গতি পরীক্ষা |
581
+ | `fp_spoofing` | স্পুফিং শনাক্তকরণ &mdash; সার্ভার হেডার বনাম প্রকৃত আচরণের অমিল সনাক্ত |
582
+ | `fp_compare` | দুটি হোস্টের ফিঙ্গারপ্রিন্ট প্রোফাইলের পাশাপাশি তুলনা |
583
+ | `fp_topology` | অবকাঠামো টপোলজি ম্যাপিং &mdash; CDN, লোড ব্যালান্সার, রিভার্স প্রক্সি চেইন |
584
+ | `fp_c2` | JARM, TLS, HTTP এবং টাইমিং সম্পর্কযুক্তকরণের মাধ্যমে C2 ফ্রেমওয়ার্ক শনাক্তকরণ |
585
+ | `fp_identify` | পরিচিত স্বাক্ষর ডাটাবেসের বিপরীতে হ্যাশ-ভিত্তিক সনাক্তকরণ |
586
+
587
+ </details>
588
+
589
+ <details>
590
+ <summary><b>meta &mdash; সার্ভার কনফিগারেশন এবং ডেটা (৩ মোড)</b></summary>
591
+
592
+ | প্যারামিটার | টাইপ | বিবরণ |
593
+ |-------------|------|-------|
594
+ | `category` | string | ঐচ্ছিক &mdash; বিভাগ অনুযায়ী ফিল্টার |
595
+
596
+ | মোড | বিবরণ |
597
+ |-----|-------|
598
+ | `fp_sources` | কনফিগারেশন এবং API কী স্থিতিসহ সমস্ত উপলব্ধ ডেটা উৎসের তালিকা |
599
+ | `fp_config` | সার্ভার কনফিগারেশন &mdash; ভার্সন, লোড করা প্রদানকারী, কৌশল সংখ্যা |
600
+ | `fp_signatures` | স্বাক্ষর ডাটাবেস তালিকা &mdash; JARM, ব্যানার, WAF, অ্যাপ্লিকেশন স্বাক্ষর |
601
+
602
+ </details>
603
+
604
+ ---
605
+
606
+ ### CLI ব্যবহার
607
+
608
+ ```bash
609
+ # সমস্ত উপলব্ধ টুল এবং কৌশলের তালিকা
610
+ npx fingerprint-mcp --list
611
+
612
+ # যেকোনো টুল সরাসরি চালান
613
+ npx fingerprint-mcp --tool recon '{"url":"https://example.com","depth":"quick"}'
614
+ npx fingerprint-mcp --tool scan_tls '{"host":"example.com"}'
615
+ npx fingerprint-mcp --tool scan_ports '{"host":"10.0.1.50","ports":[22,80,443,3306,8080]}'
616
+ npx fingerprint-mcp --tool scan_dns '{"domain":"example.com"}'
617
+ npx fingerprint-mcp --tool scan_http '{"url":"https://example.com"}'
618
+ npx fingerprint-mcp --tool scan_waf '{"url":"https://example.com"}'
619
+ npx fingerprint-mcp --tool scan_services '{"host":"10.0.1.50","service":"redis"}'
620
+ npx fingerprint-mcp --tool enumerate '{"domain":"example.com"}'
621
+ npx fingerprint-mcp --tool analyze '{"type":"headers","data":"Server: nginx/1.24.0\nX-Powered-By: Express"}'
622
+ npx fingerprint-mcp --tool correlate '{"type":"honeypot","signals":{"jarm":"...","banner":"..."}}'
623
+ npx fingerprint-mcp --tool meta '{}'
624
+
625
+ # OSINT টুল (API কী প্রয়োজন)
626
+ SHODAN_API_KEY=your-key npx fingerprint-mcp --tool osint '{"target":"203.0.113.42","type":"ip"}'
627
+ ```
628
+
629
+ ---
630
+
631
+ ## ডেটা উৎস (২১)
632
+
633
+ | উৎস | প্রমাণীকরণ | যা প্রদান করে |
634
+ |------|-----------|---------------|
635
+ | TCP প্রোবিং | নেই | পোর্ট স্ক্যানিং, ব্যানার গ্র্যাবিং, সার্ভিস শনাক্তকরণ |
636
+ | TLS/SSL বিশ্লেষণ | নেই | সার্টিফিকেট পার্সিং, JARM ফিঙ্গারপ্রিন্টিং, JA4X, সাইফার গণনা, SNI পরীক্ষা |
637
+ | SSH প্রোবিং | নেই | প্রোটোকল ভার্সন, অ্যালগরিদম অডিট, সফটওয়্যার শনাক্তকরণ |
638
+ | HTTP বিশ্লেষণ | নেই | হেডার ফিঙ্গারপ্রিন্টিং, ফেভিকন হ্যাশিং, কুকি বিশ্লেষণ, মেথড গণনা, CORS |
639
+ | Web শনাক্তকরণ | নেই | প্রযুক্তি শনাক্তকরণ, অ্যানালিটিক্স, সোর্স ম্যাপ, WebSocket, GraphQL, SPA ফ্রেমওয়ার্ক |
640
+ | পাথ আবিষ্কার | নেই | সংবেদনশীল ফাইল, git লিক, ডিবাগ এন্ডপয়েন্ট, API ভার্সন, robots.txt |
641
+ | DNS রেজল্যুশন | নেই | রেকর্ড গণনা, ইমেইল প্রমাণীকরণ বিশ্লেষণ, SaaS শনাক্তকরণ, সার্ভার ফিঙ্গারপ্রিন্টিং |
642
+ | WAF/CDN শনাক্তকরণ | নেই | WAF সনাক্তকরণ, CDN শনাক্তকরণ, WAF ফিঙ্গারপ্রিন্টিং |
643
+ | টাইমিং বিশ্লেষণ | নেই | রেসপন্স টাইমিং বেসলাইন, ক্লক স্কু শনাক্তকরণ |
644
+ | HTTP/2 এবং HTTP/3 | নেই | HTTP/2 শনাক্তকরণ এবং ফিঙ্গারপ্রিন্টিং, HTTP/3 Alt-Svc আবিষ্কার |
645
+ | SMTP প্রোবিং | নেই | SMTP ব্যানার বিশ্লেষণ, STARTTLS পরিদর্শন |
646
+ | IoT/এম্বেডেড | নেই | IoT ডিভাইস শনাক্তকরণ, UPnP/SSDP আবিষ্কার |
647
+ | অ্যাপ্লিকেশন শনাক্তকরণ | নেই | CMS, ফ্রেমওয়ার্ক এবং ই-কমার্স প্ল্যাটফর্ম সনাক্তকরণ |
648
+ | সার্ভিস প্রোবিং | নেই | MySQL, PostgreSQL, Redis, FTP, VNC/RDP ফিঙ্গারপ্রিন্টিং |
649
+ | অবকাঠামো শনাক্তকরণ | নেই | ক্লাউড প্রদানকারী, হোস্টিং প্রদানকারী, CDN সনাক্তকরণ |
650
+ | সম্পর্কযুক্তকরণ ইঞ্জিন | নেই | সংকেত সামঞ্জস্য, হানিপট শনাক্তকরণ, স্পুফিং শনাক্তকরণ, টপোলজি ম্যাপিং |
651
+ | সনাক্তকরণ ইঞ্জিন | নেই | হ্যাশ-ভিত্তিক সনাক্তকরণ, C2 শনাক্তকরণ, স্বাক্ষর মেলানো |
652
+ | [Shodan](https://www.shodan.io) | `SHODAN_API_KEY` | হোস্ট গোয়েন্দা তথ্য &mdash; খোলা পোর্ট, ব্যানার, দুর্বলতা, OS শনাক্তকরণ |
653
+ | [Censys](https://censys.io) | `CENSYS_API_ID` | হোস্ট ডেটা &mdash; সার্ভিস, TLS সার্টিফিকেট, স্বায়ত্তশাসিত সিস্টেম তথ্য |
654
+ | [SecurityTrails](https://securitytrails.com) | `SECURITYTRAILS_API_KEY` | WAF উৎস আবিষ্কার, প্যাসিভ DNS ইতিহাস, ঐতিহাসিক রেকর্ড |
655
+ | [VirusTotal](https://www.virustotal.com) | `VIRUSTOTAL_API_KEY` | ডোমেইন/IP সুনাম, শনাক্তকরণ ফলাফল, DNS ইতিহাস, বিভাগ |
656
+
657
+ ---
658
+
659
+ ## আর্কিটেকচার
660
+
661
+ ```
662
+ src/
663
+ index.ts # CLI এন্ট্রিপয়েন্ট (--help, --list, --tool, stdio সার্ভার)
664
+ protocol/
665
+ mcp-server.ts # MCP সার্ভার সেটআপ (stdio ট্রান্সপোর্ট)
666
+ tools.ts # টুল রেজিস্ট্রি — সমস্ত ১৩ কম্পোজিট টুল এখানে নিবন্ধিত
667
+ types/
668
+ index.ts # শেয়ার্ড টাইপ (ToolDef, ToolContext, ToolResult)
669
+ utils/
670
+ rate-limiter.ts # প্রতি-প্রদানকারী রেট লিমিটার
671
+ cache.ts # API রেসপন্সের জন্য TTL ক্যাশে
672
+ require-key.ts # API কী যাচাইকরণ সহায়ক
673
+ murmurhash3.ts # ফেভিকন হ্যাশিংয়ের জন্য MurmurHash3
674
+ composite/ # ১৩ কম্পোজিট টুল অর্কেস্ট্রেটর
675
+ recon.ts # সম্পূর্ণ রিকন অর্কেস্ট্রেটর (quick/standard/deep)
676
+ scan-ports.ts # পোর্ট স্ক্যানিং কম্পোজিট
677
+ scan-tls.ts # TLS বিশ্লেষণ কম্পোজিট
678
+ scan-dns.ts # DNS গোয়েন্দা তথ্য কম্পোজিট
679
+ scan-http.ts # HTTP ফিঙ্গারপ্রিন্টিং কম্পোজিট
680
+ scan-paths.ts # পাথ আবিষ্কার কম্পোজিট
681
+ scan-waf.ts # WAF/CDN শনাক্তকরণ কম্পোজিট
682
+ scan-services.ts # সার্ভিস প্রোবিং কম্পোজিট
683
+ analyze.ts # প্যাসিভ বিশ্লেষণ কম্পোজিট
684
+ correlate.ts # সম্পর্কযুক্তকরণ ইঞ্জিন কম্পোজিট
685
+ enumerate.ts # পরিসর সম্প্রসারণ কম্পোজিট
686
+ osint.ts # OSINT সমৃদ্ধকরণ কম্পোজিট
687
+ meta.ts # সার্ভার মেটা কম্পোজিট
688
+ helpers.ts # শেয়ার্ড কম্পোজিট সহায়ক
689
+ tcp/ # TCP প্রোবিং কৌশল (৩)
690
+ tls/ # TLS/SSL বিশ্লেষণ কৌশল (৮)
691
+ ssh/ # SSH প্রোবিং কৌশল (৩)
692
+ http/ # HTTP ফিঙ্গারপ্রিন্টিং কৌশল (১৬)
693
+ web/ # ওয়েব প্রযুক্তি শনাক্তকরণ কৌশল (৯)
694
+ path/ # পাথ আবিষ্কার কৌশল (৫)
695
+ dns/ # DNS গোয়েন্দা তথ্য কৌশল (৭)
696
+ waf/ # WAF/CDN শনাক্তকরণ কৌশল (৪)
697
+ timing/ # টাইমিং বিশ্লেষণ কৌশল (২)
698
+ h2/ # HTTP/2 এবং HTTP/3 কৌশল (৩)
699
+ smtp/ # SMTP প্রোবিং কৌশল (২)
700
+ iot/ # IoT/এম্বেডেড শনাক্তকরণ কৌশল (২)
701
+ app/ # অ্যাপ্লিকেশন শনাক্তকরণ কৌশল (৩)
702
+ service/ # সার্ভিস প্রোবিং কৌশল (৫)
703
+ infra/ # অবকাঠামো শনাক্তকরণ কৌশল (৩)
704
+ correlation/ # সম্পর্কযুক্তকরণ ইঞ্জিন (৫)
705
+ identify/ # সনাক্তকরণ ইঞ্জিন (৩)
706
+ passive/ # প্যাসিভ বিশ্লেষণ (৩)
707
+ osint/ # OSINT সমৃদ্ধকরণ কৌশল (৬)
708
+ enum/ # গণনা কৌশল (৮)
709
+ meta/ # মেটা টুল (৩)
710
+ data/ # স্বাক্ষর ডাটাবেস এবং প্যাটার্ন লাইব্রেরি
711
+ jarm-signatures.ts # পরিচিত JARM ফিঙ্গারপ্রিন্ট (C2, সার্ভার, CDN)
712
+ waf-signatures.ts # WAF শনাক্তকরণ স্বাক্ষর
713
+ service-banners.ts # সার্ভিস ব্যানার প্যাটার্ন
714
+ tech-patterns.ts # প্রযুক্তি শনাক্তকরণ প্যাটার্ন
715
+ favicon-hashes.ts # পরিচিত ফেভিকন MurmurHash3 মান
716
+ c2-signatures.ts # C2 ফ্রেমওয়ার্ক স্বাক্ষর
717
+ ... # ১৫+ স্বাক্ষর/প্যাটার্ন ডাটাবেস
718
+ ```
719
+
720
+ **ডিজাইন সিদ্ধান্ত:**
721
+
722
+ - **১৩ কম্পোজিট টুল, ১০৩ কৌশল** &mdash; এজেন্ট উচ্চ-স্তরের টুল কল করে (`recon`, `scan_tls`, `scan_http`)। প্রতিটি কম্পোজিট একাধিক নিম্ন-স্তরের কৌশল অর্কেস্ট্রেট করে এবং সম্পর্কযুক্ত ফলাফল প্রদান করে। এটি সূক্ষ্মতা বজায় রেখে টুল-কল ওভারহেড কমায়।
723
+ - **২১ প্রদানকারী, ১ সার্ভার** &mdash; প্রতিটি ফিঙ্গারপ্রিন্টিং স্তর একটি স্বাধীন মডিউল। কম্পোজিট অর্কেস্ট্রেটর প্রসঙ্গ এবং গভীরতার ভিত্তিতে কৌশল নির্বাচন করে।
724
+ - **প্রথমে সক্রিয়, OSINT ঐচ্ছিক** &mdash; ৮০+ কৌশল শূন্য API কী দিয়ে সরাসরি লক্ষ্য প্রোব করে কাজ করে। OSINT প্রদানকারী (Shodan, Censys, VirusTotal, SecurityTrails) সমৃদ্ধকরণ যোগ করে কিন্তু কখনোই প্রয়োজনীয় নয়।
725
+ - **প্রতি-প্রদানকারী রেট লিমিটার** &mdash; প্রতিটি প্রদানকারীর নিজস্ব `RateLimiter` ইনস্ট্যান্স আছে। সক্রিয় প্রোবিং শনাক্তকরণ এড়াতে রেট-লিমিটেড; OSINT API তাদের কোটায় ক্যালিব্রেট করা হয়।
726
+ - **TTL ক্যাশিং** &mdash; DNS রেকর্ড (১০ মিনিট), OSINT ফলাফল (১৫ মিনিট), CT লগ (৩০ মিনিট) বহু-টুল কর্মপ্রবাহে অপ্রয়োজনীয় লুকআপ এড়াতে ক্যাশে করা হয়।
727
+ - **সুনম্র অবক্ষয়** &mdash; অনুপস্থিত API কী সার্ভার ক্র্যাশ করে না। OSINT টুল বর্ণনামূলক বার্তা প্রদান করে: "Shodan হোস্ট লুকআপ সক্রিয় করতে SHODAN_API_KEY সেট করুন।"
728
+ - **৩টি নির্ভরতা** &mdash; `@modelcontextprotocol/sdk`, `zod` এবং `cheerio`। সমস্ত নেটওয়ার্ক I/O নেটিভ `fetch()` এবং Node.js `net`/`tls`/`dns` মডিউলের মাধ্যমে। nmap নেই, বাহ্যিক বাইনারি নেই।
729
+
730
+ ---
731
+
732
+ ## সীমাবদ্ধতা
733
+
734
+ - OSINT টুল (Shodan, Censys, VirusTotal, SecurityTrails) তাদের নিজ নিজ কৌশলের জন্য API কী প্রয়োজন
735
+ - Censys বিনামূল্যে স্তর ২৫০ কোয়েরি/মাসে সীমাবদ্ধ
736
+ - VirusTotal বিনামূল্যে স্তর ৫০০ কোয়েরি/দিনে সীমাবদ্ধ
737
+ - পোর্ট স্ক্যানিং TCP connect ব্যবহার করে (SYN scan নয়) &mdash; nmap-এর চেয়ে কম গোপনীয় কিন্তু root সুবিধা প্রয়োজন হয় না
738
+ - JARM ফিঙ্গারপ্রিন্টিংয়ের জন্য লক্ষ্যে সরাসরি TCP অ্যাক্সেস প্রয়োজন (ফায়ারওয়াল দ্বারা ব্লক হতে পারে)
739
+ - UPnP/SSDP আবিষ্কার শুধুমাত্র লোকাল নেটওয়ার্কে কাজ করে
740
+ - সার্ভিস প্রোবিং (MySQL, PostgreSQL, Redis) সংযোগ করে কিন্তু প্রমাণীকরণ করে না
741
+ - সাবডোমেইন গণনা CT লগ এবং প্যাসিভ উৎসের উপর নির্ভর করে (ব্রুট-ফোর্স নয়)
742
+ - macOS / Linux-এ পরীক্ষিত (Windows পরীক্ষিত নয়)
743
+
744
+ ---
745
+
746
+ ## MCP নিরাপত্তা স্যুটের অংশ
747
+
748
+ | প্রকল্প | ডোমেইন | টুল |
749
+ |---------|--------|------|
750
+ | [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | ব্রাউজার-ভিত্তিক নিরাপত্তা পরীক্ষা | ৩৯ টুল, Firefox, ইনজেকশন পরীক্ষা |
751
+ | [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | ক্লাউড নিরাপত্তা (AWS/Azure/GCP) | ৩৮ টুল, ৬০+ চেক |
752
+ | [github-security-mcp](https://github.com/badchars/github-security-mcp) | GitHub নিরাপত্তা অবস্থান | ৩৯ টুল, ৪৫ চেক |
753
+ | [cve-mcp](https://github.com/badchars/cve-mcp) | দুর্বলতা গোয়েন্দা তথ্য | ২৩ টুল, ৫ উৎস |
754
+ | [osint-mcp-server](https://github.com/badchars/osint-mcp-server) | OSINT এবং রিকনেসান্স | ৩৭ টুল, ১২ উৎস |
755
+ | [darknet-mcp-server](https://github.com/badchars/darknet-mcp-server) | ডার্ক ওয়েব এবং হুমকি গোয়েন্দা তথ্য | ৬৬ টুল, ১৬ উৎস |
756
+ | **fingerprint-mcp** | **সর্বজনীন ডিজিটাল ফিঙ্গারপ্রিন্টিং** | **১৩ টুল, ১০৩ কৌশল, ২১ প্রদানকারী** |
757
+
758
+ ---
759
+
760
+ <p align="center">
761
+ <b>শুধুমাত্র অনুমোদিত নিরাপত্তা পরীক্ষা এবং মূল্যায়নের জন্য।</b><br>
762
+ কোনো লক্ষ্যে ফিঙ্গারপ্রিন্টিং করার আগে সর্বদা নিশ্চিত করুন যে আপনার যথাযথ অনুমোদন আছে।
763
+ </p>
764
+
765
+ <p align="center">
766
+ <a href="LICENSE">AGPL-3.0 লাইসেন্স</a> &bull; Bun + TypeScript দিয়ে তৈরি
767
+ </p>