
أداة بصمة خدمات الشبكة لمايكروسوفت
الإصدار: 1.0
المؤلف: Laurent Gaffie
الشركة: Secorizon
MSFinger هي أداة عالية الأداء لبصمة الشبكات، مصممة لاستطلاع الشبكات الداخلية. تحدد بسرعة خدمات مايكروسوفت، وتكتشف إعدادات الأمان، وتسلط الضوء على نقاط الضعف المحتملة عبر بروتوكولات SMB و LDAP و LDAPS.
الميزات الرئيسية:
MSFinger مكتوبة بلغة بايثون نقية بالكامل. لا تتطلب أي تبعيات إضافية بخلاف Python 3.6+.
cd /path/to/MSFinger
chmod +x MSFinger.py
python3 MSFinger.py -i <target> [options]
| الخيار | الوصف | الافتراضي |
|---|---|---|
-i, --ip | عنوان IP الهدف، أو نطاق CIDR، أو نطاق IP | مطلوب* |
-f, --file | ملف يحتوي على الأهداف (هدف واحد في كل سطر) | مطلوب* |
-t, --timeout | مهلة الاتصال بالثواني | 1.0 |
-w, --workers | عدد العمال المتزامنين | 100 |
-d, --database | ملف قاعدة بيانات SQLite لتخزين النتائج | MSFinger.db |
--no-color | تعطيل المخرجات الملونة | معطّل |
* يجب تحديد إما -i أو -f
python3 MSFinger.py -i 192.168.1.10
python3 MSFinger.py -i 192.168.1.0/24
python3 MSFinger.py -i 192.168.1.1-50
python3 MSFinger.py -f targets.txt
مثال على targets.txt:
192.168.1.0/24
10.0.0.1-100
172.16.5.50
# Comments are supported
192.168.2.0/25
# Faster scan with shorter timeout and more workers
python3 MSFinger.py -i 10.0.0.0/16 -t 0.3 -w 200
# More reliable scan with longer timeout
python3 MSFinger.py -i 192.168.1.0/24 -t 1.0 -w 50
python3 MSFinger.py -i 192.168.1.0/24 -d pentest_2026.db
python3 MSFinger.py -i 192.168.1.0/24 --no-color > scan_results.txt
تُعرض النتائج في الوقت الفعلي مع مؤشرات أمنية مرمّزة بالألوان:
[192.168.1.10] SMB: 3.1.1, Signing: required, OS: Windows Server 2022 21H2, Domain: CORP.LOCAL, Boot: 2026-01-01 10:30:15 | SMB1: disabled | Services: RDP, LDAP (signing: required), LDAPS (signing: required, channel binding: required)
معلومات SMB:
SMB: X.X.X - إصدار لهجة SMB (2.0.2, 2.1, 3.0, 3.0.2, 3.1.1)Signing: <status> - مطلوب/مفعّل/معطّلOS: <version> - إصدار ويندوز مع رقم البناءDomain: <name> - اسم مجال/مجموعة عمل NetBIOSBoot: <time> - وقت إقلاع النظام (أو Disabled/Unknown)حالة SMB1:
SMB1: disabled - SMB1 غير مدعوم (آمن)SMB1: supported, Signing: <status> - SMB1 مدعوم (خطر محتمل)الخدمات:
RDP - بروتوكول سطح المكتب البعيد (المنفذ 3389) مفتوحMSSQL - خادم مايكروسوفت SQL (المنفذ 1433) مفتوحLDAP (signing: <status>) - LDAP على المنفذ 389LDAPS (signing: <status>, channel binding: <status>) - LDAPS على المنفذ 636LDAPS (port open, <error>) - منفذ LDAPS يستجيب لكن مصافحة SSL فشلتتخزّن MSFinger جميع نتائج الفحص في قاعدة بيانات SQLite للتخزين الدائم والتحليل.
hosts| العمود | النوع | الوصف |
|---|---|---|
id | INTEGER | المفتاح الأساسي (تزايدي تلقائي) |
ip | TEXT | عنوان IP (فريد) |
hostname | TEXT | اسم المضيف (محجوز للاستخدام المستقبلي) |
os_version | TEXT | إصدار نظام التشغيل |
os_build | INTEGER | رقم بناء نظام التشغيل |
domain | TEXT | اسم المجال/مجموعة العمل |
boot_time | TEXT | طابع زمني لإقلاع النظام |
smb_dialect | TEXT | إصدار بروتوكول SMB |
smb_signing | TEXT | حالة توقيع SMB |
smb1_supported | INTEGER | SMB1 مفعّل (0=لا، 1=نعم) |
smb1_signing | TEXT | حالة توقيع SMB1 |
rdp_open | INTEGER | منفذ RDP مفتوح (0=لا، 1=نعم) |
mssql_open | INTEGER | منفذ MSSQL مفتوح (0=لا، 1=نعم) |
ldap_signing | TEXT | حالة توقيع LDAP |
ldaps_signing | TEXT | حالة توقيع LDAPS |
ldaps_channel_binding | TEXT | حالة ربط قناة LDAPS |
ldaps_error | TEXT | خطأ اتصال LDAPS (إن وجد) |
scan_time | TIMESTAMP | طابع زمني للفحص الأول |
last_seen | TIMESTAMP | طابع زمني لأحدث فحص |
# View all vulnerable hosts (no SMB signing)
sqlite3 MSFinger.db "SELECT ip, os_version, smb_signing FROM hosts WHERE smb_signing != 'required'"
# Find hosts with LDAP signing disabled
sqlite3 MSFinger.db "SELECT ip, domain, ldap_signing FROM hosts WHERE ldap_signing = 'not_required'"
# List all Windows Server 2022 hosts
sqlite3 MSFinger.db "SELECT ip, os_version, domain FROM hosts WHERE os_version LIKE '%Server 2022%'"
# Export to CSV
sqlite3 -header -csv MSFinger.db "SELECT * FROM hosts" > results.csv
# Count hosts by OS
sqlite3 MSFinger.db "SELECT os_version, COUNT(*) FROM hosts GROUP BY os_version"
البروتوكولات المختبرة:
المعلومات التي يتم جمعها:
required - الخادم يطلب توقيع الرسائل (آمن)enabled - الخادم يدعم التوقيع لكنه لا يطلبهdisabled - لا يوجد دعم للتوقيع (ضعيف)تخطيط إصدارات نظام التشغيل:
| نطاق البناء | نظام التشغيل |
|---|---|
| 10240 | Windows 10 1507 |
| 14393 | Windows 10 1607 / Server 2016 |
| 17763 | Windows 10 1809 / Server 2019 |
| 19041-19045 | Windows 10 20H2 - 22H2 |
| 20348 | Windows Server 2022 21H2 |
| 22000+ | Windows 11 |
| 25398 | Windows Server 2025 |
يختبر الربط المجهول لتحديد متطلبات التوقيع:
يختبر اتصال SSL/TLS مع ربط LDAP:
النتائج المحتملة:
signing: required, channel binding: required - أقصى درجات الأمان (آمن)signing: not_required, channel binding: not_required - لا توجد حمايات (ضعيف)port open, SSL handshake failed - المنفذ يستجيب لكن تفاوض SSL فشلport open, Connection error: 104 - تم قطع الاتصال من الطرف المقابلتوقيع SMB معطّل:
توقيع LDAP غير مطلوب:
LdapEnforceChannelBinding=2 و LDAPServerIntegrity=2 في السجل (Registry)LDAPS بدون ربط قناة: