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.de.md
ADDED
|
@@ -0,0 +1,770 @@
|
|
|
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
|
+
<strong>Deutsch</strong> |
|
|
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
|
+
<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">Universelles digitales Fingerprinting fuer KI-Agenten.</h3>
|
|
37
|
+
|
|
38
|
+
<p align="center">
|
|
39
|
+
TCP, TLS/SSL, SSH, HTTP, DNS, WAF/CDN, IoT, SMTP, Service-Probing, JARM, JA4X, Favicon-Hashing, Infrastruktur-Topologie, C2-Erkennung, OSINT-Anreicherung — vereint in einem einzigen MCP-Server.<br>
|
|
40
|
+
Ihr KI-Agent erhaelt <b>Vollspektrum-Fingerprinting auf Abruf</b>, nicht 11 getrennte CLI-Tools und manuelle Korrelation.
|
|
41
|
+
</p>
|
|
42
|
+
|
|
43
|
+
<br>
|
|
44
|
+
|
|
45
|
+
<p align="center">
|
|
46
|
+
<a href="#das-problem">Das Problem</a> •
|
|
47
|
+
<a href="#der-unterschied">Der Unterschied</a> •
|
|
48
|
+
<a href="#schnellstart">Schnellstart</a> •
|
|
49
|
+
<a href="#was-die-ki-kann">Was die KI kann</a> •
|
|
50
|
+
<a href="#tool-referenz-13-tools-103-techniken">Tools (13)</a> •
|
|
51
|
+
<a href="#datenquellen-21">Datenquellen</a> •
|
|
52
|
+
<a href="#architektur">Architektur</a> •
|
|
53
|
+
<a href="CHANGELOG.md">Changelog</a> •
|
|
54
|
+
<a href="CONTRIBUTING.md">Mitwirken</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="Lizenz"></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 Tools">
|
|
63
|
+
<img src="https://img.shields.io/badge/techniques-103-f97316" alt="103 Techniken">
|
|
64
|
+
</p>
|
|
65
|
+
|
|
66
|
+
<p align="center">
|
|
67
|
+
<img src="https://raw.githubusercontent.com/badchars/fingerprint-mcp/main/.github/demo.gif" alt="fingerprint-mcp Demo" width="800">
|
|
68
|
+
</p>
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Das Problem
|
|
73
|
+
|
|
74
|
+
Einen Server heute zu fingerprinting bedeutet, ein Dutzend getrennter Tools gleichzeitig zu verwenden. Man startet `nmap` fuer Port-Scanning, `testssl.sh` fuer Zertifikatsanalyse, `curl -I` fuer HTTP-Header, `dig` fuer DNS, `wafw00f` fuer WAF-Erkennung, `ssh-audit` fuer SSH, ein separates JARM-Tool, Wappalyzer fuer Technologie-Erkennung — und verbringt dann 30 Minuten damit, alles manuell in einer Tabelle abzugleichen, um herauszufinden, was tatsaechlich laeuft.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Traditioneller Fingerprinting-Workflow:
|
|
78
|
+
TLS-Zertifikate analysieren -> testssl.sh / openssl s_client
|
|
79
|
+
HTTP-Header abfragen -> curl -I
|
|
80
|
+
Web-Technologien erkennen -> wappalyzer CLI
|
|
81
|
+
DNS-Aufklaerung -> dig / nslookup / dnsenum
|
|
82
|
+
Port-Scanning -> nmap -sV
|
|
83
|
+
WAF-Erkennung -> wafw00f
|
|
84
|
+
SSH-Audit -> ssh-audit
|
|
85
|
+
Service-Fingerprinting -> nmap scripts
|
|
86
|
+
JARM-Fingerprint -> jarm (separates Tool)
|
|
87
|
+
OSINT-Datenbanken pruefen -> shodan CLI, censys CLI
|
|
88
|
+
Alles korrelieren -> manuell in einer Tabelle
|
|
89
|
+
──────────────────────────────
|
|
90
|
+
Gesamt: 11 Tools, 30+ Minuten, manuelle Korrelation
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**fingerprint-mcp** bietet Ihrem KI-Agenten ueber das [Model Context Protocol](https://modelcontextprotocol.io) 13 zusammengesetzte Tools, die 103 Fingerprinting-Techniken von 21 Anbietern kapseln. Der Agent fuehrt mehrschichtiges Fingerprinting parallel aus, korreliert Signale ueber TCP/TLS/HTTP/DNS/SSH-Schichten, erkennt Honeypots und C2-Infrastruktur und praesentiert ein einheitliches Lagebild — alles in einer einzigen Konversation.
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Mit fingerprint-mcp:
|
|
97
|
+
Du: "Fuehre eine tiefe Aufklaerung auf target.com durch"
|
|
98
|
+
|
|
99
|
+
Agent: -> recon {url: "https://target.com", depth: "deep"}
|
|
100
|
+
|
|
101
|
+
-> TLS: nginx/1.24.0 via JARM (3fd21b20d00000...),
|
|
102
|
+
Let's Encrypt Zertifikat, 2 SANs, TLS 1.2+1.3
|
|
103
|
+
-> HTTP: Express.js hinter Cloudflare WAF,
|
|
104
|
+
React SPA, Google Analytics, 14 Sicherheitsheader analysiert
|
|
105
|
+
-> DNS: A/AAAA/MX/TXT-Eintraege, SPF/DKIM/DMARC konfiguriert,
|
|
106
|
+
Slack + Google Workspace via CNAME/MX erkannt
|
|
107
|
+
-> Ports: 80, 443, 22 (OpenSSH 9.6), 8080 (Entwicklungsserver)
|
|
108
|
+
-> WAF: Cloudflare erkannt, Ursprungs-IP durch Direktverbindung entdeckt
|
|
109
|
+
-> Enumeration: 12 Subdomains via CT-Logs, Wildcard-DNS erkannt
|
|
110
|
+
-> "target.com betreibt nginx/1.24.0 mit Express.js hinter
|
|
111
|
+
Cloudflare WAF. Ursprungs-IP 203.0.113.42 ist auf Port 8080
|
|
112
|
+
exponiert. TLS ist korrekt konfiguriert (A+-Aequivalent),
|
|
113
|
+
aber der Entwicklungsserver auf 8080 hat keinen WAF-Schutz.
|
|
114
|
+
3 Subdomains zeigen auf stillgelegte Infrastruktur —
|
|
115
|
+
potenzielles Uebernahmerisiko."
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Der Unterschied
|
|
121
|
+
|
|
122
|
+
Bestehende Tools liefern Rohdaten jeweils nur auf einer Ebene. fingerprint-mcp gibt Ihrem KI-Agenten die Faehigkeit, **ueber alle Fingerprinting-Ebenen gleichzeitig zu schlussfolgern**.
|
|
123
|
+
|
|
124
|
+
<table>
|
|
125
|
+
<thead>
|
|
126
|
+
<tr>
|
|
127
|
+
<th></th>
|
|
128
|
+
<th>Traditioneller Ansatz</th>
|
|
129
|
+
<th>fingerprint-mcp</th>
|
|
130
|
+
</tr>
|
|
131
|
+
</thead>
|
|
132
|
+
<tbody>
|
|
133
|
+
<tr>
|
|
134
|
+
<td><b>Schnittstelle</b></td>
|
|
135
|
+
<td>11 verschiedene CLI-Tools mit unterschiedlichen Ausgabeformaten</td>
|
|
136
|
+
<td>MCP — KI-Agent ruft Tools konversationell auf</td>
|
|
137
|
+
</tr>
|
|
138
|
+
<tr>
|
|
139
|
+
<td><b>Techniken</b></td>
|
|
140
|
+
<td>Ein Tool, eine Ebene auf einmal</td>
|
|
141
|
+
<td>103 Techniken von 21 Anbietern, parallel ausgefuehrt</td>
|
|
142
|
+
</tr>
|
|
143
|
+
<tr>
|
|
144
|
+
<td><b>TLS-Analyse</b></td>
|
|
145
|
+
<td>testssl.sh-Ausgabe, JARM separat manuell parsen</td>
|
|
146
|
+
<td>Agent kombiniert Zertifikat + JARM + JA4X + Cipher Suites + SNI + CT-Logs in einem Aufruf</td>
|
|
147
|
+
</tr>
|
|
148
|
+
<tr>
|
|
149
|
+
<td><b>Korrelation</b></td>
|
|
150
|
+
<td>Ergebnisse in eine Tabelle kopieren</td>
|
|
151
|
+
<td>Agent korreliert: "JARM stimmt mit bekanntem C2-Framework ueberein, HTTP-Timing bestaetigt Honeypot"</td>
|
|
152
|
+
</tr>
|
|
153
|
+
<tr>
|
|
154
|
+
<td><b>WAF-Umgehung</b></td>
|
|
155
|
+
<td>wafw00f erkennt WAF, manuelle Suche nach Ursprung</td>
|
|
156
|
+
<td>Agent erkennt WAF, entdeckt Ursprungs-IP und verifiziert, dass sie denselben Inhalt liefert</td>
|
|
157
|
+
</tr>
|
|
158
|
+
<tr>
|
|
159
|
+
<td><b>API-Schluessel</b></td>
|
|
160
|
+
<td>Erforderlich fuer Shodan, Censys usw.</td>
|
|
161
|
+
<td>80+ aktive Techniken funktionieren ohne API-Schluessel; Schluessel schalten OSINT-Anreicherung frei</td>
|
|
162
|
+
</tr>
|
|
163
|
+
<tr>
|
|
164
|
+
<td><b>Einrichtung</b></td>
|
|
165
|
+
<td>nmap, testssl, wafw00f, ssh-audit, jarm, wappalyzer installieren...</td>
|
|
166
|
+
<td><code>npx fingerprint-mcp</code> — ein Befehl, null Konfiguration</td>
|
|
167
|
+
</tr>
|
|
168
|
+
</tbody>
|
|
169
|
+
</table>
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Schnellstart
|
|
174
|
+
|
|
175
|
+
### Option 1: npx (keine Installation)
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npx fingerprint-mcp
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Alle 80+ aktiven Fingerprinting-Techniken funktionieren sofort. Keine API-Schluessel erforderlich fuer TCP, TLS, SSH, HTTP, DNS, WAF, Pfad, Service, Timing, IoT, SMTP, Infrastruktur und Anwendungs-Fingerprinting.
|
|
182
|
+
|
|
183
|
+
### Option 2: Klonen
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
git clone https://github.com/badchars/fingerprint-mcp.git
|
|
187
|
+
cd fingerprint-mcp
|
|
188
|
+
bun install
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Umgebungsvariablen (optional)
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# OSINT-Anreicherung (alle optional — aktives Fingerprinting funktioniert ohne Schluessel)
|
|
195
|
+
export SHODAN_API_KEY=your-key # Aktiviert osint_shodan, ssh_hostkey_lookup
|
|
196
|
+
export CENSYS_API_ID=your-id # Aktiviert osint_censys (kostenlos: 250 Abfragen/Monat)
|
|
197
|
+
export CENSYS_API_SECRET=your-secret # Censys API-Secret
|
|
198
|
+
export SECURITYTRAILS_API_KEY=your-key # Aktiviert waf_origin, enum_passive_dns
|
|
199
|
+
export VIRUSTOTAL_API_KEY=your-key # Aktiviert osint_virustotal (kostenlos: 500 Abfragen/Tag)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Alle API-Schluessel sind optional. Ohne sie erhalten Sie weiterhin vollstaendiges TCP/TLS/SSH/HTTP/DNS/WAF/Pfad/Service/Timing/IoT/SMTP/Infrastruktur/Anwendungs-Fingerprinting, Korrelation, passive Analyse, Enumeration und Meta-Tools — 80+ Techniken, die durch direktes Probing des Ziels funktionieren.
|
|
203
|
+
|
|
204
|
+
### Mit Ihrem KI-Agenten verbinden
|
|
205
|
+
|
|
206
|
+
<details open>
|
|
207
|
+
<summary><b>Claude Code</b></summary>
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Mit npx
|
|
211
|
+
claude mcp add fingerprint-mcp -- npx fingerprint-mcp
|
|
212
|
+
|
|
213
|
+
# Mit lokalem Klon
|
|
214
|
+
claude mcp add fingerprint-mcp -- bun run /path/to/fingerprint-mcp/src/index.ts
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
</details>
|
|
218
|
+
|
|
219
|
+
<details>
|
|
220
|
+
<summary><b>Claude Desktop</b></summary>
|
|
221
|
+
|
|
222
|
+
Zu `~/Library/Application Support/Claude/claude_desktop_config.json` hinzufuegen:
|
|
223
|
+
|
|
224
|
+
```json
|
|
225
|
+
{
|
|
226
|
+
"mcpServers": {
|
|
227
|
+
"fingerprint": {
|
|
228
|
+
"command": "npx",
|
|
229
|
+
"args": ["-y", "fingerprint-mcp"],
|
|
230
|
+
"env": {
|
|
231
|
+
"SHODAN_API_KEY": "optional",
|
|
232
|
+
"CENSYS_API_ID": "optional",
|
|
233
|
+
"CENSYS_API_SECRET": "optional",
|
|
234
|
+
"SECURITYTRAILS_API_KEY": "optional",
|
|
235
|
+
"VIRUSTOTAL_API_KEY": "optional"
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
</details>
|
|
243
|
+
|
|
244
|
+
<details>
|
|
245
|
+
<summary><b>Cursor / Windsurf / andere MCP-Clients</b></summary>
|
|
246
|
+
|
|
247
|
+
Dasselbe JSON-Konfigurationsformat. Richten Sie den Befehl auf `npx fingerprint-mcp` oder Ihren lokalen Installationspfad.
|
|
248
|
+
|
|
249
|
+
</details>
|
|
250
|
+
|
|
251
|
+
### Abfragen starten
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
Du: "Fingerprinte alles an target.com — TLS, HTTP-Stack, WAF, DNS, offene Ports"
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Das war's. Der Agent uebernimmt automatisch mehrschichtiges Fingerprinting, Signalkorrelation und Infrastrukturanalyse.
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Was die KI kann
|
|
262
|
+
|
|
263
|
+
### Schnelle Aufklaerung
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
Du: "Schnelle Aufklaerung auf target.com"
|
|
267
|
+
|
|
268
|
+
Agent: -> recon {url: "https://target.com", depth: "quick"}
|
|
269
|
+
|
|
270
|
+
-> TCP: Ports 80, 443, 22 offen
|
|
271
|
+
-> TLS: Let's Encrypt RSA-Zertifikat, TLS 1.2+1.3, nginx JARM-Signatur
|
|
272
|
+
-> HTTP: nginx/1.24.0, Express.js, React, Cloudflare CDN
|
|
273
|
+
-> DNS: A 203.0.113.42, MX Google Workspace, SPF/DKIM konfiguriert
|
|
274
|
+
-> WAF: Cloudflare erkannt (cf-ray Header)
|
|
275
|
+
-> "target.com ist eine React SPA auf Express.js hinter nginx/1.24.0,
|
|
276
|
+
bereitgestellt ueber Cloudflare CDN. TLS korrekt konfiguriert mit
|
|
277
|
+
Let's Encrypt. SSH auf Port 22 mit OpenSSH 9.6. E-Mail
|
|
278
|
+
wird von Google Workspace verwaltet mit vollstaendigem
|
|
279
|
+
SPF/DKIM/DMARC."
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Tiefe TLS-Untersuchung
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
Du: "Analysiere die TLS-Konfiguration von suspicious-server.com im Detail"
|
|
286
|
+
|
|
287
|
+
Agent: -> scan_tls {host: "suspicious-server.com"}
|
|
288
|
+
|
|
289
|
+
-> Zertifikat: selbstsigniert, CN=localhost, seit 47 Tagen abgelaufen
|
|
290
|
+
-> JARM: 2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
|
|
291
|
+
(stimmt mit Cobalt Strike Standardprofil ueberein)
|
|
292
|
+
-> JA4X: Fingerprint stimmt mit bekanntem C2-Framework-Muster ueberein
|
|
293
|
+
-> Cipher Suites: akzeptiert schwache Cipher (RC4, 3DES)
|
|
294
|
+
-> SNI: antwortet identisch auf jeden SNI-Wert
|
|
295
|
+
-> CT-Logs: Zertifikat nicht protokolliert (nicht oeffentlich vertrauenswuerdig)
|
|
296
|
+
-> "HOHES RISIKO: TLS-Konfiguration deutet stark auf C2-Infrastruktur hin.
|
|
297
|
+
Selbstsigniertes abgelaufenes Zertifikat, JARM-Fingerprint stimmt mit
|
|
298
|
+
Cobalt Strike ueberein, akzeptiert schwache Cipher und antwortet auf
|
|
299
|
+
beliebige SNI-Werte. Sofortige Untersuchung und Sperrung empfohlen."
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### WAF-Umgehung und Ursprungserkennung
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
Du: "target.com ist hinter einer WAF. Kannst du den Ursprungsserver finden?"
|
|
306
|
+
|
|
307
|
+
Agent: -> scan_waf {url: "https://target.com"}
|
|
308
|
+
-> scan_dns {domain: "target.com"}
|
|
309
|
+
-> enumerate {domain: "target.com"}
|
|
310
|
+
|
|
311
|
+
-> WAF: Cloudflare (AS13335), Challenge-Seite bei verdaechtigen Anfragen
|
|
312
|
+
-> DNS: A-Eintrag zeigt auf Cloudflare-IP 104.21.x.x
|
|
313
|
+
-> Subdomains: dev.target.com loest zu 203.0.113.42 auf (nicht Cloudflare)
|
|
314
|
+
-> Direktverbindung zu 203.0.113.42:443 gibt dasselbe TLS-Zertifikat zurueck
|
|
315
|
+
-> SecurityTrails Historie: Ursprung war 203.0.113.42 vor Cloudflare
|
|
316
|
+
-> "Ursprungs-IP gefunden: 203.0.113.42. Entdeckt ueber die Subdomain
|
|
317
|
+
dev.target.com, die Cloudflare umgeht. Der Ursprung liefert dasselbe
|
|
318
|
+
TLS-Zertifikat und antwortet auf den target.com Host-Header.
|
|
319
|
+
Der Ursprung hat keinen WAF-Schutz — direkter Zugriff moeglich."
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Service-Erkennung auf einem Host
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
Du: "Welche Dienste laufen auf 10.0.1.50?"
|
|
326
|
+
|
|
327
|
+
Agent: -> scan_ports {host: "10.0.1.50"}
|
|
328
|
+
-> scan_services {host: "10.0.1.50", ports: [22, 80, 3306, 5432, 6379, 8080]}
|
|
329
|
+
|
|
330
|
+
-> Port 22: OpenSSH 8.9p1 Ubuntu, ED25519-Hostschluessel
|
|
331
|
+
-> Port 80: Apache/2.4.57, PHP/8.2, WordPress 6.4
|
|
332
|
+
-> Port 3306: MySQL 8.0.36, Authentifizierung erforderlich
|
|
333
|
+
-> Port 5432: PostgreSQL 16.1, SSL erforderlich
|
|
334
|
+
-> Port 6379: Redis 7.2.4, KEINE Authentifizierung (offen)
|
|
335
|
+
-> Port 8080: Node.js Express Entwicklungsserver, CORS: *
|
|
336
|
+
-> "KRITISCH: Redis auf Port 6379 hat keine Authentifizierung — jeder
|
|
337
|
+
im Netzwerk kann Daten lesen/schreiben. Der Express Entwicklungsserver
|
|
338
|
+
auf 8080 hat Wildcard-CORS. MySQL und PostgreSQL erfordern korrekt
|
|
339
|
+
Authentifizierung. WordPress ist 2 Minor-Versionen zurueck.
|
|
340
|
+
Sofortiges Handeln bei Redis und der Entwicklungsserver-Exposition
|
|
341
|
+
erforderlich."
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Tool-Referenz (13 Tools, 103 Techniken)
|
|
347
|
+
|
|
348
|
+
<details open>
|
|
349
|
+
<summary><b>recon — Vollstaendige Aufklaerung mit tiefenbasierter Technikauswahl</b></summary>
|
|
350
|
+
|
|
351
|
+
| Parameter | Typ | Beschreibung |
|
|
352
|
+
|-----------|-----|--------------|
|
|
353
|
+
| `url` | string | Ziel-URL zum Fingerprinting |
|
|
354
|
+
| `depth` | `quick` \| `standard` \| `deep` | Scan-Tiefe: quick=5 Techniken, standard=20, deep=50+ |
|
|
355
|
+
|
|
356
|
+
Orchestriert Techniken aller Anbieter basierend auf der Tiefenstufe. Der schnelle Modus gibt einen schnellen Ueberblick; der tiefe Modus fuehrt umfassendes Fingerprinting einschliesslich Enumeration, OSINT und Korrelation durch.
|
|
357
|
+
|
|
358
|
+
</details>
|
|
359
|
+
|
|
360
|
+
<details>
|
|
361
|
+
<summary><b>scan_ports — TCP-Port-Scanning mit Service-Erkennung (3 Techniken)</b></summary>
|
|
362
|
+
|
|
363
|
+
| Parameter | Typ | Beschreibung |
|
|
364
|
+
|-----------|-----|--------------|
|
|
365
|
+
| `host` | string | Zielhost (IP oder Domain) |
|
|
366
|
+
| `ports` | number[] | Optional — bestimmte Ports zum Scannen (Standard: gaengige Ports) |
|
|
367
|
+
|
|
368
|
+
| Technik | Beschreibung |
|
|
369
|
+
|---------|--------------|
|
|
370
|
+
| `tcp_probe` | TCP-Connect-Scan zur Erkennung offener Ports |
|
|
371
|
+
| `tcp_banner` | Banner-Grabbing auf offenen Ports zur Service-Identifikation |
|
|
372
|
+
| `tcp_analysis` | Port-Kombinationsanalyse und Service-Inferenz |
|
|
373
|
+
|
|
374
|
+
</details>
|
|
375
|
+
|
|
376
|
+
<details>
|
|
377
|
+
<summary><b>scan_tls — Vollstaendige TLS/SSL-Analyse (8 Techniken)</b></summary>
|
|
378
|
+
|
|
379
|
+
| Parameter | Typ | Beschreibung |
|
|
380
|
+
|-----------|-----|--------------|
|
|
381
|
+
| `host` | string | Zielhost (IP oder Domain) |
|
|
382
|
+
| `port` | number | Optional — TLS-Port (Standard: 443) |
|
|
383
|
+
|
|
384
|
+
| Technik | Beschreibung |
|
|
385
|
+
|---------|--------------|
|
|
386
|
+
| `tls_certificate` | X.509-Zertifikatsanalyse — Subjekt, Aussteller, SANs, Gueltigkeit, Kette |
|
|
387
|
+
| `tls_jarm` | JARM aktives Fingerprinting — 10 TLS Client Hello Probes, 62-Zeichen-Hash |
|
|
388
|
+
| `tls_ja4x` | JA4X passives TLS-Fingerprinting aus Zertifikatseigenschaften |
|
|
389
|
+
| `tls_ciphers` | Cipher-Suite-Enumeration und Staerkeanalyse |
|
|
390
|
+
| `tls_protocols` | Erkennung unterstuetzter TLS-Protokollversionen (SSLv3 bis TLS 1.3) |
|
|
391
|
+
| `tls_sni` | SNI-Verhaltenstest — Standard-Zertifikat vs. angeforderter Hostname |
|
|
392
|
+
| `tls_ct_logs` | Certificate Transparency Log-Abfrage ueber crt.sh |
|
|
393
|
+
| `tls_ocsp` | OCSP-Stapling und Sperrstatus-Pruefung |
|
|
394
|
+
|
|
395
|
+
</details>
|
|
396
|
+
|
|
397
|
+
<details>
|
|
398
|
+
<summary><b>scan_dns — DNS-Intelligence (7 Techniken)</b></summary>
|
|
399
|
+
|
|
400
|
+
| Parameter | Typ | Beschreibung |
|
|
401
|
+
|-----------|-----|--------------|
|
|
402
|
+
| `domain` | string | Zieldomain |
|
|
403
|
+
|
|
404
|
+
| Technik | Beschreibung |
|
|
405
|
+
|---------|--------------|
|
|
406
|
+
| `dns_records` | Vollstaendige Eintragsauflistung — A, AAAA, MX, NS, TXT, CNAME, SOA |
|
|
407
|
+
| `dns_email_auth` | SPF-, DKIM- und DMARC-Eintragsanalyse |
|
|
408
|
+
| `dns_saas` | SaaS/Service-Erkennung ueber CNAME- und MX-Muster (Slack, Zendesk usw.) |
|
|
409
|
+
| `dns_server` | DNS-Server-Fingerprinting (BIND, PowerDNS, Cloudflare usw.) |
|
|
410
|
+
| `dns_takeover` | Subdomain-Uebernahme-Erkennung durch Dangling-CNAME-Analyse |
|
|
411
|
+
| `dns_zone` | Zonentransferversuch (AXFR) |
|
|
412
|
+
| `dns_caa` | CAA-Eintragsanalyse fuer Zertifizierungsstellen-Beschraenkungen |
|
|
413
|
+
|
|
414
|
+
</details>
|
|
415
|
+
|
|
416
|
+
<details>
|
|
417
|
+
<summary><b>scan_http — HTTP/Web-Fingerprinting (29 Techniken)</b></summary>
|
|
418
|
+
|
|
419
|
+
| Parameter | Typ | Beschreibung |
|
|
420
|
+
|-----------|-----|--------------|
|
|
421
|
+
| `url` | string | Ziel-URL |
|
|
422
|
+
|
|
423
|
+
| Technik | Anbieter | Beschreibung |
|
|
424
|
+
|---------|----------|--------------|
|
|
425
|
+
| `http_headers` | HTTP | Antwort-Header-Analyse und Server-Identifikation |
|
|
426
|
+
| `http_header_order` | HTTP | Header-Reihenfolge-Fingerprint (Server-Software-Signatur) |
|
|
427
|
+
| `http_security_headers` | HTTP | Sicherheitsheader-Audit (CSP, HSTS, X-Frame-Options usw.) |
|
|
428
|
+
| `http_cookies` | HTTP | Cookie-Analyse — Flags, Praefixe, Framework-Erkennung |
|
|
429
|
+
| `http_methods` | HTTP | Erlaubte HTTP-Methoden-Enumeration (OPTIONS) |
|
|
430
|
+
| `http_cors` | HTTP | CORS-Richtlinienanalyse und Fehlkonfigurationserkennung |
|
|
431
|
+
| `http_compression` | HTTP | Unterstuetzte Kompressionsalgorithmen (gzip, br, zstd) |
|
|
432
|
+
| `http_caching` | HTTP | Cache-Header-Analyse (CDN, Reverse-Proxy-Erkennung) |
|
|
433
|
+
| `http_etag` | HTTP | ETag-Formatanalyse zur Backend-Identifikation |
|
|
434
|
+
| `http_error` | HTTP | Fehlerseiten-Fingerprinting (benutzerdefinierte vs. Standard-Fehlerseiten) |
|
|
435
|
+
| `http_redirect` | HTTP | Weiterleitungsketten-Analyse |
|
|
436
|
+
| `http_timing` | HTTP | Antwortzeit-Baseline fuer Server-Performance-Profiling |
|
|
437
|
+
| `http_favicon` | HTTP | Favicon-Hash (MurmurHash3) zur Technologie-Identifikation |
|
|
438
|
+
| `http_robots` | HTTP | robots.txt-Analyse und Extraktion gesperrter Pfade |
|
|
439
|
+
| `http_sitemap` | HTTP | Sitemap-Erkennung und URL-Extraktion |
|
|
440
|
+
| `http_wellknown` | HTTP | .well-known Endpunkt-Erkennung (security.txt, openid usw.) |
|
|
441
|
+
| `web_tech` | Web | Technologie-Erkennung ueber HTML/JS/CSS-Muster |
|
|
442
|
+
| `web_analytics` | Web | Analytics- und Tracking-Service-Erkennung |
|
|
443
|
+
| `web_sourcemaps` | Web | Source-Map-Datei-Erkennung |
|
|
444
|
+
| `web_websocket` | Web | WebSocket-Endpunkt-Erkennung |
|
|
445
|
+
| `web_graphql` | Web | GraphQL-Endpunkt-Erkennung und Introspektion |
|
|
446
|
+
| `web_spa` | Web | Single-Page-Application-Framework-Erkennung |
|
|
447
|
+
| `web_cdn` | Web | CDN-Erkennung ueber Antwort-Header und DNS |
|
|
448
|
+
| `web_meta` | Web | HTML-Meta-Tag-Analyse (Generator, Framework-Hinweise) |
|
|
449
|
+
| `web_feed` | Web | RSS/Atom-Feed-Erkennung |
|
|
450
|
+
| `h2_detect` | HTTP/2 | HTTP/2-Protokollunterstuetzungs-Erkennung |
|
|
451
|
+
| `h2_fingerprint` | HTTP/2 | HTTP/2-Server-Fingerprinting (SETTINGS, WINDOW_UPDATE) |
|
|
452
|
+
| `h2_h3` | HTTP/2 | HTTP/3 (QUIC) Unterstuetzungserkennung ueber Alt-Svc-Header |
|
|
453
|
+
| `app_cms` | Application | CMS-Erkennung (WordPress, Drupal, Joomla usw.) |
|
|
454
|
+
|
|
455
|
+
</details>
|
|
456
|
+
|
|
457
|
+
<details>
|
|
458
|
+
<summary><b>scan_paths — Pfad-Intelligence (5 Techniken)</b></summary>
|
|
459
|
+
|
|
460
|
+
| Parameter | Typ | Beschreibung |
|
|
461
|
+
|-----------|-----|--------------|
|
|
462
|
+
| `url` | string | Ziel-URL |
|
|
463
|
+
| `categories` | string[] | Optional — zu pruefende Kategorien (sensitive, git, debug, api, config) |
|
|
464
|
+
|
|
465
|
+
| Technik | Beschreibung |
|
|
466
|
+
|---------|--------------|
|
|
467
|
+
| `path_sensitive` | Erkennung sensibler Dateien (Backup-Dateien, Konfigurationsdateien, Datenbank-Dumps) |
|
|
468
|
+
| `path_robots` | robots.txt- und sitemap.xml-Analyse zur Erkennung versteckter Pfade |
|
|
469
|
+
| `path_git` | Git-Repository-Leak-Erkennung (.git/HEAD, .git/config) |
|
|
470
|
+
| `path_debug` | Debug-Endpunkt-Erkennung (phpinfo, server-status, Debug-Konsolen) |
|
|
471
|
+
| `path_api` | API-Version und Dokumentationsendpunkt-Erkennung |
|
|
472
|
+
|
|
473
|
+
</details>
|
|
474
|
+
|
|
475
|
+
<details>
|
|
476
|
+
<summary><b>scan_waf — WAF/CDN-Erkennung und Fingerprinting (4 Techniken)</b></summary>
|
|
477
|
+
|
|
478
|
+
| Parameter | Typ | Beschreibung |
|
|
479
|
+
|-----------|-----|--------------|
|
|
480
|
+
| `url` | string | Ziel-URL |
|
|
481
|
+
|
|
482
|
+
| Technik | Beschreibung |
|
|
483
|
+
|---------|--------------|
|
|
484
|
+
| `waf_detect` | WAF-Praesenz-Erkennung ueber Antwort-Header- und Verhaltensanalyse |
|
|
485
|
+
| `waf_cdn` | CDN-Anbieter-Identifikation (Cloudflare, Akamai, Fastly usw.) |
|
|
486
|
+
| `waf_fingerprint` | WAF-Produkt-Identifikation und Versionserkennung |
|
|
487
|
+
| `waf_origin` | Ursprungs-IP-Erkennung hinter WAF/CDN (erfordert `SECURITYTRAILS_API_KEY`) |
|
|
488
|
+
|
|
489
|
+
</details>
|
|
490
|
+
|
|
491
|
+
<details>
|
|
492
|
+
<summary><b>scan_services — Service-Level-Probing (12 Techniken)</b></summary>
|
|
493
|
+
|
|
494
|
+
| Parameter | Typ | Beschreibung |
|
|
495
|
+
|-----------|-----|--------------|
|
|
496
|
+
| `host` | string | Zielhost (IP oder Domain) |
|
|
497
|
+
| `ports` | number[] | Optional — bestimmte Ports zum Probing |
|
|
498
|
+
| `service` | string | Optional — bestimmter Service zum Probing (mysql, postgres, redis, ftp, ssh, smtp, vnc, iot) |
|
|
499
|
+
|
|
500
|
+
| Technik | Anbieter | Beschreibung |
|
|
501
|
+
|---------|----------|--------------|
|
|
502
|
+
| `ssh_probe` | SSH | SSH-Protokollversion und Software-Erkennung |
|
|
503
|
+
| `ssh_algorithms` | SSH | SSH-Algorithmus-Audit (KEX, Cipher, MACs, Hostschluesseltypen) |
|
|
504
|
+
| `ssh_hostkey_lookup` | SSH | SSH-Hostschluessel-Abfrage ueber Shodan (erfordert `SHODAN_API_KEY`) |
|
|
505
|
+
| `svc_mysql` | Service | MySQL-Versionserkennung und Faehigkeits-Fingerprinting |
|
|
506
|
+
| `svc_postgres` | Service | PostgreSQL-Versionserkennung und SSL-Unterstuetzungspruefung |
|
|
507
|
+
| `svc_redis` | Service | Redis-Versionserkennung und Authentifizierungsstatus |
|
|
508
|
+
| `svc_ftp` | Service | FTP-Banner-Analyse und anonymer Login-Check |
|
|
509
|
+
| `svc_vnc_rdp` | Service | VNC/RDP-Service-Erkennung und Sicherheitsbewertung |
|
|
510
|
+
| `smtp_banner` | SMTP | SMTP-Banner-Analyse und MTA-Identifikation |
|
|
511
|
+
| `smtp_starttls` | SMTP | SMTP STARTTLS-Unterstuetzung und Zertifikatspruefung |
|
|
512
|
+
| `iot_detect` | IoT | IoT-Geraeteerkennung ueber Banner-Muster und Standardseiten |
|
|
513
|
+
| `iot_upnp` | IoT | UPnP/SSDP-Geraeteerkennung im lokalen Netzwerk |
|
|
514
|
+
|
|
515
|
+
</details>
|
|
516
|
+
|
|
517
|
+
<details>
|
|
518
|
+
<summary><b>enumerate — Scope-Erweiterung (8 Techniken)</b></summary>
|
|
519
|
+
|
|
520
|
+
| Parameter | Typ | Beschreibung |
|
|
521
|
+
|-----------|-----|--------------|
|
|
522
|
+
| `domain` | string | Zieldomain |
|
|
523
|
+
|
|
524
|
+
| Technik | Beschreibung |
|
|
525
|
+
|---------|--------------|
|
|
526
|
+
| `enum_subdomains` | Subdomain-Enumeration ueber mehrere Methoden |
|
|
527
|
+
| `enum_wildcard` | Wildcard-DNS-Erkennung |
|
|
528
|
+
| `enum_tld` | TLD-Erweiterung (target.com -> target.net, target.org usw.) |
|
|
529
|
+
| `enum_related` | Verwandte Domain-Erkennung ueber gemeinsame Infrastruktur |
|
|
530
|
+
| `enum_asn` | ASN-Nachbarerkennung — andere Domains im selben Netzwerk |
|
|
531
|
+
| `enum_ct` | Certificate Transparency Log Subdomain-Extraktion |
|
|
532
|
+
| `enum_passive_dns` | Passive DNS-Historie (erfordert `SECURITYTRAILS_API_KEY`) |
|
|
533
|
+
| `enum_scope` | Scope-Zusammenfassung und Angriffsflaechen-Uebersicht |
|
|
534
|
+
|
|
535
|
+
</details>
|
|
536
|
+
|
|
537
|
+
<details>
|
|
538
|
+
<summary><b>osint — OSINT-Anreicherung (6 Techniken)</b></summary>
|
|
539
|
+
|
|
540
|
+
| Parameter | Typ | Beschreibung |
|
|
541
|
+
|-----------|-----|--------------|
|
|
542
|
+
| `target` | string | Anzureichernde IP-Adresse oder Domain |
|
|
543
|
+
| `type` | `ip` \| `domain` | Optional — Zieltyp (automatisch erkannt wenn ausgelassen) |
|
|
544
|
+
|
|
545
|
+
| Technik | Auth | Beschreibung |
|
|
546
|
+
|---------|------|--------------|
|
|
547
|
+
| `osint_shodan` | `SHODAN_API_KEY` | Shodan Host-Abfrage — offene Ports, Banner, Schwachstellen, OS |
|
|
548
|
+
| `osint_censys` | `CENSYS_API_ID` + `CENSYS_API_SECRET` | Censys Host-Daten — Services, TLS, autonomes System |
|
|
549
|
+
| `osint_reverse_ip` | Keine | Reverse-IP-Abfrage — andere Domains auf derselben IP |
|
|
550
|
+
| `osint_whois` | Keine | WHOIS-Registrierungsdaten — Registrar, Daten, Nameserver |
|
|
551
|
+
| `osint_webarchive` | Keine | Web Archive Historie — erster/letzter Snapshot, Aenderungshaeufigkeit |
|
|
552
|
+
| `osint_virustotal` | `VIRUSTOTAL_API_KEY` | VirusTotal Domain/IP-Bericht — Erkennungen, Kategorien, DNS |
|
|
553
|
+
|
|
554
|
+
</details>
|
|
555
|
+
|
|
556
|
+
<details>
|
|
557
|
+
<summary><b>analyze — Passive Fingerprint-Analyse (3 Modi)</b></summary>
|
|
558
|
+
|
|
559
|
+
| Parameter | Typ | Beschreibung |
|
|
560
|
+
|-----------|-----|--------------|
|
|
561
|
+
| `type` | `headers` \| `html` \| `banner` | Zu analysierender Datentyp |
|
|
562
|
+
| `data` | string | Rohdaten zur Analyse (Header, HTML oder Banner-Ausgabe einfuegen) |
|
|
563
|
+
|
|
564
|
+
| Modus | Beschreibung |
|
|
565
|
+
|-------|--------------|
|
|
566
|
+
| `fp_analyze_headers` | Passive HTTP-Header-Analyse — Server-, Framework-, Proxy-Erkennung ohne Datenverkehr |
|
|
567
|
+
| `fp_analyze_html` | Passive HTML-Analyse — Technologie-Erkennung, Framework-Identifikation aus Quelltext |
|
|
568
|
+
| `fp_analyze_banner` | Passive Banner-Analyse — Service-Identifikation aus rohem Banner-Text |
|
|
569
|
+
|
|
570
|
+
</details>
|
|
571
|
+
|
|
572
|
+
<details>
|
|
573
|
+
<summary><b>correlate — Multi-Signal-Korrelationsengine (7 Modi)</b></summary>
|
|
574
|
+
|
|
575
|
+
| Parameter | Typ | Beschreibung |
|
|
576
|
+
|-----------|-----|--------------|
|
|
577
|
+
| `type` | `consistency` \| `honeypot` \| `spoofing` \| `compare` \| `topology` \| `c2` \| `identify` | Korrelationsmodus |
|
|
578
|
+
| `signals` | object | Zu korrelierende Fingerprint-Signale (variiert nach Modus) |
|
|
579
|
+
|
|
580
|
+
| Modus | Beschreibung |
|
|
581
|
+
|-------|--------------|
|
|
582
|
+
| `fp_consistency` | Schichtuebergreifende Signal-Konsistenzpruefung — stimmen TCP-, TLS-, HTTP- und DNS-Fingerprints ueberein? |
|
|
583
|
+
| `fp_honeypot` | Honeypot-Erkennung — prueft auf unmoegliche Service-Kombinationen und Verhaltensanomalien |
|
|
584
|
+
| `fp_spoofing` | Spoofing-Erkennung — identifiziert Diskrepanzen zwischen Server-Headern und tatsaechlichem Verhalten |
|
|
585
|
+
| `fp_compare` | Nebeneinander-Vergleich der Fingerprint-Profile zweier Hosts |
|
|
586
|
+
| `fp_topology` | Infrastruktur-Topologie-Mapping — CDN, Load Balancer, Reverse-Proxy-Kette |
|
|
587
|
+
| `fp_c2` | C2-Framework-Erkennung ueber JARM-, TLS-, HTTP- und Timing-Korrelation |
|
|
588
|
+
| `fp_identify` | Hash-basierte Identifikation gegen bekannte Signaturdatenbank |
|
|
589
|
+
|
|
590
|
+
</details>
|
|
591
|
+
|
|
592
|
+
<details>
|
|
593
|
+
<summary><b>meta — Server-Konfiguration und Daten (3 Modi)</b></summary>
|
|
594
|
+
|
|
595
|
+
| Parameter | Typ | Beschreibung |
|
|
596
|
+
|-----------|-----|--------------|
|
|
597
|
+
| `category` | string | Optional — nach Kategorie filtern |
|
|
598
|
+
|
|
599
|
+
| Modus | Beschreibung |
|
|
600
|
+
|-------|--------------|
|
|
601
|
+
| `fp_sources` | Alle verfuegbaren Datenquellen mit Konfiguration und API-Schluessel-Status auflisten |
|
|
602
|
+
| `fp_config` | Server-Konfiguration — Version, geladene Anbieter, Technikanzahl |
|
|
603
|
+
| `fp_signatures` | Signaturdatenbank-Auflistung — JARM-, Banner-, WAF-, Anwendungssignaturen |
|
|
604
|
+
|
|
605
|
+
</details>
|
|
606
|
+
|
|
607
|
+
---
|
|
608
|
+
|
|
609
|
+
### CLI-Verwendung
|
|
610
|
+
|
|
611
|
+
```bash
|
|
612
|
+
# Alle verfuegbaren Tools und Techniken auflisten
|
|
613
|
+
npx fingerprint-mcp --list
|
|
614
|
+
|
|
615
|
+
# Jedes Tool direkt ausfuehren
|
|
616
|
+
npx fingerprint-mcp --tool recon '{"url":"https://example.com","depth":"quick"}'
|
|
617
|
+
npx fingerprint-mcp --tool scan_tls '{"host":"example.com"}'
|
|
618
|
+
npx fingerprint-mcp --tool scan_ports '{"host":"10.0.1.50","ports":[22,80,443,3306,8080]}'
|
|
619
|
+
npx fingerprint-mcp --tool scan_dns '{"domain":"example.com"}'
|
|
620
|
+
npx fingerprint-mcp --tool scan_http '{"url":"https://example.com"}'
|
|
621
|
+
npx fingerprint-mcp --tool scan_waf '{"url":"https://example.com"}'
|
|
622
|
+
npx fingerprint-mcp --tool scan_services '{"host":"10.0.1.50","service":"redis"}'
|
|
623
|
+
npx fingerprint-mcp --tool enumerate '{"domain":"example.com"}'
|
|
624
|
+
npx fingerprint-mcp --tool analyze '{"type":"headers","data":"Server: nginx/1.24.0\nX-Powered-By: Express"}'
|
|
625
|
+
npx fingerprint-mcp --tool correlate '{"type":"honeypot","signals":{"jarm":"...","banner":"..."}}'
|
|
626
|
+
npx fingerprint-mcp --tool meta '{}'
|
|
627
|
+
|
|
628
|
+
# OSINT-Tools (erfordern API-Schluessel)
|
|
629
|
+
SHODAN_API_KEY=your-key npx fingerprint-mcp --tool osint '{"target":"203.0.113.42","type":"ip"}'
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
---
|
|
633
|
+
|
|
634
|
+
## Datenquellen (21)
|
|
635
|
+
|
|
636
|
+
| Quelle | Auth | Bereitgestellte Daten |
|
|
637
|
+
|--------|------|-----------------------|
|
|
638
|
+
| TCP-Probing | Keine | Port-Scanning, Banner-Grabbing, Service-Erkennung |
|
|
639
|
+
| TLS/SSL-Analyse | Keine | Zertifikatsanalyse, JARM-Fingerprinting, JA4X, Cipher-Enumeration, SNI-Tests |
|
|
640
|
+
| SSH-Probing | Keine | Protokollversion, Algorithmus-Audit, Software-Erkennung |
|
|
641
|
+
| HTTP-Analyse | Keine | Header-Fingerprinting, Favicon-Hashing, Cookie-Analyse, Methoden-Enumeration, CORS |
|
|
642
|
+
| Web-Erkennung | Keine | Technologie-Erkennung, Analytics, Source Maps, WebSocket, GraphQL, SPA-Frameworks |
|
|
643
|
+
| Pfad-Erkennung | Keine | Sensible Dateien, Git-Leaks, Debug-Endpunkte, API-Versionen, robots.txt |
|
|
644
|
+
| DNS-Aufloesung | Keine | Eintrags-Enumeration, E-Mail-Auth-Analyse, SaaS-Erkennung, Server-Fingerprinting |
|
|
645
|
+
| WAF/CDN-Erkennung | Keine | WAF-Identifikation, CDN-Erkennung, WAF-Fingerprinting |
|
|
646
|
+
| Timing-Analyse | Keine | Antwortzeit-Baseline, Taktabweichungs-Erkennung |
|
|
647
|
+
| HTTP/2 & HTTP/3 | Keine | HTTP/2-Erkennung und Fingerprinting, HTTP/3 Alt-Svc-Erkennung |
|
|
648
|
+
| SMTP-Probing | Keine | SMTP-Banner-Analyse, STARTTLS-Pruefung |
|
|
649
|
+
| IoT/Embedded | Keine | IoT-Geraeteerkennung, UPnP/SSDP-Erkennung |
|
|
650
|
+
| Anwendungserkennung | Keine | CMS-, Framework- und E-Commerce-Plattform-Identifikation |
|
|
651
|
+
| Service-Probing | Keine | MySQL-, PostgreSQL-, Redis-, FTP-, VNC/RDP-Fingerprinting |
|
|
652
|
+
| Infrastruktur-Erkennung | Keine | Cloud-Anbieter-, Hosting-Anbieter-, CDN-Identifikation |
|
|
653
|
+
| Korrelationsengine | Keine | Signal-Konsistenz, Honeypot-Erkennung, Spoofing-Erkennung, Topologie-Mapping |
|
|
654
|
+
| Identifikationsengine | Keine | Hash-basierte Identifikation, C2-Erkennung, Signatur-Matching |
|
|
655
|
+
| [Shodan](https://www.shodan.io) | `SHODAN_API_KEY` | Host-Intelligence — offene Ports, Banner, Schwachstellen, OS-Erkennung |
|
|
656
|
+
| [Censys](https://censys.io) | `CENSYS_API_ID` | Host-Daten — Services, TLS-Zertifikate, autonome Systeminformationen |
|
|
657
|
+
| [SecurityTrails](https://securitytrails.com) | `SECURITYTRAILS_API_KEY` | WAF-Ursprungserkennung, passive DNS-Historie, historische Eintraege |
|
|
658
|
+
| [VirusTotal](https://www.virustotal.com) | `VIRUSTOTAL_API_KEY` | Domain/IP-Reputation, Erkennungsergebnisse, DNS-Historie, Kategorien |
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
|
|
662
|
+
## Architektur
|
|
663
|
+
|
|
664
|
+
```
|
|
665
|
+
src/
|
|
666
|
+
index.ts # CLI-Einstiegspunkt (--help, --list, --tool, stdio-Server)
|
|
667
|
+
protocol/
|
|
668
|
+
mcp-server.ts # MCP-Server-Setup (stdio-Transport)
|
|
669
|
+
tools.ts # Tool-Registry — alle 13 zusammengesetzten Tools hier registriert
|
|
670
|
+
types/
|
|
671
|
+
index.ts # Gemeinsame Typen (ToolDef, ToolContext, ToolResult)
|
|
672
|
+
utils/
|
|
673
|
+
rate-limiter.ts # Anbieter-spezifischer Rate Limiter
|
|
674
|
+
cache.ts # TTL-Cache fuer API-Antworten
|
|
675
|
+
require-key.ts # API-Schluessel-Validierungshelfer
|
|
676
|
+
murmurhash3.ts # MurmurHash3 fuer Favicon-Hashing
|
|
677
|
+
composite/ # 13 zusammengesetzte Tool-Orchestratoren
|
|
678
|
+
recon.ts # Vollstaendiger Aufklaerungs-Orchestrator (quick/standard/deep)
|
|
679
|
+
scan-ports.ts # Port-Scanning-Komposit
|
|
680
|
+
scan-tls.ts # TLS-Analyse-Komposit
|
|
681
|
+
scan-dns.ts # DNS-Intelligence-Komposit
|
|
682
|
+
scan-http.ts # HTTP-Fingerprinting-Komposit
|
|
683
|
+
scan-paths.ts # Pfad-Erkennungs-Komposit
|
|
684
|
+
scan-waf.ts # WAF/CDN-Erkennungs-Komposit
|
|
685
|
+
scan-services.ts # Service-Probing-Komposit
|
|
686
|
+
analyze.ts # Passive Analyse-Komposit
|
|
687
|
+
correlate.ts # Korrelationsengine-Komposit
|
|
688
|
+
enumerate.ts # Scope-Erweiterungs-Komposit
|
|
689
|
+
osint.ts # OSINT-Anreicherungs-Komposit
|
|
690
|
+
meta.ts # Server-Meta-Komposit
|
|
691
|
+
helpers.ts # Gemeinsame Komposit-Helfer
|
|
692
|
+
tcp/ # TCP-Probing-Techniken (3)
|
|
693
|
+
tls/ # TLS/SSL-Analyse-Techniken (8)
|
|
694
|
+
ssh/ # SSH-Probing-Techniken (3)
|
|
695
|
+
http/ # HTTP-Fingerprinting-Techniken (16)
|
|
696
|
+
web/ # Web-Technologie-Erkennungstechniken (9)
|
|
697
|
+
path/ # Pfad-Erkennungstechniken (5)
|
|
698
|
+
dns/ # DNS-Intelligence-Techniken (7)
|
|
699
|
+
waf/ # WAF/CDN-Erkennungstechniken (4)
|
|
700
|
+
timing/ # Timing-Analyse-Techniken (2)
|
|
701
|
+
h2/ # HTTP/2 & HTTP/3-Techniken (3)
|
|
702
|
+
smtp/ # SMTP-Probing-Techniken (2)
|
|
703
|
+
iot/ # IoT/Embedded-Erkennungstechniken (2)
|
|
704
|
+
app/ # Anwendungserkennungstechniken (3)
|
|
705
|
+
service/ # Service-Probing-Techniken (5)
|
|
706
|
+
infra/ # Infrastruktur-Erkennungstechniken (3)
|
|
707
|
+
correlation/ # Korrelationsengine (5)
|
|
708
|
+
identify/ # Identifikationsengine (3)
|
|
709
|
+
passive/ # Passive Analyse (3)
|
|
710
|
+
osint/ # OSINT-Anreicherungstechniken (6)
|
|
711
|
+
enum/ # Enumerationstechniken (8)
|
|
712
|
+
meta/ # Meta-Tools (3)
|
|
713
|
+
data/ # Signaturdatenbanken und Musterbibliotheken
|
|
714
|
+
jarm-signatures.ts # Bekannte JARM-Fingerprints (C2, Server, CDNs)
|
|
715
|
+
waf-signatures.ts # WAF-Erkennungssignaturen
|
|
716
|
+
service-banners.ts # Service-Banner-Muster
|
|
717
|
+
tech-patterns.ts # Technologie-Erkennungsmuster
|
|
718
|
+
favicon-hashes.ts # Bekannte Favicon-MurmurHash3-Werte
|
|
719
|
+
c2-signatures.ts # C2-Framework-Signaturen
|
|
720
|
+
... # 15+ Signatur-/Musterdatenbanken
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
**Design-Entscheidungen:**
|
|
724
|
+
|
|
725
|
+
- **13 zusammengesetzte Tools, 103 Techniken** — Der Agent ruft High-Level-Tools auf (`recon`, `scan_tls`, `scan_http`). Jedes Komposit orchestriert mehrere Low-Level-Techniken und gibt korrelierte Ergebnisse zurueck. Dies reduziert den Tool-Aufruf-Overhead bei Beibehaltung der Granularitaet.
|
|
726
|
+
- **21 Anbieter, 1 Server** — Jede Fingerprinting-Ebene ist ein unabhaengiges Modul. Der Komposit-Orchestrator waehlt Techniken basierend auf Kontext und Tiefe.
|
|
727
|
+
- **Aktiv-zuerst, OSINT-optional** — 80+ Techniken funktionieren durch direktes Probing des Ziels ohne API-Schluessel. OSINT-Anbieter (Shodan, Censys, VirusTotal, SecurityTrails) fuegen Anreicherung hinzu, sind aber nie erforderlich.
|
|
728
|
+
- **Anbieter-spezifische Rate Limiter** — Jeder Anbieter hat seine eigene `RateLimiter`-Instanz. Aktives Probing ist ratenbegrenzt, um Erkennung zu vermeiden; OSINT-APIs sind auf ihre Kontingente kalibriert.
|
|
729
|
+
- **TTL-Caching** — DNS-Eintraege (10 Min.), OSINT-Ergebnisse (15 Min.), CT-Logs (30 Min.) werden gecacht, um redundante Abfragen in Multi-Tool-Workflows zu vermeiden.
|
|
730
|
+
- **Graceful Degradation** — Fehlende API-Schluessel bringen den Server nicht zum Absturz. OSINT-Tools geben beschreibende Meldungen zurueck: "Setzen Sie SHODAN_API_KEY, um die Shodan Host-Abfrage zu aktivieren."
|
|
731
|
+
- **3 Abhaengigkeiten** — `@modelcontextprotocol/sdk`, `zod` und `cheerio`. Alle Netzwerk-I/O ueber natives `fetch()` und Node.js `net`/`tls`/`dns`-Module. Kein nmap, keine externen Binaries.
|
|
732
|
+
|
|
733
|
+
---
|
|
734
|
+
|
|
735
|
+
## Einschraenkungen
|
|
736
|
+
|
|
737
|
+
- OSINT-Tools (Shodan, Censys, VirusTotal, SecurityTrails) erfordern API-Schluessel fuer ihre jeweiligen Techniken
|
|
738
|
+
- Censys Free-Tier auf 250 Abfragen/Monat begrenzt
|
|
739
|
+
- VirusTotal Free-Tier auf 500 Abfragen/Tag begrenzt
|
|
740
|
+
- Port-Scanning verwendet TCP Connect (kein SYN-Scan) — weniger heimlich als nmap, erfordert aber keine Root-Rechte
|
|
741
|
+
- JARM-Fingerprinting erfordert direkten TCP-Zugang zum Ziel (kann durch Firewalls blockiert werden)
|
|
742
|
+
- UPnP/SSDP-Erkennung funktioniert nur in lokalen Netzwerken
|
|
743
|
+
- Service-Probing (MySQL, PostgreSQL, Redis) verbindet, authentifiziert aber nicht
|
|
744
|
+
- Subdomain-Enumeration basiert auf CT-Logs und passiven Quellen (kein Brute-Force)
|
|
745
|
+
- macOS / Linux getestet (Windows nicht getestet)
|
|
746
|
+
|
|
747
|
+
---
|
|
748
|
+
|
|
749
|
+
## Teil der MCP-Sicherheitssuite
|
|
750
|
+
|
|
751
|
+
| Projekt | Bereich | Tools |
|
|
752
|
+
|---------|---------|-------|
|
|
753
|
+
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | Browser-basierte Sicherheitstests | 39 Tools, Firefox, Injection-Tests |
|
|
754
|
+
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | Cloud-Sicherheit (AWS/Azure/GCP) | 38 Tools, 60+ Checks |
|
|
755
|
+
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | GitHub-Sicherheitslage | 39 Tools, 45 Checks |
|
|
756
|
+
| [cve-mcp](https://github.com/badchars/cve-mcp) | Schwachstellen-Intelligence | 23 Tools, 5 Quellen |
|
|
757
|
+
| [osint-mcp-server](https://github.com/badchars/osint-mcp-server) | OSINT & Aufklaerung | 37 Tools, 12 Quellen |
|
|
758
|
+
| [darknet-mcp-server](https://github.com/badchars/darknet-mcp-server) | Darknet & Bedrohungsintelligenz | 66 Tools, 16 Quellen |
|
|
759
|
+
| **fingerprint-mcp** | **Universelles digitales Fingerprinting** | **13 Tools, 103 Techniken, 21 Anbieter** |
|
|
760
|
+
|
|
761
|
+
---
|
|
762
|
+
|
|
763
|
+
<p align="center">
|
|
764
|
+
<b>Nur fuer autorisierte Sicherheitstests und -bewertungen.</b><br>
|
|
765
|
+
Stellen Sie immer sicher, dass Sie eine ordnungsgemaesse Autorisierung haben, bevor Sie Fingerprinting auf einem Ziel durchfuehren.
|
|
766
|
+
</p>
|
|
767
|
+
|
|
768
|
+
<p align="center">
|
|
769
|
+
<a href="LICENSE">AGPL-3.0-Lizenz</a> • Erstellt mit Bun + TypeScript
|
|
770
|
+
</p>
|