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.
- package/LICENSE +663 -0
- package/README.ar.md +767 -0
- package/README.bn.md +767 -0
- package/README.bs.md +767 -0
- package/README.da.md +767 -0
- package/README.de.md +770 -0
- package/README.el.md +767 -0
- package/README.es.md +769 -0
- package/README.fr.md +769 -0
- package/README.hi.md +767 -0
- package/README.it.md +767 -0
- package/README.ja.md +767 -0
- package/README.ko.md +772 -0
- package/README.md +767 -0
- package/README.no.md +767 -0
- package/README.pl.md +767 -0
- package/README.pt-BR.md +767 -0
- package/README.ru.md +767 -0
- package/README.th.md +767 -0
- package/README.tr.md +767 -0
- package/README.uk.md +767 -0
- package/README.vi.md +767 -0
- package/README.zh-TW.md +768 -0
- package/README.zh.md +768 -0
- package/dist/app/index.d.ts +3 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +614 -0
- package/dist/app/index.js.map +1 -0
- package/dist/composite/analyze.d.ts +3 -0
- package/dist/composite/analyze.d.ts.map +1 -0
- package/dist/composite/analyze.js +59 -0
- package/dist/composite/analyze.js.map +1 -0
- package/dist/composite/correlate.d.ts +3 -0
- package/dist/composite/correlate.d.ts.map +1 -0
- package/dist/composite/correlate.js +184 -0
- package/dist/composite/correlate.js.map +1 -0
- package/dist/composite/enumerate.d.ts +3 -0
- package/dist/composite/enumerate.d.ts.map +1 -0
- package/dist/composite/enumerate.js +94 -0
- package/dist/composite/enumerate.js.map +1 -0
- package/dist/composite/helpers.d.ts +22 -0
- package/dist/composite/helpers.d.ts.map +1 -0
- package/dist/composite/helpers.js +111 -0
- package/dist/composite/helpers.js.map +1 -0
- package/dist/composite/index.d.ts +3 -0
- package/dist/composite/index.d.ts.map +1 -0
- package/dist/composite/index.js +29 -0
- package/dist/composite/index.js.map +1 -0
- package/dist/composite/meta.d.ts +3 -0
- package/dist/composite/meta.d.ts.map +1 -0
- package/dist/composite/meta.js +23 -0
- package/dist/composite/meta.js.map +1 -0
- package/dist/composite/osint.d.ts +3 -0
- package/dist/composite/osint.d.ts.map +1 -0
- package/dist/composite/osint.js +40 -0
- package/dist/composite/osint.js.map +1 -0
- package/dist/composite/recon.d.ts +3 -0
- package/dist/composite/recon.d.ts.map +1 -0
- package/dist/composite/recon.js +131 -0
- package/dist/composite/recon.js.map +1 -0
- package/dist/composite/scan-dns.d.ts +3 -0
- package/dist/composite/scan-dns.d.ts.map +1 -0
- package/dist/composite/scan-dns.js +44 -0
- package/dist/composite/scan-dns.js.map +1 -0
- package/dist/composite/scan-http.d.ts +3 -0
- package/dist/composite/scan-http.d.ts.map +1 -0
- package/dist/composite/scan-http.js +68 -0
- package/dist/composite/scan-http.js.map +1 -0
- package/dist/composite/scan-paths.d.ts +3 -0
- package/dist/composite/scan-paths.d.ts.map +1 -0
- package/dist/composite/scan-paths.js +32 -0
- package/dist/composite/scan-paths.js.map +1 -0
- package/dist/composite/scan-ports.d.ts +3 -0
- package/dist/composite/scan-ports.d.ts.map +1 -0
- package/dist/composite/scan-ports.js +79 -0
- package/dist/composite/scan-ports.js.map +1 -0
- package/dist/composite/scan-services.d.ts +3 -0
- package/dist/composite/scan-services.d.ts.map +1 -0
- package/dist/composite/scan-services.js +111 -0
- package/dist/composite/scan-services.js.map +1 -0
- package/dist/composite/scan-tls.d.ts +3 -0
- package/dist/composite/scan-tls.d.ts.map +1 -0
- package/dist/composite/scan-tls.js +32 -0
- package/dist/composite/scan-tls.js.map +1 -0
- package/dist/composite/scan-waf.d.ts +3 -0
- package/dist/composite/scan-waf.d.ts.map +1 -0
- package/dist/composite/scan-waf.js +35 -0
- package/dist/composite/scan-waf.js.map +1 -0
- package/dist/correlation/index.d.ts +3 -0
- package/dist/correlation/index.d.ts.map +1 -0
- package/dist/correlation/index.js +1044 -0
- package/dist/correlation/index.js.map +1 -0
- package/dist/data/analytics-patterns.d.ts +21 -0
- package/dist/data/analytics-patterns.d.ts.map +1 -0
- package/dist/data/analytics-patterns.js +449 -0
- package/dist/data/analytics-patterns.js.map +1 -0
- package/dist/data/app-signatures.d.ts +52 -0
- package/dist/data/app-signatures.d.ts.map +1 -0
- package/dist/data/app-signatures.js +1143 -0
- package/dist/data/app-signatures.js.map +1 -0
- package/dist/data/c2-signatures.d.ts +54 -0
- package/dist/data/c2-signatures.d.ts.map +1 -0
- package/dist/data/c2-signatures.js +256 -0
- package/dist/data/c2-signatures.js.map +1 -0
- package/dist/data/cloud-ranges.d.ts +34 -0
- package/dist/data/cloud-ranges.d.ts.map +1 -0
- package/dist/data/cloud-ranges.js +628 -0
- package/dist/data/cloud-ranges.js.map +1 -0
- package/dist/data/cookie-patterns.d.ts +28 -0
- package/dist/data/cookie-patterns.d.ts.map +1 -0
- package/dist/data/cookie-patterns.js +225 -0
- package/dist/data/cookie-patterns.js.map +1 -0
- package/dist/data/error-signatures.d.ts +19 -0
- package/dist/data/error-signatures.d.ts.map +1 -0
- package/dist/data/error-signatures.js +321 -0
- package/dist/data/error-signatures.js.map +1 -0
- package/dist/data/favicon-hashes.d.ts +25 -0
- package/dist/data/favicon-hashes.d.ts.map +1 -0
- package/dist/data/favicon-hashes.js +249 -0
- package/dist/data/favicon-hashes.js.map +1 -0
- package/dist/data/h2-signatures.d.ts +50 -0
- package/dist/data/h2-signatures.d.ts.map +1 -0
- package/dist/data/h2-signatures.js +211 -0
- package/dist/data/h2-signatures.js.map +1 -0
- package/dist/data/header-order.d.ts +38 -0
- package/dist/data/header-order.d.ts.map +1 -0
- package/dist/data/header-order.js +185 -0
- package/dist/data/header-order.js.map +1 -0
- package/dist/data/jarm-signatures.d.ts +25 -0
- package/dist/data/jarm-signatures.d.ts.map +1 -0
- package/dist/data/jarm-signatures.js +213 -0
- package/dist/data/jarm-signatures.js.map +1 -0
- package/dist/data/saas-patterns.d.ts +23 -0
- package/dist/data/saas-patterns.d.ts.map +1 -0
- package/dist/data/saas-patterns.js +139 -0
- package/dist/data/saas-patterns.js.map +1 -0
- package/dist/data/sensitive-paths.d.ts +12 -0
- package/dist/data/sensitive-paths.d.ts.map +1 -0
- package/dist/data/sensitive-paths.js +1539 -0
- package/dist/data/sensitive-paths.js.map +1 -0
- package/dist/data/service-banners.d.ts +59 -0
- package/dist/data/service-banners.d.ts.map +1 -0
- package/dist/data/service-banners.js +323 -0
- package/dist/data/service-banners.js.map +1 -0
- package/dist/data/smtp-signatures.d.ts +12 -0
- package/dist/data/smtp-signatures.d.ts.map +1 -0
- package/dist/data/smtp-signatures.js +350 -0
- package/dist/data/smtp-signatures.js.map +1 -0
- package/dist/data/takeover-patterns.d.ts +37 -0
- package/dist/data/takeover-patterns.d.ts.map +1 -0
- package/dist/data/takeover-patterns.js +249 -0
- package/dist/data/takeover-patterns.js.map +1 -0
- package/dist/data/tech-patterns.d.ts +44 -0
- package/dist/data/tech-patterns.d.ts.map +1 -0
- package/dist/data/tech-patterns.js +690 -0
- package/dist/data/tech-patterns.js.map +1 -0
- package/dist/data/waf-signatures.d.ts +21 -0
- package/dist/data/waf-signatures.d.ts.map +1 -0
- package/dist/data/waf-signatures.js +318 -0
- package/dist/data/waf-signatures.js.map +1 -0
- package/dist/dns/index.d.ts +3 -0
- package/dist/dns/index.d.ts.map +1 -0
- package/dist/dns/index.js +1067 -0
- package/dist/dns/index.js.map +1 -0
- package/dist/enum/index.d.ts +3 -0
- package/dist/enum/index.d.ts.map +1 -0
- package/dist/enum/index.js +818 -0
- package/dist/enum/index.js.map +1 -0
- package/dist/h2/index.d.ts +3 -0
- package/dist/h2/index.d.ts.map +1 -0
- package/dist/h2/index.js +414 -0
- package/dist/h2/index.js.map +1 -0
- package/dist/http/index.d.ts +3 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +2444 -0
- package/dist/http/index.js.map +1 -0
- package/dist/identify/index.d.ts +3 -0
- package/dist/identify/index.d.ts.map +1 -0
- package/dist/identify/index.js +447 -0
- package/dist/identify/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +165 -0
- package/dist/index.js.map +1 -0
- package/dist/infra/index.d.ts +3 -0
- package/dist/infra/index.d.ts.map +1 -0
- package/dist/infra/index.js +989 -0
- package/dist/infra/index.js.map +1 -0
- package/dist/iot/index.d.ts +3 -0
- package/dist/iot/index.d.ts.map +1 -0
- package/dist/iot/index.js +610 -0
- package/dist/iot/index.js.map +1 -0
- package/dist/meta/index.d.ts +3 -0
- package/dist/meta/index.d.ts.map +1 -0
- package/dist/meta/index.js +442 -0
- package/dist/meta/index.js.map +1 -0
- package/dist/osint/index.d.ts +3 -0
- package/dist/osint/index.d.ts.map +1 -0
- package/dist/osint/index.js +687 -0
- package/dist/osint/index.js.map +1 -0
- package/dist/passive/index.d.ts +3 -0
- package/dist/passive/index.d.ts.map +1 -0
- package/dist/passive/index.js +944 -0
- package/dist/passive/index.js.map +1 -0
- package/dist/path/index.d.ts +3 -0
- package/dist/path/index.d.ts.map +1 -0
- package/dist/path/index.js +878 -0
- package/dist/path/index.js.map +1 -0
- package/dist/protocol/mcp-server.d.ts +4 -0
- package/dist/protocol/mcp-server.d.ts.map +1 -0
- package/dist/protocol/mcp-server.js +32 -0
- package/dist/protocol/mcp-server.js.map +1 -0
- package/dist/protocol/tools.d.ts +3 -0
- package/dist/protocol/tools.d.ts.map +1 -0
- package/dist/protocol/tools.js +5 -0
- package/dist/protocol/tools.js.map +1 -0
- package/dist/service/index.d.ts +3 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +1053 -0
- package/dist/service/index.js.map +1 -0
- package/dist/smtp/index.d.ts +3 -0
- package/dist/smtp/index.d.ts.map +1 -0
- package/dist/smtp/index.js +437 -0
- package/dist/smtp/index.js.map +1 -0
- package/dist/ssh/index.d.ts +3 -0
- package/dist/ssh/index.d.ts.map +1 -0
- package/dist/ssh/index.js +676 -0
- package/dist/ssh/index.js.map +1 -0
- package/dist/tcp/index.d.ts +3 -0
- package/dist/tcp/index.d.ts.map +1 -0
- package/dist/tcp/index.js +369 -0
- package/dist/tcp/index.js.map +1 -0
- package/dist/timing/index.d.ts +3 -0
- package/dist/timing/index.d.ts.map +1 -0
- package/dist/timing/index.js +425 -0
- package/dist/timing/index.js.map +1 -0
- package/dist/tls/index.d.ts +3 -0
- package/dist/tls/index.d.ts.map +1 -0
- package/dist/tls/index.js +1332 -0
- package/dist/tls/index.js.map +1 -0
- package/dist/types/index.d.ts +26 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/cache.d.ts +11 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +35 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/murmurhash3.d.ts +3 -0
- package/dist/utils/murmurhash3.d.ts.map +1 -0
- package/dist/utils/murmurhash3.js +57 -0
- package/dist/utils/murmurhash3.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +10 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +35 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/require-key.d.ts +2 -0
- package/dist/utils/require-key.d.ts.map +1 -0
- package/dist/utils/require-key.js +8 -0
- package/dist/utils/require-key.js.map +1 -0
- package/dist/waf/index.d.ts +3 -0
- package/dist/waf/index.d.ts.map +1 -0
- package/dist/waf/index.js +767 -0
- package/dist/waf/index.js.map +1 -0
- package/dist/web/index.d.ts +3 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +1366 -0
- package/dist/web/index.js.map +1 -0
- package/package.json +66 -0
package/README.th.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
|
+
<strong>ไทย</strong> |
|
|
19
|
+
<a href="README.tr.md">Türkçe</a> |
|
|
20
|
+
<a href="README.uk.md">Українська</a> |
|
|
21
|
+
<a href="README.bn.md">বাংলা</a> |
|
|
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, การแฮชไอคอน favicon, โทโพโลยีโครงสร้างพื้นฐาน, การตรวจจับ C2, การเสริมข้อมูล OSINT — รวมเป็นเซิร์ฟเวอร์ MCP เดียว<br>
|
|
40
|
+
เอเจนต์ AI ของคุณจะได้รับ<b>การพิมพ์ลายนิ้วมือครบทุกมิติตามต้องการ</b> ไม่ใช่เครื่องมือ CLI 11 ตัวที่แยกกันและการเชื่อมโยงข้อมูลด้วยมือ
|
|
41
|
+
</p>
|
|
42
|
+
|
|
43
|
+
<br>
|
|
44
|
+
|
|
45
|
+
<p align="center">
|
|
46
|
+
<a href="#ปัญหา">ปัญหา</a> •
|
|
47
|
+
<a href="#แตกต่างอย่างไร">แตกต่างอย่างไร</a> •
|
|
48
|
+
<a href="#เริ่มต้นอย่างรวดเร็ว">เริ่มต้นอย่างรวดเร็ว</a> •
|
|
49
|
+
<a href="#สิ่งที่-ai-ทำได้">สิ่งที่ AI ทำได้</a> •
|
|
50
|
+
<a href="#อ้างอิงเครื่องมือ-13-เครื่องมือ-103-เทคนิค">เครื่องมือ (13)</a> •
|
|
51
|
+
<a href="#แหล่งข้อมูล-21">แหล่งข้อมูล</a> •
|
|
52
|
+
<a href="#สถาปัตยกรรม">สถาปัตยกรรม</a> •
|
|
53
|
+
<a href="CHANGELOG.md">บันทึกการเปลี่ยนแปลง</a> •
|
|
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="13 เครื่องมือ">
|
|
63
|
+
<img src="https://img.shields.io/badge/techniques-103-f97316" alt="103 เทคนิค">
|
|
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` สำหรับการวิเคราะห์ใบรับรอง, `curl -I` สำหรับ HTTP headers, `dig` สำหรับ DNS, `wafw00f` สำหรับการตรวจจับ WAF, `ssh-audit` สำหรับ SSH, เครื่องมือ JARM แยกต่างหาก, Wappalyzer สำหรับการตรวจจับเทคโนโลยี — แล้วใช้เวลา 30 นาทีในการเชื่อมโยงข้อมูลทั้งหมดด้วยมือในสเปรดชีตเพื่อหาว่าจริงๆ แล้วมีอะไรทำงานอยู่
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
ขั้นตอนการพิมพ์ลายนิ้วมือแบบดั้งเดิม:
|
|
78
|
+
วิเคราะห์ใบรับรอง TLS -> testssl.sh / openssl s_client
|
|
79
|
+
ดึง HTTP headers -> 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
|
+
รวม: 11 เครื่องมือ, 30+ นาที, เชื่อมโยงข้อมูลด้วยมือ
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**fingerprint-mcp** มอบเครื่องมือผสม 13 ตัวให้เอเจนต์ AI ของคุณ ครอบคลุม 103 เทคนิคการพิมพ์ลายนิ้วมือจาก 21 ผู้ให้บริการผ่าน [Model Context Protocol](https://modelcontextprotocol.io) เอเจนต์จะรันการพิมพ์ลายนิ้วมือหลายชั้นพร้อมกัน เชื่อมโยงสัญญาณข้ามชั้น TCP/TLS/HTTP/DNS/SSH ตรวจจับ honeypot และโครงสร้างพื้นฐาน C2 และนำเสนอภาพข่าวกรองแบบรวม — ในการสนทนาเดียว
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
ด้วย fingerprint-mcp:
|
|
97
|
+
คุณ: "ทำ deep recon บน target.com"
|
|
98
|
+
|
|
99
|
+
เอเจนต์: -> recon {url: "https://target.com", depth: "deep"}
|
|
100
|
+
|
|
101
|
+
-> TLS: nginx/1.24.0 ผ่าน JARM (3fd21b20d00000...),
|
|
102
|
+
ใบรับรอง Let's Encrypt, 2 SANs, TLS 1.2+1.3
|
|
103
|
+
-> HTTP: Express.js อยู่หลัง Cloudflare WAF,
|
|
104
|
+
React SPA, Google Analytics, วิเคราะห์ security headers 14 รายการ
|
|
105
|
+
-> DNS: ระเบียน A/AAAA/MX/TXT, กำหนดค่า SPF/DKIM/DMARC แล้ว,
|
|
106
|
+
ตรวจพบ Slack + Google Workspace ผ่าน CNAME/MX
|
|
107
|
+
-> พอร์ต: 80, 443, 22 (OpenSSH 9.6), 8080 (เซิร์ฟเวอร์พัฒนา)
|
|
108
|
+
-> WAF: ตรวจพบ Cloudflare, ค้นพบ IP ต้นทางผ่านการเชื่อมต่อโดยตรง
|
|
109
|
+
-> การนับ: 12 โดเมนย่อยผ่าน CT logs, ตรวจพบ wildcard DNS
|
|
110
|
+
-> "target.com รัน nginx/1.24.0 กับ Express.js อยู่หลัง
|
|
111
|
+
Cloudflare WAF. IP ต้นทาง 203.0.113.42 เปิดเผยที่พอร์ต 8080.
|
|
112
|
+
TLS กำหนดค่าอย่างถูกต้อง (เทียบเท่า A+) แต่เซิร์ฟเวอร์พัฒนา
|
|
113
|
+
ที่ 8080 ไม่มีการป้องกัน WAF. 3 โดเมนย่อยชี้ไปยัง
|
|
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 11 ตัวที่มีรูปแบบเอาต์พุตต่างกัน</td>
|
|
135
|
+
<td>MCP — เอเจนต์ AI เรียกใช้เครื่องมือแบบสนทนา</td>
|
|
136
|
+
</tr>
|
|
137
|
+
<tr>
|
|
138
|
+
<td><b>เทคนิค</b></td>
|
|
139
|
+
<td>เครื่องมือหนึ่งตัว หนึ่งชั้นต่อครั้ง</td>
|
|
140
|
+
<td>103 เทคนิคจาก 21 ผู้ให้บริการ รันพร้อมกัน</td>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td><b>การวิเคราะห์ TLS</b></td>
|
|
144
|
+
<td>เอาต์พุต testssl.sh, แยกวิเคราะห์ JARM ด้วยมือ</td>
|
|
145
|
+
<td>เอเจนต์รวมใบรับรอง + JARM + JA4X + ชุดรหัส + SNI + CT logs ในการเรียกเดียว</td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<td><b>การเชื่อมโยง</b></td>
|
|
149
|
+
<td>คัดลอกและวางผลลัพธ์ลงในสเปรดชีต</td>
|
|
150
|
+
<td>เอเจนต์เชื่อมโยงข้าม: "JARM ตรงกับ framework C2 ที่รู้จัก, เวลา HTTP ยืนยัน honeypot"</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>เทคนิคแอคทีฟ 80+ ตัวทำงานโดยไม่ต้องมีคีย์ 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> — คำสั่งเดียว ไม่ต้องตั้งค่า</td>
|
|
166
|
+
</tr>
|
|
167
|
+
</tbody>
|
|
168
|
+
</table>
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## เริ่มต้นอย่างรวดเร็ว
|
|
173
|
+
|
|
174
|
+
### ตัวเลือก 1: npx (ไม่ต้องติดตั้ง)
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npx fingerprint-mcp
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
เทคนิคการพิมพ์ลายนิ้วมือแอคทีฟทั้ง 80+ ตัวทำงานได้ทันที ไม่ต้องมีคีย์ API สำหรับการพิมพ์ลายนิ้วมือ TCP, TLS, SSH, HTTP, DNS, WAF, เส้นทาง, บริการ, เวลา, IoT, SMTP, โครงสร้างพื้นฐาน และแอปพลิเคชัน
|
|
181
|
+
|
|
182
|
+
### ตัวเลือก 2: โคลน
|
|
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 (ฟรี: 250 คำร้องขอ/เดือน)
|
|
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 (ฟรี: 500 คำร้องขอ/วัน)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
คีย์ API ทั้งหมดเป็นตัวเลือก โดยไม่มีคีย์เหล่านี้ คุณยังคงได้รับการพิมพ์ลายนิ้วมือเต็มรูปแบบสำหรับ TCP/TLS/SSH/HTTP/DNS/WAF/เส้นทาง/บริการ/เวลา/IoT/SMTP/โครงสร้างพื้นฐาน/แอปพลิเคชัน, การเชื่อมโยง, การวิเคราะห์แบบพาสซีฟ, การนับ, และเครื่องมือ meta — เทคนิค 80+ ตัวที่ทำงานโดยการตรวจสอบเป้าหมายโดยตรง
|
|
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 stack, 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 header)
|
|
274
|
+
-> "target.com เป็น React SPA บน Express.js หลัง nginx/1.24.0,
|
|
275
|
+
ให้บริการผ่าน Cloudflare CDN. TLS กำหนดค่าอย่างถูกต้องด้วย
|
|
276
|
+
Let's Encrypt. SSH บนพอร์ต 22 รัน OpenSSH 9.6. อีเมล
|
|
277
|
+
จัดการโดย Google Workspace ด้วย SPF/DKIM/DMARC เต็มรูปแบบ."
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### การตรวจสอบ TLS เชิงลึก
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
คุณ: "วิเคราะห์การตั้งค่า TLS ของ suspicious-server.com อย่างละเอียด"
|
|
284
|
+
|
|
285
|
+
เอเจนต์: -> scan_tls {host: "suspicious-server.com"}
|
|
286
|
+
|
|
287
|
+
-> ใบรับรอง: ลงนามด้วยตนเอง, CN=localhost, หมดอายุ 47 วันที่แล้ว
|
|
288
|
+
-> JARM: 2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
|
|
289
|
+
(ตรงกับโปรไฟล์เริ่มต้นของ Cobalt Strike)
|
|
290
|
+
-> JA4X: ลายนิ้วมือตรงกับรูปแบบ framework C2 ที่รู้จัก
|
|
291
|
+
-> ชุดรหัส: ยอมรับรหัสที่อ่อนแอ (RC4, 3DES)
|
|
292
|
+
-> SNI: ตอบสนองเหมือนกันกับค่า SNI ใดๆ
|
|
293
|
+
-> CT logs: ไม่มีบันทึกใบรับรอง (ไม่น่าเชื่อถือแบบสาธารณะ)
|
|
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 ชี้ไปที่ IP Cloudflare 104.21.x.x
|
|
311
|
+
-> โดเมนย่อย: dev.target.com แปลงเป็น 203.0.113.42 (ไม่ใช่ Cloudflare)
|
|
312
|
+
-> เชื่อมต่อตรงกับ 203.0.113.42:443 คืนใบรับรอง TLS เดียวกัน
|
|
313
|
+
-> ประวัติ SecurityTrails: ต้นทางคือ 203.0.113.42 ก่อน Cloudflare
|
|
314
|
+
-> "พบ IP ต้นทาง: 203.0.113.42. ค้นพบผ่านโดเมนย่อย
|
|
315
|
+
dev.target.com ที่เลี่ยง Cloudflare. ต้นทางให้บริการ
|
|
316
|
+
ใบรับรอง TLS เดียวกันและตอบสนองต่อ Host header ของ target.com.
|
|
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, CORS: *
|
|
334
|
+
-> "วิกฤต: Redis บนพอร์ต 6379 ไม่มีการพิสูจน์ตัวตน — ใครก็ได้บน
|
|
335
|
+
เครือข่ายสามารถอ่าน/เขียนข้อมูลได้. เซิร์ฟเวอร์พัฒนา Express บน 8080
|
|
336
|
+
มี CORS แบบ wildcard. MySQL และ PostgreSQL ต้องการการพิสูจน์ตัวตนอย่างถูกต้อง.
|
|
337
|
+
WordPress ช้ากว่า 2 เวอร์ชันย่อย. ต้องดำเนินการทันที
|
|
338
|
+
เกี่ยวกับ Redis และการเปิดเผยเซิร์ฟเวอร์พัฒนา."
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## อ้างอิงเครื่องมือ (13 เครื่องมือ, 103 เทคนิค)
|
|
344
|
+
|
|
345
|
+
<details open>
|
|
346
|
+
<summary><b>recon — การสำรวจเต็มรูปแบบพร้อมการเลือกเทคนิคตามระดับความลึก</b></summary>
|
|
347
|
+
|
|
348
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
349
|
+
|-------------|--------|----------|
|
|
350
|
+
| `url` | string | URL เป้าหมายสำหรับการพิมพ์ลายนิ้วมือ |
|
|
351
|
+
| `depth` | `quick` \| `standard` \| `deep` | ความลึกของการสแกน: quick=5 เทคนิค, standard=20, deep=50+ |
|
|
352
|
+
|
|
353
|
+
ประสานเทคนิคจากผู้ให้บริการทั้งหมดตามระดับความลึก โหมดเร็วให้ภาพรวมอย่างรวดเร็ว; โหมดลึกรันการพิมพ์ลายนิ้วมืออย่างครบถ้วนรวมถึงการนับ, OSINT, และการเชื่อมโยง
|
|
354
|
+
|
|
355
|
+
</details>
|
|
356
|
+
|
|
357
|
+
<details>
|
|
358
|
+
<summary><b>scan_ports — การสแกนพอร์ต TCP พร้อมการตรวจจับบริการ (3 เทคนิค)</b></summary>
|
|
359
|
+
|
|
360
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
361
|
+
|-------------|--------|----------|
|
|
362
|
+
| `host` | string | โฮสต์เป้าหมาย (IP หรือโดเมน) |
|
|
363
|
+
| `ports` | number[] | ไม่บังคับ — พอร์ตเฉพาะที่จะสแกน (ค่าเริ่มต้นเป็นพอร์ตทั่วไป) |
|
|
364
|
+
|
|
365
|
+
| เทคนิค | คำอธิบาย |
|
|
366
|
+
|---------|----------|
|
|
367
|
+
| `tcp_probe` | การสแกนเชื่อมต่อ TCP เพื่อตรวจจับพอร์ตที่เปิด |
|
|
368
|
+
| `tcp_banner` | การดึงแบนเนอร์บนพอร์ตที่เปิดเพื่อระบุบริการ |
|
|
369
|
+
| `tcp_analysis` | การวิเคราะห์การรวมพอร์ตและการอนุมานบริการ |
|
|
370
|
+
|
|
371
|
+
</details>
|
|
372
|
+
|
|
373
|
+
<details>
|
|
374
|
+
<summary><b>scan_tls — การวิเคราะห์ TLS/SSL แบบครบวงจร (8 เทคนิค)</b></summary>
|
|
375
|
+
|
|
376
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
377
|
+
|-------------|--------|----------|
|
|
378
|
+
| `host` | string | โฮสต์เป้าหมาย (IP หรือโดเมน) |
|
|
379
|
+
| `port` | number | ไม่บังคับ — พอร์ต TLS (ค่าเริ่มต้น: 443) |
|
|
380
|
+
|
|
381
|
+
| เทคนิค | คำอธิบาย |
|
|
382
|
+
|---------|----------|
|
|
383
|
+
| `tls_certificate` | การแยกวิเคราะห์ใบรับรอง X.509 — หัวเรื่อง, ผู้ออก, SANs, ความถูกต้อง, สายโซ่ |
|
|
384
|
+
| `tls_jarm` | การพิมพ์ลายนิ้วมือแอคทีฟ JARM — 10 การทดสอบ TLS Client Hello, แฮช 62 อักขระ |
|
|
385
|
+
| `tls_ja4x` | การพิมพ์ลายนิ้วมือพาสซีฟ JA4X ของ TLS จากคุณสมบัติใบรับรอง |
|
|
386
|
+
| `tls_ciphers` | การนับชุดรหัสและการวิเคราะห์ความแข็งแกร่ง |
|
|
387
|
+
| `tls_protocols` | การตรวจจับเวอร์ชันโปรโตคอล TLS ที่รองรับ (SSLv3 ถึง TLS 1.3) |
|
|
388
|
+
| `tls_sni` | การทดสอบพฤติกรรม SNI — ใบรับรองเริ่มต้น vs. ชื่อโฮสต์ที่ร้องขอ |
|
|
389
|
+
| `tls_ct_logs` | การค้นหา Certificate Transparency logs ผ่าน crt.sh |
|
|
390
|
+
| `tls_ocsp` | การตรวจสอบ OCSP stapling และสถานะการเพิกถอน |
|
|
391
|
+
|
|
392
|
+
</details>
|
|
393
|
+
|
|
394
|
+
<details>
|
|
395
|
+
<summary><b>scan_dns — ข่าวกรอง DNS (7 เทคนิค)</b></summary>
|
|
396
|
+
|
|
397
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
398
|
+
|-------------|--------|----------|
|
|
399
|
+
| `domain` | string | โดเมนเป้าหมาย |
|
|
400
|
+
|
|
401
|
+
| เทคนิค | คำอธิบาย |
|
|
402
|
+
|---------|----------|
|
|
403
|
+
| `dns_records` | การนับระเบียนเต็มรูปแบบ — A, AAAA, MX, NS, TXT, CNAME, SOA |
|
|
404
|
+
| `dns_email_auth` | การวิเคราะห์ระเบียน SPF, DKIM, และ DMARC |
|
|
405
|
+
| `dns_saas` | การตรวจจับ SaaS/บริการผ่านรูปแบบ CNAME และ MX (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 — การพิมพ์ลายนิ้วมือ HTTP/เว็บ (29 เทคนิค)</b></summary>
|
|
415
|
+
|
|
416
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
417
|
+
|-------------|--------|----------|
|
|
418
|
+
| `url` | string | URL เป้าหมาย |
|
|
419
|
+
|
|
420
|
+
| เทคนิค | ผู้ให้บริการ | คำอธิบาย |
|
|
421
|
+
|---------|-------------|----------|
|
|
422
|
+
| `http_headers` | HTTP | การวิเคราะห์ response headers และการระบุเซิร์ฟเวอร์ |
|
|
423
|
+
| `http_header_order` | HTTP | ลายนิ้วมือลำดับ headers (ลายเซ็นซอฟต์แวร์เซิร์ฟเวอร์) |
|
|
424
|
+
| `http_security_headers` | HTTP | การตรวจสอบ security headers (CSP, HSTS, X-Frame-Options ฯลฯ) |
|
|
425
|
+
| `http_cookies` | HTTP | การวิเคราะห์คุกกี้ — แฟล็ก, คำนำหน้า, การตรวจจับ framework |
|
|
426
|
+
| `http_methods` | HTTP | การนับเมธอด HTTP ที่อนุญาต (OPTIONS) |
|
|
427
|
+
| `http_cors` | HTTP | การวิเคราะห์นโยบาย CORS และการตรวจจับการตั้งค่าผิดพลาด |
|
|
428
|
+
| `http_compression` | HTTP | อัลกอริทึมการบีบอัดที่รองรับ (gzip, br, zstd) |
|
|
429
|
+
| `http_caching` | HTTP | การวิเคราะห์ cache headers (การตรวจจับ CDN, reverse proxy) |
|
|
430
|
+
| `http_etag` | HTTP | การวิเคราะห์รูปแบบ ETag สำหรับการระบุ backend |
|
|
431
|
+
| `http_error` | HTTP | การพิมพ์ลายนิ้วมือหน้าข้อผิดพลาด (หน้าข้อผิดพลาดที่กำหนดเอง vs. ค่าเริ่มต้น) |
|
|
432
|
+
| `http_redirect` | HTTP | การวิเคราะห์สายโซ่การเปลี่ยนเส้นทาง |
|
|
433
|
+
| `http_timing` | HTTP | ค่าพื้นฐานเวลาตอบสนองสำหรับการวิเคราะห์ประสิทธิภาพเซิร์ฟเวอร์ |
|
|
434
|
+
| `http_favicon` | HTTP | แฮช favicon (MurmurHash3) สำหรับการระบุเทคโนโลยี |
|
|
435
|
+
| `http_robots` | HTTP | การแยกวิเคราะห์ robots.txt และการดึงเส้นทางที่ห้าม |
|
|
436
|
+
| `http_sitemap` | HTTP | การค้นหา sitemap และการดึง URL |
|
|
437
|
+
| `http_wellknown` | HTTP | การค้นหา endpoint .well-known (security.txt, openid ฯลฯ) |
|
|
438
|
+
| `web_tech` | Web | การตรวจจับเทคโนโลยีผ่านรูปแบบ HTML/JS/CSS |
|
|
439
|
+
| `web_analytics` | Web | การตรวจจับบริการวิเคราะห์และติดตาม |
|
|
440
|
+
| `web_sourcemaps` | Web | การค้นหาไฟล์ source map |
|
|
441
|
+
| `web_websocket` | Web | การตรวจจับ endpoint WebSocket |
|
|
442
|
+
| `web_graphql` | Web | การตรวจจับ endpoint GraphQL และ introspection |
|
|
443
|
+
| `web_spa` | Web | การตรวจจับ framework แอปพลิเคชันหน้าเดียว |
|
|
444
|
+
| `web_cdn` | Web | การตรวจจับ CDN ผ่าน response headers และ DNS |
|
|
445
|
+
| `web_meta` | Web | การวิเคราะห์แท็ก HTML meta (generator, คำแนะนำ framework) |
|
|
446
|
+
| `web_feed` | Web | การค้นหา RSS/Atom feed |
|
|
447
|
+
| `h2_detect` | HTTP/2 | การตรวจจับการรองรับโปรโตคอล HTTP/2 |
|
|
448
|
+
| `h2_fingerprint` | HTTP/2 | การพิมพ์ลายนิ้วมือเซิร์ฟเวอร์ HTTP/2 (SETTINGS, WINDOW_UPDATE) |
|
|
449
|
+
| `h2_h3` | HTTP/2 | การตรวจจับการรองรับ HTTP/3 (QUIC) ผ่าน Alt-Svc header |
|
|
450
|
+
| `app_cms` | Application | การตรวจจับ CMS (WordPress, Drupal, Joomla ฯลฯ) |
|
|
451
|
+
|
|
452
|
+
</details>
|
|
453
|
+
|
|
454
|
+
<details>
|
|
455
|
+
<summary><b>scan_paths — ข่าวกรองเส้นทาง (5 เทคนิค)</b></summary>
|
|
456
|
+
|
|
457
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
458
|
+
|-------------|--------|----------|
|
|
459
|
+
| `url` | string | URL เป้าหมาย |
|
|
460
|
+
| `categories` | string[] | ไม่บังคับ — หมวดหมู่ที่จะตรวจสอบ (sensitive, git, debug, api, config) |
|
|
461
|
+
|
|
462
|
+
| เทคนิค | คำอธิบาย |
|
|
463
|
+
|---------|----------|
|
|
464
|
+
| `path_sensitive` | การค้นหาไฟล์ที่ละเอียดอ่อน (ไฟล์สำรอง, ไฟล์การตั้งค่า, การถ่ายโอนฐานข้อมูล) |
|
|
465
|
+
| `path_robots` | การวิเคราะห์ robots.txt และ sitemap.xml สำหรับเส้นทางที่ซ่อน |
|
|
466
|
+
| `path_git` | การตรวจจับการรั่วไหลของ Git repository (.git/HEAD, .git/config) |
|
|
467
|
+
| `path_debug` | การค้นหา endpoint การแก้ไขข้อบกพร่อง (phpinfo, server-status, คอนโซลแก้ไขข้อบกพร่อง) |
|
|
468
|
+
| `path_api` | การค้นหาเวอร์ชัน API และ endpoint เอกสาร |
|
|
469
|
+
|
|
470
|
+
</details>
|
|
471
|
+
|
|
472
|
+
<details>
|
|
473
|
+
<summary><b>scan_waf — การตรวจจับและพิมพ์ลายนิ้วมือ WAF/CDN (4 เทคนิค)</b></summary>
|
|
474
|
+
|
|
475
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
476
|
+
|-------------|--------|----------|
|
|
477
|
+
| `url` | string | URL เป้าหมาย |
|
|
478
|
+
|
|
479
|
+
| เทคนิค | คำอธิบาย |
|
|
480
|
+
|---------|----------|
|
|
481
|
+
| `waf_detect` | การตรวจจับการมีอยู่ของ WAF ผ่านการวิเคราะห์ response headers และพฤติกรรม |
|
|
482
|
+
| `waf_cdn` | การระบุผู้ให้บริการ CDN (Cloudflare, Akamai, Fastly ฯลฯ) |
|
|
483
|
+
| `waf_fingerprint` | การระบุผลิตภัณฑ์ WAF และการตรวจจับเวอร์ชัน |
|
|
484
|
+
| `waf_origin` | การค้นหา IP ต้นทางหลัง WAF/CDN (ต้องมี `SECURITYTRAILS_API_KEY`) |
|
|
485
|
+
|
|
486
|
+
</details>
|
|
487
|
+
|
|
488
|
+
<details>
|
|
489
|
+
<summary><b>scan_services — การตรวจสอบระดับบริการ (12 เทคนิค)</b></summary>
|
|
490
|
+
|
|
491
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
492
|
+
|-------------|--------|----------|
|
|
493
|
+
| `host` | string | โฮสต์เป้าหมาย (IP หรือโดเมน) |
|
|
494
|
+
| `ports` | number[] | ไม่บังคับ — พอร์ตเฉพาะที่จะตรวจสอบ |
|
|
495
|
+
| `service` | string | ไม่บังคับ — บริการเฉพาะที่จะตรวจสอบ (mysql, postgres, redis, ftp, ssh, smtp, vnc, iot) |
|
|
496
|
+
|
|
497
|
+
| เทคนิค | ผู้ให้บริการ | คำอธิบาย |
|
|
498
|
+
|---------|-------------|----------|
|
|
499
|
+
| `ssh_probe` | SSH | การตรวจจับเวอร์ชันโปรโตคอล SSH และซอฟต์แวร์ |
|
|
500
|
+
| `ssh_algorithms` | SSH | การตรวจสอบอัลกอริทึม SSH (KEX, รหัส, MACs, ประเภทคีย์โฮสต์) |
|
|
501
|
+
| `ssh_hostkey_lookup` | SSH | การค้นหาคีย์โฮสต์ SSH ผ่าน Shodan (ต้องมี `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 — การขยายขอบเขต (8 เทคนิค)</b></summary>
|
|
516
|
+
|
|
517
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
518
|
+
|-------------|--------|----------|
|
|
519
|
+
| `domain` | string | โดเมนเป้าหมาย |
|
|
520
|
+
|
|
521
|
+
| เทคนิค | คำอธิบาย |
|
|
522
|
+
|---------|----------|
|
|
523
|
+
| `enum_subdomains` | การนับโดเมนย่อยผ่านหลายวิธี |
|
|
524
|
+
| `enum_wildcard` | การตรวจจับ wildcard DNS |
|
|
525
|
+
| `enum_tld` | การขยาย TLD (target.com -> target.net, target.org ฯลฯ) |
|
|
526
|
+
| `enum_related` | การค้นหาโดเมนที่เกี่ยวข้องผ่านโครงสร้างพื้นฐานที่ใช้ร่วมกัน |
|
|
527
|
+
| `enum_asn` | การค้นหาเพื่อนบ้าน ASN — โดเมนอื่นบนเครือข่ายเดียวกัน |
|
|
528
|
+
| `enum_ct` | การดึงโดเมนย่อยจาก Certificate Transparency logs |
|
|
529
|
+
| `enum_passive_dns` | ประวัติ DNS พาสซีฟ (ต้องมี `SECURITYTRAILS_API_KEY`) |
|
|
530
|
+
| `enum_scope` | สรุปขอบเขตและภาพรวมพื้นที่การโจมตี |
|
|
531
|
+
|
|
532
|
+
</details>
|
|
533
|
+
|
|
534
|
+
<details>
|
|
535
|
+
<summary><b>osint — การเสริมข้อมูล OSINT (6 เทคนิค)</b></summary>
|
|
536
|
+
|
|
537
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
538
|
+
|-------------|--------|----------|
|
|
539
|
+
| `target` | string | ที่อยู่ IP หรือโดเมนที่จะเสริมข้อมูล |
|
|
540
|
+
| `type` | `ip` \| `domain` | ไม่บังคับ — ประเภทเป้าหมาย (ตรวจจับอัตโนมัติหากไม่ระบุ) |
|
|
541
|
+
|
|
542
|
+
| เทคนิค | การพิสูจน์ตัวตน | คำอธิบาย |
|
|
543
|
+
|---------|-----------------|----------|
|
|
544
|
+
| `osint_shodan` | `SHODAN_API_KEY` | การค้นหาโฮสต์ Shodan — พอร์ตที่เปิด, แบนเนอร์, ช่องโหว่, ระบบปฏิบัติการ |
|
|
545
|
+
| `osint_censys` | `CENSYS_API_ID` + `CENSYS_API_SECRET` | ข้อมูลโฮสต์ Censys — บริการ, TLS, ระบบอัตโนมัติ |
|
|
546
|
+
| `osint_reverse_ip` | ไม่มี | การค้นหา IP ย้อนกลับ — โดเมนอื่นบน IP เดียวกัน |
|
|
547
|
+
| `osint_whois` | ไม่มี | ข้อมูลการลงทะเบียน WHOIS — ผู้รับจดทะเบียน, วันที่, เนมเซิร์ฟเวอร์ |
|
|
548
|
+
| `osint_webarchive` | ไม่มี | ประวัติ Web Archive — snapshot แรก/ล่าสุด, ความถี่ของการเปลี่ยนแปลง |
|
|
549
|
+
| `osint_virustotal` | `VIRUSTOTAL_API_KEY` | รายงาน VirusTotal ของโดเมน/IP — การตรวจจับ, หมวดหมู่, DNS |
|
|
550
|
+
|
|
551
|
+
</details>
|
|
552
|
+
|
|
553
|
+
<details>
|
|
554
|
+
<summary><b>analyze — การวิเคราะห์ลายนิ้วมือแบบพาสซีฟ (3 โหมด)</b></summary>
|
|
555
|
+
|
|
556
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
557
|
+
|-------------|--------|----------|
|
|
558
|
+
| `type` | `headers` \| `html` \| `banner` | ประเภทข้อมูลที่จะวิเคราะห์ |
|
|
559
|
+
| `data` | string | ข้อมูลดิบที่จะวิเคราะห์ (วาง headers, HTML หรือเอาต์พุตแบนเนอร์) |
|
|
560
|
+
|
|
561
|
+
| โหมด | คำอธิบาย |
|
|
562
|
+
|------|----------|
|
|
563
|
+
| `fp_analyze_headers` | การวิเคราะห์ HTTP headers แบบพาสซีฟ — การตรวจจับเซิร์ฟเวอร์, framework, proxy โดยไม่ส่งทราฟฟิก |
|
|
564
|
+
| `fp_analyze_html` | การวิเคราะห์ HTML แบบพาสซีฟ — การตรวจจับเทคโนโลยี, การระบุ framework จากซอร์สโค้ด |
|
|
565
|
+
| `fp_analyze_banner` | การวิเคราะห์แบนเนอร์แบบพาสซีฟ — การระบุบริการจากข้อความแบนเนอร์ดิบ |
|
|
566
|
+
|
|
567
|
+
</details>
|
|
568
|
+
|
|
569
|
+
<details>
|
|
570
|
+
<summary><b>correlate — เครื่องยนต์เชื่อมโยงหลายสัญญาณ (7 โหมด)</b></summary>
|
|
571
|
+
|
|
572
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
573
|
+
|-------------|--------|----------|
|
|
574
|
+
| `type` | `consistency` \| `honeypot` \| `spoofing` \| `compare` \| `topology` \| `c2` \| `identify` | โหมดการเชื่อมโยง |
|
|
575
|
+
| `signals` | object | สัญญาณลายนิ้วมือที่จะเชื่อมโยง (แตกต่างตามโหมด) |
|
|
576
|
+
|
|
577
|
+
| โหมด | คำอธิบาย |
|
|
578
|
+
|------|----------|
|
|
579
|
+
| `fp_consistency` | การตรวจสอบความสอดคล้องของสัญญาณข้ามชั้น — ลายนิ้วมือ TCP, TLS, HTTP และ DNS สอดคล้องกันหรือไม่? |
|
|
580
|
+
| `fp_honeypot` | การตรวจจับ honeypot — ตรวจสอบการรวมบริการที่เป็นไปไม่ได้และความผิดปกติทางพฤติกรรม |
|
|
581
|
+
| `fp_spoofing` | การตรวจจับการปลอมแปลง — ระบุ headers เซิร์ฟเวอร์ที่ไม่ตรงกับพฤติกรรมจริง |
|
|
582
|
+
| `fp_compare` | การเปรียบเทียบโปรไฟล์ลายนิ้วมือของสองโฮสต์แบบเคียงข้างกัน |
|
|
583
|
+
| `fp_topology` | การทำแผนที่โทโพโลยีโครงสร้างพื้นฐาน — CDN, ตัวกระจายโหลด, สายโซ่ reverse proxy |
|
|
584
|
+
| `fp_c2` | การตรวจจับ framework C2 ผ่านการเชื่อมโยง JARM, TLS, HTTP และเวลา |
|
|
585
|
+
| `fp_identify` | การระบุตัวตนด้วยแฮชเทียบกับฐานข้อมูลลายเซ็นที่รู้จัก |
|
|
586
|
+
|
|
587
|
+
</details>
|
|
588
|
+
|
|
589
|
+
<details>
|
|
590
|
+
<summary><b>meta — การตั้งค่าเซิร์ฟเวอร์และข้อมูล (3 โหมด)</b></summary>
|
|
591
|
+
|
|
592
|
+
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|
|
593
|
+
|-------------|--------|----------|
|
|
594
|
+
| `category` | string | ไม่บังคับ — กรองตามหมวดหมู่ |
|
|
595
|
+
|
|
596
|
+
| โหมด | คำอธิบาย |
|
|
597
|
+
|------|----------|
|
|
598
|
+
| `fp_sources` | แสดงรายการแหล่งข้อมูลที่มีทั้งหมดพร้อมการตั้งค่าและสถานะคีย์ API |
|
|
599
|
+
| `fp_config` | การตั้งค่าเซิร์ฟเวอร์ — เวอร์ชัน, ผู้ให้บริการที่โหลด, จำนวนเทคนิค |
|
|
600
|
+
| `fp_signatures` | รายการฐานข้อมูลลายเซ็น — 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
|
+
## แหล่งข้อมูล (21)
|
|
632
|
+
|
|
633
|
+
| แหล่ง | การพิสูจน์ตัวตน | สิ่งที่ให้ |
|
|
634
|
+
|-------|-----------------|-----------|
|
|
635
|
+
| การตรวจสอบ TCP | ไม่มี | การสแกนพอร์ต, การดึงแบนเนอร์, การตรวจจับบริการ |
|
|
636
|
+
| การวิเคราะห์ TLS/SSL | ไม่มี | การแยกวิเคราะห์ใบรับรอง, การพิมพ์ลายนิ้วมือ JARM, JA4X, การนับชุดรหัส, การทดสอบ SNI |
|
|
637
|
+
| การตรวจสอบ SSH | ไม่มี | เวอร์ชันโปรโตคอล, การตรวจสอบอัลกอริทึม, การตรวจจับซอฟต์แวร์ |
|
|
638
|
+
| การวิเคราะห์ HTTP | ไม่มี | การพิมพ์ลายนิ้วมือ headers, การแฮช favicon, การวิเคราะห์คุกกี้, การนับเมธอด, CORS |
|
|
639
|
+
| การตรวจจับเว็บ | ไม่มี | การตรวจจับเทคโนโลยี, การวิเคราะห์, source maps, WebSocket, GraphQL, framework SPA |
|
|
640
|
+
| การค้นหาเส้นทาง | ไม่มี | ไฟล์ที่ละเอียดอ่อน, การรั่วไหล git, endpoint แก้ไขข้อบกพร่อง, เวอร์ชัน 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, framework และแพลตฟอร์มอีคอมเมิร์ซ |
|
|
648
|
+
| การตรวจสอบบริการ | ไม่มี | การพิมพ์ลายนิ้วมือ MySQL, PostgreSQL, Redis, FTP, VNC/RDP |
|
|
649
|
+
| การตรวจจับโครงสร้างพื้นฐาน | ไม่มี | การระบุผู้ให้บริการคลาวด์, ผู้ให้บริการโฮสติ้ง, CDN |
|
|
650
|
+
| เครื่องยนต์เชื่อมโยง | ไม่มี | ความสอดคล้องของสัญญาณ, การตรวจจับ honeypot, การตรวจจับการปลอมแปลง, การทำแผนที่โทโพโลยี |
|
|
651
|
+
| เครื่องยนต์ระบุตัวตน | ไม่มี | การระบุตัวตนด้วยแฮช, การตรวจจับ C2, การจับคู่ลายเซ็น |
|
|
652
|
+
| [Shodan](https://www.shodan.io) | `SHODAN_API_KEY` | ข่าวกรองโฮสต์ — พอร์ตที่เปิด, แบนเนอร์, ช่องโหว่, การตรวจจับระบบปฏิบัติการ |
|
|
653
|
+
| [Censys](https://censys.io) | `CENSYS_API_ID` | ข้อมูลโฮสต์ — บริการ, ใบรับรอง 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 # ทะเบียนเครื่องมือ — เครื่องมือผสมทั้ง 13 ตัวลงทะเบียนที่นี่
|
|
667
|
+
types/
|
|
668
|
+
index.ts # ประเภทที่ใช้ร่วม (ToolDef, ToolContext, ToolResult)
|
|
669
|
+
utils/
|
|
670
|
+
rate-limiter.ts # ตัวจำกัดอัตราต่อผู้ให้บริการ
|
|
671
|
+
cache.ts # แคช TTL สำหรับการตอบสนอง API
|
|
672
|
+
require-key.ts # ตัวช่วยตรวจสอบคีย์ API
|
|
673
|
+
murmurhash3.ts # MurmurHash3 สำหรับการแฮช favicon
|
|
674
|
+
composite/ # ตัวประสานเครื่องมือผสม 13 ตัว
|
|
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 # เครื่องมือผสม meta เซิร์ฟเวอร์
|
|
688
|
+
helpers.ts # ตัวช่วยเครื่องมือผสมที่ใช้ร่วม
|
|
689
|
+
tcp/ # เทคนิคการตรวจสอบ TCP (3)
|
|
690
|
+
tls/ # เทคนิคการวิเคราะห์ TLS/SSL (8)
|
|
691
|
+
ssh/ # เทคนิคการตรวจสอบ SSH (3)
|
|
692
|
+
http/ # เทคนิคการพิมพ์ลายนิ้วมือ HTTP (16)
|
|
693
|
+
web/ # เทคนิคการตรวจจับเทคโนโลยีเว็บ (9)
|
|
694
|
+
path/ # เทคนิคการค้นหาเส้นทาง (5)
|
|
695
|
+
dns/ # เทคนิคข่าวกรอง DNS (7)
|
|
696
|
+
waf/ # เทคนิคการตรวจจับ WAF/CDN (4)
|
|
697
|
+
timing/ # เทคนิคการวิเคราะห์เวลา (2)
|
|
698
|
+
h2/ # เทคนิค HTTP/2 และ HTTP/3 (3)
|
|
699
|
+
smtp/ # เทคนิคการตรวจสอบ SMTP (2)
|
|
700
|
+
iot/ # เทคนิคการตรวจจับ IoT/อุปกรณ์ฝังตัว (2)
|
|
701
|
+
app/ # เทคนิคการตรวจจับแอปพลิเคชัน (3)
|
|
702
|
+
service/ # เทคนิคการตรวจสอบบริการ (5)
|
|
703
|
+
infra/ # เทคนิคการตรวจจับโครงสร้างพื้นฐาน (3)
|
|
704
|
+
correlation/ # เครื่องยนต์เชื่อมโยง (5)
|
|
705
|
+
identify/ # เครื่องยนต์ระบุตัวตน (3)
|
|
706
|
+
passive/ # การวิเคราะห์พาสซีฟ (3)
|
|
707
|
+
osint/ # เทคนิคการเสริมข้อมูล OSINT (6)
|
|
708
|
+
enum/ # เทคนิคการนับ (8)
|
|
709
|
+
meta/ # เครื่องมือ meta (3)
|
|
710
|
+
data/ # ฐานข้อมูลลายเซ็นและไลบรารีรูปแบบ
|
|
711
|
+
jarm-signatures.ts # ลายนิ้วมือ JARM ที่รู้จัก (C2, เซิร์ฟเวอร์, CDNs)
|
|
712
|
+
waf-signatures.ts # ลายเซ็นการตรวจจับ WAF
|
|
713
|
+
service-banners.ts # รูปแบบแบนเนอร์บริการ
|
|
714
|
+
tech-patterns.ts # รูปแบบการตรวจจับเทคโนโลยี
|
|
715
|
+
favicon-hashes.ts # ค่า MurmurHash3 ของ favicon ที่รู้จัก
|
|
716
|
+
c2-signatures.ts # ลายเซ็น framework C2
|
|
717
|
+
... # ฐานข้อมูลลายเซ็น/รูปแบบ 15+ รายการ
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
**การตัดสินใจในการออกแบบ:**
|
|
721
|
+
|
|
722
|
+
- **13 เครื่องมือผสม, 103 เทคนิค** — เอเจนต์เรียกเครื่องมือระดับสูง (`recon`, `scan_tls`, `scan_http`) แต่ละเครื่องมือผสมประสานเทคนิคระดับต่ำหลายตัวและคืนผลลัพธ์ที่เชื่อมโยง ซึ่งลดค่าใช้จ่ายในการเรียกเครื่องมือในขณะที่รักษาความละเอียด
|
|
723
|
+
- **21 ผู้ให้บริการ, 1 เซิร์ฟเวอร์** — ทุกชั้นการพิมพ์ลายนิ้วมือเป็นโมดูลอิสระ ตัวประสานเครื่องมือผสมเลือกเทคนิคตามบริบทและความลึก
|
|
724
|
+
- **แอคทีฟก่อน, OSINT ตัวเลือก** — เทคนิค 80+ ตัวทำงานโดยการตรวจสอบเป้าหมายโดยตรงด้วยคีย์ API ศูนย์ตัว ผู้ให้บริการ OSINT (Shodan, Censys, VirusTotal, SecurityTrails) เพิ่มการเสริมข้อมูลแต่ไม่จำเป็น
|
|
725
|
+
- **ตัวจำกัดอัตราต่อผู้ให้บริการ** — แต่ละผู้ให้บริการมีอินสแตนซ์ `RateLimiter` ของตัวเอง การตรวจสอบแอคทีฟถูกจำกัดอัตราเพื่อหลีกเลี่ยงการถูกตรวจพบ; API OSINT ถูกปรับเทียบตามโควต้าของพวกเขา
|
|
726
|
+
- **แคช TTL** — ระเบียน DNS (10 นาที), ผลลัพธ์ OSINT (15 นาที), CT logs (30 นาที) ถูกแคชเพื่อหลีกเลี่ยงการค้นหาซ้ำซ้อนระหว่างเวิร์กโฟลว์หลายเครื่องมือ
|
|
727
|
+
- **การลดประสิทธิภาพอย่างสง่างาม** — คีย์ API ที่ขาดไม่ทำให้เซิร์ฟเวอร์ล่ม เครื่องมือ OSINT คืนข้อความอธิบาย: "ตั้งค่า SHODAN_API_KEY เพื่อเปิดใช้การค้นหาโฮสต์ Shodan"
|
|
728
|
+
- **3 การพึ่งพา** — `@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 จำกัดที่ 250 คำร้องขอ/เดือน
|
|
736
|
+
- ระดับฟรีของ VirusTotal จำกัดที่ 500 คำร้องขอ/วัน
|
|
737
|
+
- การสแกนพอร์ตใช้ TCP connect (ไม่ใช่ SYN scan) — ซ่อนตัวน้อยกว่า nmap แต่ไม่ต้องการสิทธิ์ root
|
|
738
|
+
- การพิมพ์ลายนิ้วมือ JARM ต้องการการเข้าถึง TCP โดยตรงไปยังเป้าหมาย (อาจถูกบล็อกโดยไฟร์วอลล์)
|
|
739
|
+
- การค้นหา UPnP/SSDP ทำงานเฉพาะบนเครือข่ายท้องถิ่น
|
|
740
|
+
- การตรวจสอบบริการ (MySQL, PostgreSQL, Redis) เชื่อมต่อแต่ไม่พิสูจน์ตัวตน
|
|
741
|
+
- การนับโดเมนย่อยพึ่งพา CT logs และแหล่งพาสซีฟ (ไม่มี brute-force)
|
|
742
|
+
- ทดสอบบน macOS / Linux (ไม่ได้ทดสอบบน Windows)
|
|
743
|
+
|
|
744
|
+
---
|
|
745
|
+
|
|
746
|
+
## ส่วนหนึ่งของชุดเครื่องมือความปลอดภัย MCP
|
|
747
|
+
|
|
748
|
+
| โปรเจกต์ | โดเมน | เครื่องมือ |
|
|
749
|
+
|----------|--------|-----------|
|
|
750
|
+
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | การทดสอบความปลอดภัยด้วยเบราว์เซอร์ | 39 เครื่องมือ, Firefox, การทดสอบ injection |
|
|
751
|
+
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | ความปลอดภัยคลาวด์ (AWS/Azure/GCP) | 38 เครื่องมือ, 60+ การตรวจสอบ |
|
|
752
|
+
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | สถานะความปลอดภัย GitHub | 39 เครื่องมือ, 45 การตรวจสอบ |
|
|
753
|
+
| [cve-mcp](https://github.com/badchars/cve-mcp) | ข่าวกรองช่องโหว่ | 23 เครื่องมือ, 5 แหล่ง |
|
|
754
|
+
| [osint-mcp-server](https://github.com/badchars/osint-mcp-server) | OSINT และการสำรวจ | 37 เครื่องมือ, 12 แหล่ง |
|
|
755
|
+
| [darknet-mcp-server](https://github.com/badchars/darknet-mcp-server) | Dark web และข่าวกรองภัยคุกคาม | 66 เครื่องมือ, 16 แหล่ง |
|
|
756
|
+
| **fingerprint-mcp** | **การพิมพ์ลายนิ้วมือดิจิทัลสากล** | **13 เครื่องมือ, 103 เทคนิค, 21 ผู้ให้บริการ** |
|
|
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> • สร้างด้วย Bun + TypeScript
|
|
767
|
+
</p>
|