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