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.vi.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
|
+
<a href="README.bn.md">বাংলা</a> |
|
|
22
|
+
<a href="README.el.md">Ελληνικά</a> |
|
|
23
|
+
<strong>Tiếng Việt</strong> |
|
|
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">Lấy dấu vân tay kỹ thuật số toàn diện cho AI agent.</h3>
|
|
37
|
+
|
|
38
|
+
<p align="center">
|
|
39
|
+
TCP, TLS/SSL, SSH, HTTP, DNS, WAF/CDN, IoT, SMTP, thăm dò dịch vụ, JARM, JA4X, băm favicon, topo hạ tầng, phát hiện C2, làm giàu OSINT — hợp nhất trong một MCP server duy nhất.<br>
|
|
40
|
+
AI agent của bạn có được <b>khả năng lấy dấu vân tay toàn phổ theo yêu cầu</b>, không phải 11 công cụ CLI rời rạc và tương quan thủ công.
|
|
41
|
+
</p>
|
|
42
|
+
|
|
43
|
+
<br>
|
|
44
|
+
|
|
45
|
+
<p align="center">
|
|
46
|
+
<a href="#vấn-đề">Vấn Đề</a> •
|
|
47
|
+
<a href="#điểm-khác-biệt">Điểm Khác Biệt</a> •
|
|
48
|
+
<a href="#bắt-đầu-nhanh">Bắt Đầu Nhanh</a> •
|
|
49
|
+
<a href="#ai-có-thể-làm-gì">AI Có Thể Làm Gì</a> •
|
|
50
|
+
<a href="#tham-chiếu-công-cụ-13-công-cụ-103-kỹ-thuật">Công Cụ (13)</a> •
|
|
51
|
+
<a href="#nguồn-dữ-liệu-21">Nguồn Dữ Liệu</a> •
|
|
52
|
+
<a href="#kiến-trúc">Kiến Trúc</a> •
|
|
53
|
+
<a href="CHANGELOG.md">Nhật Ký Thay Đổi</a> •
|
|
54
|
+
<a href="CONTRIBUTING.md">Đóng Góp</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="Giấy phép"></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 Công cụ">
|
|
63
|
+
<img src="https://img.shields.io/badge/techniques-103-f97316" alt="103 Kỹ thuật">
|
|
64
|
+
</p>
|
|
65
|
+
|
|
66
|
+
<p align="center">
|
|
67
|
+
<img src="https://raw.githubusercontent.com/badchars/fingerprint-mcp/main/.github/demo.gif" alt="Demo fingerprint-mcp" width="800">
|
|
68
|
+
</p>
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Vấn Đề
|
|
73
|
+
|
|
74
|
+
Lấy dấu vân tay máy chủ ngày nay có nghĩa là phải vật lộn với hàng tá công cụ rời rạc. Bạn chạy `nmap` để quét cổng, `testssl.sh` để phân tích chứng chỉ, `curl -I` để lấy HTTP headers, `dig` cho DNS, `wafw00f` để phát hiện WAF, `ssh-audit` cho SSH, một công cụ JARM riêng, Wappalyzer để phát hiện công nghệ — rồi bạn mất 30 phút đối chiếu thủ công mọi thứ trong bảng tính để tìm ra thực sự cái gì đang chạy.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Quy trình lấy dấu vân tay truyền thống:
|
|
78
|
+
phân tích chứng chỉ TLS -> testssl.sh / openssl s_client
|
|
79
|
+
lấy HTTP headers -> curl -I
|
|
80
|
+
phát hiện công nghệ web -> wappalyzer CLI
|
|
81
|
+
trinh sát DNS -> dig / nslookup / dnsenum
|
|
82
|
+
quét cổng -> nmap -sV
|
|
83
|
+
phát hiện WAF -> wafw00f
|
|
84
|
+
kiểm tra SSH -> ssh-audit
|
|
85
|
+
lấy dấu vân tay dịch vụ -> nmap scripts
|
|
86
|
+
dấu vân tay JARM -> jarm (công cụ riêng)
|
|
87
|
+
kiểm tra cơ sở dữ liệu OSINT -> shodan CLI, censys CLI
|
|
88
|
+
tương quan mọi thứ -> thủ công trong bảng tính
|
|
89
|
+
──────────────────────────────
|
|
90
|
+
Tổng cộng: 11 công cụ, 30+ phút, tương quan thủ công
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**fingerprint-mcp** cung cấp cho AI agent của bạn 13 công cụ tổng hợp bao gồm 103 kỹ thuật lấy dấu vân tay từ 21 nhà cung cấp qua [Model Context Protocol](https://modelcontextprotocol.io). Agent thực hiện lấy dấu vân tay đa tầng song song, tương quan tín hiệu qua các lớp TCP/TLS/HTTP/DNS/SSH, phát hiện honeypot và hạ tầng C2, và trình bày một bức tranh tình báo thống nhất — trong một cuộc hội thoại duy nhất.
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Với fingerprint-mcp:
|
|
97
|
+
Bạn: "Trinh sát sâu target.com"
|
|
98
|
+
|
|
99
|
+
Agent: -> recon {url: "https://target.com", depth: "deep"}
|
|
100
|
+
|
|
101
|
+
-> TLS: nginx/1.24.0 qua JARM (3fd21b20d00000...),
|
|
102
|
+
chứng chỉ Let's Encrypt, 2 SAN, TLS 1.2+1.3
|
|
103
|
+
-> HTTP: Express.js đằng sau Cloudflare WAF,
|
|
104
|
+
React SPA, Google Analytics, phân tích 14 headers bảo mật
|
|
105
|
+
-> DNS: bản ghi A/AAAA/MX/TXT, đã cấu hình SPF/DKIM/DMARC,
|
|
106
|
+
phát hiện Slack + Google Workspace qua CNAME/MX
|
|
107
|
+
-> Cổng: 80, 443, 22 (OpenSSH 9.6), 8080 (dev server)
|
|
108
|
+
-> WAF: phát hiện Cloudflare, tìm thấy IP gốc qua direct-connect
|
|
109
|
+
-> Liệt kê: 12 subdomain qua CT logs, phát hiện wildcard DNS
|
|
110
|
+
-> "target.com chạy nginx/1.24.0 với Express.js đằng sau
|
|
111
|
+
Cloudflare WAF. IP gốc 203.0.113.42 lộ trên cổng 8080.
|
|
112
|
+
TLS được cấu hình đúng (tương đương A+) nhưng dev server
|
|
113
|
+
trên 8080 không có bảo vệ WAF. 3 subdomain trỏ đến
|
|
114
|
+
hạ tầng đã ngừng hoạt động — rủi ro tiếp quản tiềm tàng."
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Điểm Khác Biệt
|
|
120
|
+
|
|
121
|
+
Các công cụ hiện có cung cấp dữ liệu thô từng lớp một. fingerprint-mcp cho AI agent của bạn khả năng **suy luận đồng thời qua tất cả các lớp dấu vân tay**.
|
|
122
|
+
|
|
123
|
+
<table>
|
|
124
|
+
<thead>
|
|
125
|
+
<tr>
|
|
126
|
+
<th></th>
|
|
127
|
+
<th>Cách tiếp cận truyền thống</th>
|
|
128
|
+
<th>fingerprint-mcp</th>
|
|
129
|
+
</tr>
|
|
130
|
+
</thead>
|
|
131
|
+
<tbody>
|
|
132
|
+
<tr>
|
|
133
|
+
<td><b>Giao diện</b></td>
|
|
134
|
+
<td>11 công cụ CLI khác nhau với các định dạng đầu ra khác nhau</td>
|
|
135
|
+
<td>MCP — AI agent gọi công cụ theo kiểu hội thoại</td>
|
|
136
|
+
</tr>
|
|
137
|
+
<tr>
|
|
138
|
+
<td><b>Kỹ thuật</b></td>
|
|
139
|
+
<td>Một công cụ, một lớp mỗi lần</td>
|
|
140
|
+
<td>103 kỹ thuật từ 21 nhà cung cấp, chạy song song</td>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td><b>Phân tích TLS</b></td>
|
|
144
|
+
<td>Đầu ra testssl.sh, phân tích JARM thủ công riêng</td>
|
|
145
|
+
<td>Agent kết hợp chứng chỉ + JARM + JA4X + cipher suites + SNI + CT logs trong một lần gọi</td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<td><b>Tương quan</b></td>
|
|
149
|
+
<td>Sao chép-dán kết quả vào bảng tính</td>
|
|
150
|
+
<td>Agent tương quan chéo: "JARM khớp với C2 framework đã biết, thời gian HTTP xác nhận honeypot"</td>
|
|
151
|
+
</tr>
|
|
152
|
+
<tr>
|
|
153
|
+
<td><b>Vượt WAF</b></td>
|
|
154
|
+
<td>wafw00f phát hiện WAF, bạn tự tìm nguồn gốc</td>
|
|
155
|
+
<td>Agent phát hiện WAF, tìm IP gốc, và xác minh nó phục vụ cùng nội dung</td>
|
|
156
|
+
</tr>
|
|
157
|
+
<tr>
|
|
158
|
+
<td><b>API key</b></td>
|
|
159
|
+
<td>Bắt buộc cho Shodan, Censys v.v.</td>
|
|
160
|
+
<td>80+ kỹ thuật chủ động hoạt động không cần API key; key mở khóa làm giàu OSINT</td>
|
|
161
|
+
</tr>
|
|
162
|
+
<tr>
|
|
163
|
+
<td><b>Cài đặt</b></td>
|
|
164
|
+
<td>Cài nmap, testssl, wafw00f, ssh-audit, jarm, wappalyzer...</td>
|
|
165
|
+
<td><code>npx fingerprint-mcp</code> — một lệnh, không cấu hình</td>
|
|
166
|
+
</tr>
|
|
167
|
+
</tbody>
|
|
168
|
+
</table>
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Bắt Đầu Nhanh
|
|
173
|
+
|
|
174
|
+
### Lựa chọn 1: npx (không cần cài đặt)
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npx fingerprint-mcp
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Tất cả 80+ kỹ thuật lấy dấu vân tay chủ động hoạt động ngay lập tức. Không cần API key cho TCP, TLS, SSH, HTTP, DNS, WAF, đường dẫn, dịch vụ, thời gian, IoT, SMTP, lấy dấu vân tay hạ tầng và ứng dụng.
|
|
181
|
+
|
|
182
|
+
### Lựa chọn 2: Clone
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
git clone https://github.com/badchars/fingerprint-mcp.git
|
|
186
|
+
cd fingerprint-mcp
|
|
187
|
+
bun install
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Biến môi trường (tùy chọn)
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Làm giàu OSINT (tất cả tùy chọn — lấy dấu vân tay chủ động hoạt động không cần key)
|
|
194
|
+
export SHODAN_API_KEY=your-key # Kích hoạt osint_shodan, ssh_hostkey_lookup
|
|
195
|
+
export CENSYS_API_ID=your-id # Kích hoạt osint_censys (miễn phí: 250 truy vấn/tháng)
|
|
196
|
+
export CENSYS_API_SECRET=your-secret # Bí mật Censys API
|
|
197
|
+
export SECURITYTRAILS_API_KEY=your-key # Kích hoạt waf_origin, enum_passive_dns
|
|
198
|
+
export VIRUSTOTAL_API_KEY=your-key # Kích hoạt osint_virustotal (miễn phí: 500 truy vấn/ngày)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Tất cả API key đều tùy chọn. Không có chúng, bạn vẫn có đầy đủ lấy dấu vân tay TCP/TLS/SSH/HTTP/DNS/WAF/đường dẫn/dịch vụ/thời gian/IoT/SMTP/hạ tầng/ứng dụng, tương quan, phân tích thụ động, liệt kê và công cụ meta — 80+ kỹ thuật hoạt động bằng cách thăm dò trực tiếp mục tiêu.
|
|
202
|
+
|
|
203
|
+
### Kết nối với AI agent của bạn
|
|
204
|
+
|
|
205
|
+
<details open>
|
|
206
|
+
<summary><b>Claude Code</b></summary>
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# Với npx
|
|
210
|
+
claude mcp add fingerprint-mcp -- npx fingerprint-mcp
|
|
211
|
+
|
|
212
|
+
# Với bản clone cục bộ
|
|
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
|
+
Thêm vào `~/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 / các MCP client khác</b></summary>
|
|
245
|
+
|
|
246
|
+
Cùng định dạng cấu hình JSON. Trỏ lệnh đến `npx fingerprint-mcp` hoặc đường dẫn cài đặt cục bộ của bạn.
|
|
247
|
+
|
|
248
|
+
</details>
|
|
249
|
+
|
|
250
|
+
### Bắt đầu truy vấn
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
Bạn: "Lấy dấu vân tay mọi thứ về target.com — TLS, HTTP stack, WAF, DNS, các cổng mở"
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Thế là xong. Agent tự động xử lý lấy dấu vân tay đa tầng, tương quan tín hiệu và phân tích hạ tầng.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## AI Có Thể Làm Gì
|
|
261
|
+
|
|
262
|
+
### Trinh Sát Nhanh
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
Bạn: "Trinh sát nhanh target.com"
|
|
266
|
+
|
|
267
|
+
Agent: -> recon {url: "https://target.com", depth: "quick"}
|
|
268
|
+
|
|
269
|
+
-> TCP: cổng 80, 443, 22 mở
|
|
270
|
+
-> TLS: chứng chỉ Let's Encrypt RSA, TLS 1.2+1.3, chữ ký JARM nginx
|
|
271
|
+
-> HTTP: nginx/1.24.0, Express.js, React, Cloudflare CDN
|
|
272
|
+
-> DNS: A 203.0.113.42, MX Google Workspace, SPF/DKIM đã cấu hình
|
|
273
|
+
-> WAF: phát hiện Cloudflare (header cf-ray)
|
|
274
|
+
-> "target.com là React SPA trên Express.js đằng sau nginx/1.24.0,
|
|
275
|
+
phục vụ qua Cloudflare CDN. TLS được cấu hình đúng với
|
|
276
|
+
Let's Encrypt. SSH trên cổng 22 chạy OpenSSH 9.6. Email
|
|
277
|
+
được Google Workspace xử lý với đầy đủ SPF/DKIM/DMARC."
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Điều Tra TLS Sâu
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
Bạn: "Phân tích chi tiết cấu hình TLS của suspicious-server.com"
|
|
284
|
+
|
|
285
|
+
Agent: -> scan_tls {host: "suspicious-server.com"}
|
|
286
|
+
|
|
287
|
+
-> Chứng chỉ: tự ký, CN=localhost, hết hạn 47 ngày trước
|
|
288
|
+
-> JARM: 2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
|
|
289
|
+
(khớp với profile mặc định Cobalt Strike)
|
|
290
|
+
-> JA4X: dấu vân tay khớp với mẫu C2 framework đã biết
|
|
291
|
+
-> Cipher suites: chấp nhận cipher yếu (RC4, 3DES)
|
|
292
|
+
-> SNI: phản hồi giống hệt với mọi giá trị SNI
|
|
293
|
+
-> CT logs: chứng chỉ không được ghi log (không được tin cậy công khai)
|
|
294
|
+
-> "RỦI RO CAO: Cấu hình TLS cho thấy mạnh mẽ đây là hạ tầng C2.
|
|
295
|
+
Chứng chỉ tự ký đã hết hạn, dấu vân tay JARM khớp Cobalt Strike,
|
|
296
|
+
chấp nhận cipher yếu, và phản hồi với mọi giá trị SNI tùy ý.
|
|
297
|
+
Khuyến nghị điều tra và chặn ngay lập tức."
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Vượt WAF & Tìm Nguồn Gốc
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
Bạn: "target.com đằng sau WAF. Bạn có thể tìm máy chủ gốc không?"
|
|
304
|
+
|
|
305
|
+
Agent: -> scan_waf {url: "https://target.com"}
|
|
306
|
+
-> scan_dns {domain: "target.com"}
|
|
307
|
+
-> enumerate {domain: "target.com"}
|
|
308
|
+
|
|
309
|
+
-> WAF: Cloudflare (AS13335), trang thử thách với yêu cầu đáng ngờ
|
|
310
|
+
-> DNS: bản ghi A trỏ đến IP Cloudflare 104.21.x.x
|
|
311
|
+
-> Subdomain: dev.target.com phân giải thành 203.0.113.42 (không phải Cloudflare)
|
|
312
|
+
-> Kết nối trực tiếp đến 203.0.113.42:443 trả về cùng chứng chỉ TLS
|
|
313
|
+
-> Lịch sử SecurityTrails: nguồn gốc là 203.0.113.42 trước Cloudflare
|
|
314
|
+
-> "Tìm thấy IP gốc: 203.0.113.42. Phát hiện qua subdomain
|
|
315
|
+
dev.target.com vượt qua Cloudflare. Nguồn gốc phục vụ cùng
|
|
316
|
+
chứng chỉ TLS và phản hồi với Host header target.com.
|
|
317
|
+
Nguồn gốc không có bảo vệ WAF — truy cập trực tiếp có thể."
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Khám Phá Dịch Vụ Trên Host
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
Bạn: "Những dịch vụ nào đang chạy trên 10.0.1.50?"
|
|
324
|
+
|
|
325
|
+
Agent: -> scan_ports {host: "10.0.1.50"}
|
|
326
|
+
-> scan_services {host: "10.0.1.50", ports: [22, 80, 3306, 5432, 6379, 8080]}
|
|
327
|
+
|
|
328
|
+
-> Cổng 22: OpenSSH 8.9p1 Ubuntu, host key ED25519
|
|
329
|
+
-> Cổng 80: Apache/2.4.57, PHP/8.2, WordPress 6.4
|
|
330
|
+
-> Cổng 3306: MySQL 8.0.36, yêu cầu xác thực
|
|
331
|
+
-> Cổng 5432: PostgreSQL 16.1, yêu cầu SSL
|
|
332
|
+
-> Cổng 6379: Redis 7.2.4, KHÔNG có xác thực (mở)
|
|
333
|
+
-> Cổng 8080: Node.js Express dev server, CORS: *
|
|
334
|
+
-> "NGHIÊM TRỌNG: Redis trên cổng 6379 không có xác thực — bất kỳ ai
|
|
335
|
+
trên mạng đều có thể đọc/ghi dữ liệu. Express dev server trên 8080
|
|
336
|
+
có wildcard CORS. MySQL và PostgreSQL yêu cầu xác thực đúng cách.
|
|
337
|
+
WordPress tụt 2 phiên bản nhỏ. Cần hành động ngay lập tức
|
|
338
|
+
với Redis và sự phơi bày của dev server."
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Tham Chiếu Công Cụ (13 công cụ, 103 kỹ thuật)
|
|
344
|
+
|
|
345
|
+
<details open>
|
|
346
|
+
<summary><b>recon — Trinh sát đầy đủ với lựa chọn kỹ thuật theo độ sâu</b></summary>
|
|
347
|
+
|
|
348
|
+
| Tham số | Kiểu | Mô tả |
|
|
349
|
+
|---------|------|-------|
|
|
350
|
+
| `url` | string | URL mục tiêu để lấy dấu vân tay |
|
|
351
|
+
| `depth` | `quick` \| `standard` \| `deep` | Độ sâu quét: quick=5 kỹ thuật, standard=20, deep=50+ |
|
|
352
|
+
|
|
353
|
+
Điều phối kỹ thuật từ tất cả nhà cung cấp dựa trên mức độ sâu. Chế độ nhanh cho tổng quan nhanh; chế độ sâu chạy lấy dấu vân tay toàn diện bao gồm liệt kê, OSINT và tương quan.
|
|
354
|
+
|
|
355
|
+
</details>
|
|
356
|
+
|
|
357
|
+
<details>
|
|
358
|
+
<summary><b>scan_ports — Quét cổng TCP với phát hiện dịch vụ (3 kỹ thuật)</b></summary>
|
|
359
|
+
|
|
360
|
+
| Tham số | Kiểu | Mô tả |
|
|
361
|
+
|---------|------|-------|
|
|
362
|
+
| `host` | string | Host mục tiêu (IP hoặc domain) |
|
|
363
|
+
| `ports` | number[] | Tùy chọn — các cổng cụ thể để quét (mặc định là các cổng phổ biến) |
|
|
364
|
+
|
|
365
|
+
| Kỹ thuật | Mô tả |
|
|
366
|
+
|----------|-------|
|
|
367
|
+
| `tcp_probe` | Quét TCP connect để phát hiện cổng mở |
|
|
368
|
+
| `tcp_banner` | Lấy banner trên cổng mở để nhận dạng dịch vụ |
|
|
369
|
+
| `tcp_analysis` | Phân tích tổ hợp cổng và suy luận dịch vụ |
|
|
370
|
+
|
|
371
|
+
</details>
|
|
372
|
+
|
|
373
|
+
<details>
|
|
374
|
+
<summary><b>scan_tls — Phân tích TLS/SSL đầy đủ (8 kỹ thuật)</b></summary>
|
|
375
|
+
|
|
376
|
+
| Tham số | Kiểu | Mô tả |
|
|
377
|
+
|---------|------|-------|
|
|
378
|
+
| `host` | string | Host mục tiêu (IP hoặc domain) |
|
|
379
|
+
| `port` | number | Tùy chọn — cổng TLS (mặc định: 443) |
|
|
380
|
+
|
|
381
|
+
| Kỹ thuật | Mô tả |
|
|
382
|
+
|----------|-------|
|
|
383
|
+
| `tls_certificate` | Phân tích chứng chỉ X.509 — chủ thể, nhà phát hành, SAN, hiệu lực, chuỗi |
|
|
384
|
+
| `tls_jarm` | Lấy dấu vân tay chủ động JARM — 10 thăm dò TLS Client Hello, hash 62 ký tự |
|
|
385
|
+
| `tls_ja4x` | Lấy dấu vân tay thụ động JA4X TLS từ thuộc tính chứng chỉ |
|
|
386
|
+
| `tls_ciphers` | Liệt kê cipher suite và phân tích độ mạnh |
|
|
387
|
+
| `tls_protocols` | Phát hiện phiên bản giao thức TLS được hỗ trợ (SSLv3 đến TLS 1.3) |
|
|
388
|
+
| `tls_sni` | Kiểm tra hành vi SNI — chứng chỉ mặc định so với hostname yêu cầu |
|
|
389
|
+
| `tls_ct_logs` | Tra cứu Certificate Transparency log qua crt.sh |
|
|
390
|
+
| `tls_ocsp` | Kiểm tra OCSP stapling và trạng thái thu hồi |
|
|
391
|
+
|
|
392
|
+
</details>
|
|
393
|
+
|
|
394
|
+
<details>
|
|
395
|
+
<summary><b>scan_dns — Tình báo DNS (7 kỹ thuật)</b></summary>
|
|
396
|
+
|
|
397
|
+
| Tham số | Kiểu | Mô tả |
|
|
398
|
+
|---------|------|-------|
|
|
399
|
+
| `domain` | string | Domain mục tiêu |
|
|
400
|
+
|
|
401
|
+
| Kỹ thuật | Mô tả |
|
|
402
|
+
|----------|-------|
|
|
403
|
+
| `dns_records` | Liệt kê đầy đủ bản ghi — A, AAAA, MX, NS, TXT, CNAME, SOA |
|
|
404
|
+
| `dns_email_auth` | Phân tích bản ghi SPF, DKIM và DMARC |
|
|
405
|
+
| `dns_saas` | Phát hiện SaaS/dịch vụ qua mẫu CNAME và MX (Slack, Zendesk v.v.) |
|
|
406
|
+
| `dns_server` | Lấy dấu vân tay DNS server (BIND, PowerDNS, Cloudflare v.v.) |
|
|
407
|
+
| `dns_takeover` | Phát hiện chiếm đoạt subdomain qua phân tích CNAME treo |
|
|
408
|
+
| `dns_zone` | Thử chuyển vùng (AXFR) |
|
|
409
|
+
| `dns_caa` | Phân tích bản ghi CAA cho hạn chế tổ chức phát hành chứng chỉ |
|
|
410
|
+
|
|
411
|
+
</details>
|
|
412
|
+
|
|
413
|
+
<details>
|
|
414
|
+
<summary><b>scan_http — Lấy dấu vân tay HTTP/web (29 kỹ thuật)</b></summary>
|
|
415
|
+
|
|
416
|
+
| Tham số | Kiểu | Mô tả |
|
|
417
|
+
|---------|------|-------|
|
|
418
|
+
| `url` | string | URL mục tiêu |
|
|
419
|
+
|
|
420
|
+
| Kỹ thuật | Nhà cung cấp | Mô tả |
|
|
421
|
+
|----------|-------------|-------|
|
|
422
|
+
| `http_headers` | HTTP | Phân tích header phản hồi và nhận dạng server |
|
|
423
|
+
| `http_header_order` | HTTP | Dấu vân tay thứ tự header (chữ ký phần mềm server) |
|
|
424
|
+
| `http_security_headers` | HTTP | Kiểm tra header bảo mật (CSP, HSTS, X-Frame-Options v.v.) |
|
|
425
|
+
| `http_cookies` | HTTP | Phân tích cookie — cờ, tiền tố, phát hiện framework |
|
|
426
|
+
| `http_methods` | HTTP | Liệt kê phương thức HTTP được phép (OPTIONS) |
|
|
427
|
+
| `http_cors` | HTTP | Phân tích chính sách CORS và phát hiện cấu hình sai |
|
|
428
|
+
| `http_compression` | HTTP | Thuật toán nén được hỗ trợ (gzip, br, zstd) |
|
|
429
|
+
| `http_caching` | HTTP | Phân tích header cache (phát hiện CDN, reverse proxy) |
|
|
430
|
+
| `http_etag` | HTTP | Phân tích định dạng ETag để nhận dạng backend |
|
|
431
|
+
| `http_error` | HTTP | Lấy dấu vân tay trang lỗi (tùy chỉnh so với mặc định) |
|
|
432
|
+
| `http_redirect` | HTTP | Phân tích chuỗi chuyển hướng |
|
|
433
|
+
| `http_timing` | HTTP | Thời gian phản hồi cơ sở cho phân tích hiệu năng server |
|
|
434
|
+
| `http_favicon` | HTTP | Hash favicon (MurmurHash3) để nhận dạng công nghệ |
|
|
435
|
+
| `http_robots` | HTTP | Phân tích robots.txt và trích xuất đường dẫn bị cấm |
|
|
436
|
+
| `http_sitemap` | HTTP | Khám phá sitemap và trích xuất URL |
|
|
437
|
+
| `http_wellknown` | HTTP | Khám phá endpoint .well-known (security.txt, openid v.v.) |
|
|
438
|
+
| `web_tech` | Web | Phát hiện công nghệ qua mẫu HTML/JS/CSS |
|
|
439
|
+
| `web_analytics` | Web | Phát hiện dịch vụ phân tích và theo dõi |
|
|
440
|
+
| `web_sourcemaps` | Web | Khám phá tệp source map |
|
|
441
|
+
| `web_websocket` | Web | Phát hiện endpoint WebSocket |
|
|
442
|
+
| `web_graphql` | Web | Phát hiện endpoint GraphQL và introspection |
|
|
443
|
+
| `web_spa` | Web | Phát hiện framework ứng dụng trang đơn |
|
|
444
|
+
| `web_cdn` | Web | Phát hiện CDN qua header phản hồi và DNS |
|
|
445
|
+
| `web_meta` | Web | Phân tích HTML meta tag (generator, gợi ý framework) |
|
|
446
|
+
| `web_feed` | Web | Khám phá RSS/Atom feed |
|
|
447
|
+
| `h2_detect` | HTTP/2 | Phát hiện hỗ trợ giao thức HTTP/2 |
|
|
448
|
+
| `h2_fingerprint` | HTTP/2 | Lấy dấu vân tay HTTP/2 server (SETTINGS, WINDOW_UPDATE) |
|
|
449
|
+
| `h2_h3` | HTTP/2 | Phát hiện hỗ trợ HTTP/3 (QUIC) qua header Alt-Svc |
|
|
450
|
+
| `app_cms` | Application | Phát hiện CMS (WordPress, Drupal, Joomla v.v.) |
|
|
451
|
+
|
|
452
|
+
</details>
|
|
453
|
+
|
|
454
|
+
<details>
|
|
455
|
+
<summary><b>scan_paths — Tình báo đường dẫn (5 kỹ thuật)</b></summary>
|
|
456
|
+
|
|
457
|
+
| Tham số | Kiểu | Mô tả |
|
|
458
|
+
|---------|------|-------|
|
|
459
|
+
| `url` | string | URL mục tiêu |
|
|
460
|
+
| `categories` | string[] | Tùy chọn — danh mục để kiểm tra (sensitive, git, debug, api, config) |
|
|
461
|
+
|
|
462
|
+
| Kỹ thuật | Mô tả |
|
|
463
|
+
|----------|-------|
|
|
464
|
+
| `path_sensitive` | Khám phá tệp nhạy cảm (tệp sao lưu, tệp cấu hình, dump cơ sở dữ liệu) |
|
|
465
|
+
| `path_robots` | Phân tích robots.txt và sitemap.xml tìm đường dẫn ẩn |
|
|
466
|
+
| `path_git` | Phát hiện rò rỉ kho Git (.git/HEAD, .git/config) |
|
|
467
|
+
| `path_debug` | Khám phá endpoint gỡ lỗi (phpinfo, server-status, bảng điều khiển debug) |
|
|
468
|
+
| `path_api` | Khám phá phiên bản API và endpoint tài liệu |
|
|
469
|
+
|
|
470
|
+
</details>
|
|
471
|
+
|
|
472
|
+
<details>
|
|
473
|
+
<summary><b>scan_waf — Phát hiện và lấy dấu vân tay WAF/CDN (4 kỹ thuật)</b></summary>
|
|
474
|
+
|
|
475
|
+
| Tham số | Kiểu | Mô tả |
|
|
476
|
+
|---------|------|-------|
|
|
477
|
+
| `url` | string | URL mục tiêu |
|
|
478
|
+
|
|
479
|
+
| Kỹ thuật | Mô tả |
|
|
480
|
+
|----------|-------|
|
|
481
|
+
| `waf_detect` | Phát hiện sự hiện diện WAF qua phân tích header phản hồi và hành vi |
|
|
482
|
+
| `waf_cdn` | Nhận dạng nhà cung cấp CDN (Cloudflare, Akamai, Fastly v.v.) |
|
|
483
|
+
| `waf_fingerprint` | Nhận dạng sản phẩm WAF và phát hiện phiên bản |
|
|
484
|
+
| `waf_origin` | Khám phá IP gốc đằng sau WAF/CDN (yêu cầu `SECURITYTRAILS_API_KEY`) |
|
|
485
|
+
|
|
486
|
+
</details>
|
|
487
|
+
|
|
488
|
+
<details>
|
|
489
|
+
<summary><b>scan_services — Thăm dò cấp dịch vụ (12 kỹ thuật)</b></summary>
|
|
490
|
+
|
|
491
|
+
| Tham số | Kiểu | Mô tả |
|
|
492
|
+
|---------|------|-------|
|
|
493
|
+
| `host` | string | Host mục tiêu (IP hoặc domain) |
|
|
494
|
+
| `ports` | number[] | Tùy chọn — các cổng cụ thể để thăm dò |
|
|
495
|
+
| `service` | string | Tùy chọn — dịch vụ cụ thể để thăm dò (mysql, postgres, redis, ftp, ssh, smtp, vnc, iot) |
|
|
496
|
+
|
|
497
|
+
| Kỹ thuật | Nhà cung cấp | Mô tả |
|
|
498
|
+
|----------|-------------|-------|
|
|
499
|
+
| `ssh_probe` | SSH | Phát hiện phiên bản giao thức SSH và phần mềm |
|
|
500
|
+
| `ssh_algorithms` | SSH | Kiểm tra thuật toán SSH (KEX, cipher, MAC, loại host key) |
|
|
501
|
+
| `ssh_hostkey_lookup` | SSH | Tra cứu host key SSH qua Shodan (yêu cầu `SHODAN_API_KEY`) |
|
|
502
|
+
| `svc_mysql` | Service | Phát hiện phiên bản MySQL và lấy dấu vân tay khả năng |
|
|
503
|
+
| `svc_postgres` | Service | Phát hiện phiên bản PostgreSQL và kiểm tra hỗ trợ SSL |
|
|
504
|
+
| `svc_redis` | Service | Phát hiện phiên bản Redis và trạng thái xác thực |
|
|
505
|
+
| `svc_ftp` | Service | Phân tích banner FTP và kiểm tra đăng nhập ẩn danh |
|
|
506
|
+
| `svc_vnc_rdp` | Service | Phát hiện dịch vụ VNC/RDP và đánh giá bảo mật |
|
|
507
|
+
| `smtp_banner` | SMTP | Phân tích banner SMTP và nhận dạng MTA |
|
|
508
|
+
| `smtp_starttls` | SMTP | Hỗ trợ SMTP STARTTLS và kiểm tra chứng chỉ |
|
|
509
|
+
| `iot_detect` | IoT | Phát hiện thiết bị IoT qua mẫu banner và trang mặc định |
|
|
510
|
+
| `iot_upnp` | IoT | Khám phá thiết bị UPnP/SSDP trên mạng cục bộ |
|
|
511
|
+
|
|
512
|
+
</details>
|
|
513
|
+
|
|
514
|
+
<details>
|
|
515
|
+
<summary><b>enumerate — Mở rộng phạm vi (8 kỹ thuật)</b></summary>
|
|
516
|
+
|
|
517
|
+
| Tham số | Kiểu | Mô tả |
|
|
518
|
+
|---------|------|-------|
|
|
519
|
+
| `domain` | string | Domain mục tiêu |
|
|
520
|
+
|
|
521
|
+
| Kỹ thuật | Mô tả |
|
|
522
|
+
|----------|-------|
|
|
523
|
+
| `enum_subdomains` | Liệt kê subdomain qua nhiều phương pháp |
|
|
524
|
+
| `enum_wildcard` | Phát hiện wildcard DNS |
|
|
525
|
+
| `enum_tld` | Mở rộng TLD (target.com -> target.net, target.org v.v.) |
|
|
526
|
+
| `enum_related` | Khám phá domain liên quan qua hạ tầng chung |
|
|
527
|
+
| `enum_asn` | Khám phá láng giềng ASN — domain khác trên cùng mạng |
|
|
528
|
+
| `enum_ct` | Trích xuất subdomain từ Certificate Transparency log |
|
|
529
|
+
| `enum_passive_dns` | Lịch sử DNS thụ động (yêu cầu `SECURITYTRAILS_API_KEY`) |
|
|
530
|
+
| `enum_scope` | Tóm tắt phạm vi và tổng quan bề mặt tấn công |
|
|
531
|
+
|
|
532
|
+
</details>
|
|
533
|
+
|
|
534
|
+
<details>
|
|
535
|
+
<summary><b>osint — Làm giàu OSINT (6 kỹ thuật)</b></summary>
|
|
536
|
+
|
|
537
|
+
| Tham số | Kiểu | Mô tả |
|
|
538
|
+
|---------|------|-------|
|
|
539
|
+
| `target` | string | Địa chỉ IP hoặc domain để làm giàu |
|
|
540
|
+
| `type` | `ip` \| `domain` | Tùy chọn — loại mục tiêu (tự phát hiện nếu bỏ qua) |
|
|
541
|
+
|
|
542
|
+
| Kỹ thuật | Xác thực | Mô tả |
|
|
543
|
+
|----------|---------|-------|
|
|
544
|
+
| `osint_shodan` | `SHODAN_API_KEY` | Tra cứu host Shodan — cổng mở, banner, lỗ hổng, OS |
|
|
545
|
+
| `osint_censys` | `CENSYS_API_ID` + `CENSYS_API_SECRET` | Dữ liệu host Censys — dịch vụ, TLS, hệ thống tự trị |
|
|
546
|
+
| `osint_reverse_ip` | Không | Tra cứu IP ngược — domain khác trên cùng IP |
|
|
547
|
+
| `osint_whois` | Không | Dữ liệu đăng ký WHOIS — nhà đăng ký, ngày, nameserver |
|
|
548
|
+
| `osint_webarchive` | Không | Lịch sử Web Archive — snapshot đầu/cuối, tần suất thay đổi |
|
|
549
|
+
| `osint_virustotal` | `VIRUSTOTAL_API_KEY` | Báo cáo VirusTotal domain/IP — phát hiện, danh mục, DNS |
|
|
550
|
+
|
|
551
|
+
</details>
|
|
552
|
+
|
|
553
|
+
<details>
|
|
554
|
+
<summary><b>analyze — Phân tích dấu vân tay thụ động (3 chế độ)</b></summary>
|
|
555
|
+
|
|
556
|
+
| Tham số | Kiểu | Mô tả |
|
|
557
|
+
|---------|------|-------|
|
|
558
|
+
| `type` | `headers` \| `html` \| `banner` | Loại dữ liệu để phân tích |
|
|
559
|
+
| `data` | string | Dữ liệu thô để phân tích (dán header, HTML hoặc đầu ra banner) |
|
|
560
|
+
|
|
561
|
+
| Chế độ | Mô tả |
|
|
562
|
+
|--------|-------|
|
|
563
|
+
| `fp_analyze_headers` | Phân tích HTTP header thụ động — phát hiện server, framework, proxy mà không gửi lưu lượng |
|
|
564
|
+
| `fp_analyze_html` | Phân tích HTML thụ động — phát hiện công nghệ, nhận dạng framework từ mã nguồn |
|
|
565
|
+
| `fp_analyze_banner` | Phân tích banner thụ động — nhận dạng dịch vụ từ văn bản banner thô |
|
|
566
|
+
|
|
567
|
+
</details>
|
|
568
|
+
|
|
569
|
+
<details>
|
|
570
|
+
<summary><b>correlate — Công cụ tương quan đa tín hiệu (7 chế độ)</b></summary>
|
|
571
|
+
|
|
572
|
+
| Tham số | Kiểu | Mô tả |
|
|
573
|
+
|---------|------|-------|
|
|
574
|
+
| `type` | `consistency` \| `honeypot` \| `spoofing` \| `compare` \| `topology` \| `c2` \| `identify` | Chế độ tương quan |
|
|
575
|
+
| `signals` | object | Tín hiệu dấu vân tay để tương quan (thay đổi theo chế độ) |
|
|
576
|
+
|
|
577
|
+
| Chế độ | Mô tả |
|
|
578
|
+
|--------|-------|
|
|
579
|
+
| `fp_consistency` | Kiểm tra nhất quán tín hiệu xuyên lớp — dấu vân tay TCP, TLS, HTTP và DNS có khớp không? |
|
|
580
|
+
| `fp_honeypot` | Phát hiện honeypot — kiểm tra tổ hợp dịch vụ không thể và bất thường hành vi |
|
|
581
|
+
| `fp_spoofing` | Phát hiện giả mạo — nhận dạng sự không khớp giữa header server và hành vi thực tế |
|
|
582
|
+
| `fp_compare` | So sánh song song hồ sơ dấu vân tay của hai host |
|
|
583
|
+
| `fp_topology` | Lập bản đồ topo hạ tầng — CDN, bộ cân bằng tải, chuỗi reverse proxy |
|
|
584
|
+
| `fp_c2` | Phát hiện C2 framework qua tương quan JARM, TLS, HTTP và thời gian |
|
|
585
|
+
| `fp_identify` | Nhận dạng dựa trên hash đối chiếu cơ sở dữ liệu chữ ký đã biết |
|
|
586
|
+
|
|
587
|
+
</details>
|
|
588
|
+
|
|
589
|
+
<details>
|
|
590
|
+
<summary><b>meta — Cấu hình và dữ liệu server (3 chế độ)</b></summary>
|
|
591
|
+
|
|
592
|
+
| Tham số | Kiểu | Mô tả |
|
|
593
|
+
|---------|------|-------|
|
|
594
|
+
| `category` | string | Tùy chọn — lọc theo danh mục |
|
|
595
|
+
|
|
596
|
+
| Chế độ | Mô tả |
|
|
597
|
+
|--------|-------|
|
|
598
|
+
| `fp_sources` | Liệt kê tất cả nguồn dữ liệu có sẵn với cấu hình và trạng thái API key |
|
|
599
|
+
| `fp_config` | Cấu hình server — phiên bản, nhà cung cấp đã tải, số lượng kỹ thuật |
|
|
600
|
+
| `fp_signatures` | Danh sách cơ sở dữ liệu chữ ký — chữ ký JARM, banner, WAF, ứng dụng |
|
|
601
|
+
|
|
602
|
+
</details>
|
|
603
|
+
|
|
604
|
+
---
|
|
605
|
+
|
|
606
|
+
### Sử dụng CLI
|
|
607
|
+
|
|
608
|
+
```bash
|
|
609
|
+
# Liệt kê tất cả công cụ và kỹ thuật có sẵn
|
|
610
|
+
npx fingerprint-mcp --list
|
|
611
|
+
|
|
612
|
+
# Chạy bất kỳ công cụ nào trực tiếp
|
|
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
|
+
# Công cụ OSINT (yêu cầu API key)
|
|
626
|
+
SHODAN_API_KEY=your-key npx fingerprint-mcp --tool osint '{"target":"203.0.113.42","type":"ip"}'
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
## Nguồn Dữ Liệu (21)
|
|
632
|
+
|
|
633
|
+
| Nguồn | Xác thực | Cung cấp gì |
|
|
634
|
+
|-------|---------|-------------|
|
|
635
|
+
| Thăm dò TCP | Không | Quét cổng, lấy banner, phát hiện dịch vụ |
|
|
636
|
+
| Phân tích TLS/SSL | Không | Phân tích chứng chỉ, lấy dấu vân tay JARM, JA4X, liệt kê cipher, kiểm tra SNI |
|
|
637
|
+
| Thăm dò SSH | Không | Phiên bản giao thức, kiểm tra thuật toán, phát hiện phần mềm |
|
|
638
|
+
| Phân tích HTTP | Không | Lấy dấu vân tay header, băm favicon, phân tích cookie, liệt kê phương thức, CORS |
|
|
639
|
+
| Phát hiện Web | Không | Phát hiện công nghệ, phân tích, source map, WebSocket, GraphQL, SPA framework |
|
|
640
|
+
| Khám phá đường dẫn | Không | Tệp nhạy cảm, rò rỉ git, endpoint gỡ lỗi, phiên bản API, robots.txt |
|
|
641
|
+
| Phân giải DNS | Không | Liệt kê bản ghi, phân tích xác thực email, phát hiện SaaS, lấy dấu vân tay server |
|
|
642
|
+
| Phát hiện WAF/CDN | Không | Nhận dạng WAF, phát hiện CDN, lấy dấu vân tay WAF |
|
|
643
|
+
| Phân tích thời gian | Không | Thời gian phản hồi cơ sở, phát hiện lệch đồng hồ |
|
|
644
|
+
| HTTP/2 & HTTP/3 | Không | Phát hiện và lấy dấu vân tay HTTP/2, khám phá HTTP/3 Alt-Svc |
|
|
645
|
+
| Thăm dò SMTP | Không | Phân tích banner SMTP, kiểm tra STARTTLS |
|
|
646
|
+
| IoT/Nhúng | Không | Phát hiện thiết bị IoT, khám phá UPnP/SSDP |
|
|
647
|
+
| Phát hiện ứng dụng | Không | Nhận dạng CMS, framework và nền tảng thương mại điện tử |
|
|
648
|
+
| Thăm dò dịch vụ | Không | Lấy dấu vân tay MySQL, PostgreSQL, Redis, FTP, VNC/RDP |
|
|
649
|
+
| Phát hiện hạ tầng | Không | Nhận dạng nhà cung cấp cloud, hosting, CDN |
|
|
650
|
+
| Công cụ tương quan | Không | Nhất quán tín hiệu, phát hiện honeypot, phát hiện giả mạo, lập bản đồ topo |
|
|
651
|
+
| Công cụ nhận dạng | Không | Nhận dạng dựa trên hash, phát hiện C2, khớp chữ ký |
|
|
652
|
+
| [Shodan](https://www.shodan.io) | `SHODAN_API_KEY` | Tình báo host — cổng mở, banner, lỗ hổng, phát hiện OS |
|
|
653
|
+
| [Censys](https://censys.io) | `CENSYS_API_ID` | Dữ liệu host — dịch vụ, chứng chỉ TLS, thông tin hệ thống tự trị |
|
|
654
|
+
| [SecurityTrails](https://securitytrails.com) | `SECURITYTRAILS_API_KEY` | Khám phá nguồn gốc WAF, lịch sử DNS thụ động, bản ghi lịch sử |
|
|
655
|
+
| [VirusTotal](https://www.virustotal.com) | `VIRUSTOTAL_API_KEY` | Danh tiếng domain/IP, kết quả phát hiện, lịch sử DNS, danh mục |
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
## Kiến Trúc
|
|
660
|
+
|
|
661
|
+
```
|
|
662
|
+
src/
|
|
663
|
+
index.ts # Điểm vào CLI (--help, --list, --tool, stdio server)
|
|
664
|
+
protocol/
|
|
665
|
+
mcp-server.ts # Thiết lập MCP server (stdio transport)
|
|
666
|
+
tools.ts # Sổ đăng ký công cụ — tất cả 13 công cụ tổng hợp được đăng ký tại đây
|
|
667
|
+
types/
|
|
668
|
+
index.ts # Kiểu dùng chung (ToolDef, ToolContext, ToolResult)
|
|
669
|
+
utils/
|
|
670
|
+
rate-limiter.ts # Bộ giới hạn tốc độ theo nhà cung cấp
|
|
671
|
+
cache.ts # TTL cache cho phản hồi API
|
|
672
|
+
require-key.ts # Hàm hỗ trợ xác thực API key
|
|
673
|
+
murmurhash3.ts # MurmurHash3 cho băm favicon
|
|
674
|
+
composite/ # 13 bộ điều phối công cụ tổng hợp
|
|
675
|
+
recon.ts # Bộ điều phối trinh sát đầy đủ (quick/standard/deep)
|
|
676
|
+
scan-ports.ts # Tổng hợp quét cổng
|
|
677
|
+
scan-tls.ts # Tổng hợp phân tích TLS
|
|
678
|
+
scan-dns.ts # Tổng hợp tình báo DNS
|
|
679
|
+
scan-http.ts # Tổng hợp lấy dấu vân tay HTTP
|
|
680
|
+
scan-paths.ts # Tổng hợp khám phá đường dẫn
|
|
681
|
+
scan-waf.ts # Tổng hợp phát hiện WAF/CDN
|
|
682
|
+
scan-services.ts # Tổng hợp thăm dò dịch vụ
|
|
683
|
+
analyze.ts # Tổng hợp phân tích thụ động
|
|
684
|
+
correlate.ts # Tổng hợp công cụ tương quan
|
|
685
|
+
enumerate.ts # Tổng hợp mở rộng phạm vi
|
|
686
|
+
osint.ts # Tổng hợp làm giàu OSINT
|
|
687
|
+
meta.ts # Tổng hợp meta server
|
|
688
|
+
helpers.ts # Hàm hỗ trợ tổng hợp dùng chung
|
|
689
|
+
tcp/ # Kỹ thuật thăm dò TCP (3)
|
|
690
|
+
tls/ # Kỹ thuật phân tích TLS/SSL (8)
|
|
691
|
+
ssh/ # Kỹ thuật thăm dò SSH (3)
|
|
692
|
+
http/ # Kỹ thuật lấy dấu vân tay HTTP (16)
|
|
693
|
+
web/ # Kỹ thuật phát hiện công nghệ web (9)
|
|
694
|
+
path/ # Kỹ thuật khám phá đường dẫn (5)
|
|
695
|
+
dns/ # Kỹ thuật tình báo DNS (7)
|
|
696
|
+
waf/ # Kỹ thuật phát hiện WAF/CDN (4)
|
|
697
|
+
timing/ # Kỹ thuật phân tích thời gian (2)
|
|
698
|
+
h2/ # Kỹ thuật HTTP/2 & HTTP/3 (3)
|
|
699
|
+
smtp/ # Kỹ thuật thăm dò SMTP (2)
|
|
700
|
+
iot/ # Kỹ thuật phát hiện IoT/nhúng (2)
|
|
701
|
+
app/ # Kỹ thuật phát hiện ứng dụng (3)
|
|
702
|
+
service/ # Kỹ thuật thăm dò dịch vụ (5)
|
|
703
|
+
infra/ # Kỹ thuật phát hiện hạ tầng (3)
|
|
704
|
+
correlation/ # Công cụ tương quan (5)
|
|
705
|
+
identify/ # Công cụ nhận dạng (3)
|
|
706
|
+
passive/ # Phân tích thụ động (3)
|
|
707
|
+
osint/ # Kỹ thuật làm giàu OSINT (6)
|
|
708
|
+
enum/ # Kỹ thuật liệt kê (8)
|
|
709
|
+
meta/ # Công cụ meta (3)
|
|
710
|
+
data/ # Cơ sở dữ liệu chữ ký và thư viện mẫu
|
|
711
|
+
jarm-signatures.ts # Dấu vân tay JARM đã biết (C2, server, CDN)
|
|
712
|
+
waf-signatures.ts # Chữ ký phát hiện WAF
|
|
713
|
+
service-banners.ts # Mẫu banner dịch vụ
|
|
714
|
+
tech-patterns.ts # Mẫu phát hiện công nghệ
|
|
715
|
+
favicon-hashes.ts # Giá trị MurmurHash3 favicon đã biết
|
|
716
|
+
c2-signatures.ts # Chữ ký C2 framework
|
|
717
|
+
... # 15+ cơ sở dữ liệu chữ ký/mẫu
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
**Quyết định thiết kế:**
|
|
721
|
+
|
|
722
|
+
- **13 công cụ tổng hợp, 103 kỹ thuật** — Agent gọi các công cụ cấp cao (`recon`, `scan_tls`, `scan_http`). Mỗi tổng hợp điều phối nhiều kỹ thuật cấp thấp và trả về kết quả đã tương quan. Điều này giảm chi phí gọi công cụ trong khi duy trì độ chi tiết.
|
|
723
|
+
- **21 nhà cung cấp, 1 server** — Mỗi lớp lấy dấu vân tay là một module độc lập. Bộ điều phối tổng hợp chọn kỹ thuật dựa trên ngữ cảnh và độ sâu.
|
|
724
|
+
- **Chủ động trước, OSINT tùy chọn** — 80+ kỹ thuật hoạt động bằng cách thăm dò trực tiếp mục tiêu với không API key. Nhà cung cấp OSINT (Shodan, Censys, VirusTotal, SecurityTrails) bổ sung làm giàu nhưng không bao giờ bắt buộc.
|
|
725
|
+
- **Bộ giới hạn tốc độ theo nhà cung cấp** — Mỗi nhà cung cấp có instance `RateLimiter` riêng. Thăm dò chủ động được giới hạn tốc độ để tránh bị phát hiện; OSINT API được hiệu chỉnh theo quota của chúng.
|
|
726
|
+
- **TTL caching** — Bản ghi DNS (10 phút), kết quả OSINT (15 phút), CT log (30 phút) được cache để tránh tra cứu thừa trong quy trình đa công cụ.
|
|
727
|
+
- **Suy giảm mượt mà** — API key thiếu không làm crash server. Công cụ OSINT trả về thông báo mô tả: "Đặt SHODAN_API_KEY để kích hoạt tra cứu host Shodan."
|
|
728
|
+
- **3 dependency** — `@modelcontextprotocol/sdk`, `zod` và `cheerio`. Tất cả I/O mạng qua `fetch()` native và module Node.js `net`/`tls`/`dns`. Không nmap, không binary bên ngoài.
|
|
729
|
+
|
|
730
|
+
---
|
|
731
|
+
|
|
732
|
+
## Giới Hạn
|
|
733
|
+
|
|
734
|
+
- Công cụ OSINT (Shodan, Censys, VirusTotal, SecurityTrails) yêu cầu API key cho kỹ thuật tương ứng
|
|
735
|
+
- Gói miễn phí Censys giới hạn 250 truy vấn/tháng
|
|
736
|
+
- Gói miễn phí VirusTotal giới hạn 500 truy vấn/ngày
|
|
737
|
+
- Quét cổng sử dụng TCP connect (không phải SYN scan) — ít ẩn hơn nmap nhưng không yêu cầu quyền root
|
|
738
|
+
- Lấy dấu vân tay JARM yêu cầu truy cập TCP trực tiếp đến mục tiêu (có thể bị chặn bởi firewall)
|
|
739
|
+
- Khám phá UPnP/SSDP chỉ hoạt động trên mạng cục bộ
|
|
740
|
+
- Thăm dò dịch vụ (MySQL, PostgreSQL, Redis) kết nối nhưng không xác thực
|
|
741
|
+
- Liệt kê subdomain dựa vào CT log và nguồn thụ động (không brute-force)
|
|
742
|
+
- Đã kiểm tra trên macOS / Linux (Windows chưa kiểm tra)
|
|
743
|
+
|
|
744
|
+
---
|
|
745
|
+
|
|
746
|
+
## Thuộc Bộ Bảo Mật MCP
|
|
747
|
+
|
|
748
|
+
| Dự án | Lĩnh vực | Công cụ |
|
|
749
|
+
|-------|---------|---------|
|
|
750
|
+
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | Kiểm tra bảo mật qua trình duyệt | 39 công cụ, Firefox, kiểm tra injection |
|
|
751
|
+
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | Bảo mật cloud (AWS/Azure/GCP) | 38 công cụ, 60+ kiểm tra |
|
|
752
|
+
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | Bảo mật GitHub | 39 công cụ, 45 kiểm tra |
|
|
753
|
+
| [cve-mcp](https://github.com/badchars/cve-mcp) | Tình báo lỗ hổng | 23 công cụ, 5 nguồn |
|
|
754
|
+
| [osint-mcp-server](https://github.com/badchars/osint-mcp-server) | OSINT & trinh sát | 37 công cụ, 12 nguồn |
|
|
755
|
+
| [darknet-mcp-server](https://github.com/badchars/darknet-mcp-server) | Dark web & tình báo mối đe dọa | 66 công cụ, 16 nguồn |
|
|
756
|
+
| **fingerprint-mcp** | **Lấy dấu vân tay kỹ thuật số toàn diện** | **13 công cụ, 103 kỹ thuật, 21 nhà cung cấp** |
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
<p align="center">
|
|
761
|
+
<b>Chỉ dành cho kiểm tra và đánh giá bảo mật được ủy quyền.</b><br>
|
|
762
|
+
Luôn đảm bảo bạn có sự ủy quyền phù hợp trước khi thực hiện lấy dấu vân tay trên bất kỳ mục tiêu nào.
|
|
763
|
+
</p>
|
|
764
|
+
|
|
765
|
+
<p align="center">
|
|
766
|
+
<a href="LICENSE">Giấy phép AGPL-3.0</a> • Xây dựng với Bun + TypeScript
|
|
767
|
+
</p>
|