Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
MSFinger — Outil d'empreinte des services réseau Microsoft | Kitploit
Outils/GitHubGitHub/secorizon/msfinger
ReconnaissanceCartographie RéseauAnalyse des VulnérabilitésCollecte d'InformationsTests d'IntrusionAnalyse DNS
GitHubsecorizon/msfinger

MSFinger

Outil d'empreinte des services réseau Microsoft

Voir le dépôt
757il y a 7 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

MSFinger - Outil d'empreinte réseau Microsoft

Version: 1.0
Auteur : Laurent Gaffie
Société : Secorizon

Aperçu

MSFinger est un outil d'empreinte réseau haute performance conçu pour la reconnaissance de réseaux internes. Il identifie rapidement les services Microsoft, détecte les configurations de sécurité et met en évidence les vulnérabilités potentielles sur les protocoles SMB, LDAP et LDAPS.

Fonctionnalités clés :

  • Scan concurrent rapide optimisé pour les réseaux internes (timeout de 1 seconde par défaut)
  • Détection de version et de signature SMB/SMB2/SMB3
  • Détection de signature et de liaison de canal LDAP/LDAPS
  • Identification de version OS avec mappage de numéro de build
  • Base de données SQLite pour résultats de scan persistants
  • Sortie colorée mettant en évidence les risques de sécurité
  • Prise en charge des IP uniques, plages CIDR, plages IP et entrée fichier

Installation

MSFinger est écrit en Python pur. Aucune dépendance supplémentaire requise au-delà de Python 3.6+.

root@kitploit:~
cd /path/to/MSFinger
chmod +x MSFinger.py

Utilisation

Syntaxe de base

root@kitploit:~
python3 MSFinger.py -i <target> [options]

Options en ligne de commande

* Soit -i ou -f doit être spécifié


Exemples

Scan d'un seul hôte

root@kitploit:~
python3 MSFinger.py -i 192.168.1.10

Scan de sous-réseau (CIDR)

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24

Scan de plage IP

root@kitploit:~
python3 MSFinger.py -i 192.168.1.1-50

Plusieurs plages depuis un fichier

root@kitploit:~
python3 MSFinger.py -f targets.txt

Exemple targets.txt :

root@kitploit:~
192.168.1.0/24
10.0.0.1-100
172.16.5.50
# Comments are supported
192.168.2.0/25

Timeout et workers personnalisés

root@kitploit:~
# 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

Base de données personnalisée

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24 -d pentest_2026.db

Désactiver les couleurs (pour journalisation)

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24 --no-color > scan_results.txt

Format de sortie

Sortie console

Les résultats sont affichés en temps réel avec des indicateurs de sécurité colorés :

root@kitploit:~
[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)

Code couleur

  • 🟢 VERT : Configuration sécurisée (signature requise)
  • 🟡 JAUNE : Avertissement (activé mais non requis, ou port ouvert avec erreurs)
  • 🔴 ROUGE : Vulnérable (signature désactivée ou non requise)
  • 🔵 BLEU : Informationnel (SMB1 désactivé, statut du service)

Champs de sortie

Informations SMB :

  • SMB: X.X.X - Version du dialecte SMB (2.0.2, 2.1, 3.0, 3.0.2, 3.1.1)
  • Signing: <status> - required/enabled/disabled
  • OS: <version> - Version Windows avec numéro de build
  • Domain: <name> - Nom de domaine/groupe de travail NetBIOS
  • Boot: <time> - Heure de démarrage du système (ou Disabled/Unknown)

Statut SMB1 :

  • SMB1: disabled - SMB1 non pris en charge (sécurisé)
  • SMB1: supported, Signing: <status> - SMB1 activé (risque potentiel)

Services :

  • RDP - Protocole Remote Desktop (port 3389) ouvert
  • MSSQL - Microsoft SQL Server (port 1433) ouvert
  • LDAP (signing: <status>) - LDAP sur le port 389
  • LDAPS (signing: <status>, channel binding: <status>) - LDAPS sur le port 636
  • LDAPS (port open, <error>) - Port LDAPS répondant mais échec de la poignée de main SSL

Schéma de base de données

MSFinger stocke tous les résultats de scan dans une base de données SQLite pour un stockage et une analyse persistants.

Table : hosts

Comportement de la base de données

  • Base de données existante : Les enregistrements sont mis à jour avec les dernières données de scan (opération upsert)
  • Nouvelle base de données : Créée automatiquement avec le schéma approprié
  • IPs en double : Le dernier résultat de scan écrase les données précédentes pour la même IP

Interrogation de la base de données

root@kitploit:~
# 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"

Détails de détection

Détection SMB/SMB2/SMB3

Protocoles testés :

  • SMB1 (protocole hérité, risque de sécurité si activé)
  • SMB2/3 (protocoles modernes avec plusieurs dialectes)

Informations recueillies :

  1. Version du dialecte : 2.0.2, 2.1, 3.0, 3.0.2, 3.1.1
  2. Statut de signature :
    • required - Le serveur exige la signature des messages (sécurisé)
    • enabled - Le serveur prend en charge mais n'exige pas la signature
    • disabled - Aucune prise en charge de signature (vulnérable)
  3. Version OS : Extraite du challenge NTLMSSP
  4. Numéro de build : Numéro de build Windows pour une identification précise de version
  5. Domaine : Nom de domaine ou groupe de travail NetBIOS
  6. Heure de démarrage : Horodatage de démarrage du système (si disponible)

Correspondance des versions OS :

Détection LDAP (Port 389)

Teste la liaison anonyme pour déterminer les exigences de signature :

  • Code résultat 0 : Succès - signature NON requise (vulnérable aux attaques par relais)
  • Code résultat 8 : Authentification forte requise - signature EXIGÉE (sécurisé)
  • Autres codes : Diverses erreurs d'authentification

Détection LDAPS (Port 636)

Teste la connexion SSL/TLS avec une liaison LDAP :

  1. Poignée de main SSL : Tente une connexion TLS avec prise en charge permissive des chiffrements
  2. Détection de signature : Teste la signature des messages LDAP sur SSL
  3. Liaison de canal : Détecte si la liaison de canal TLS est appliquée

Résultats possibles :

  • signing: required, channel binding: required - Sécurité maximale (sécurisé)
  • signing: not_required, channel binding: not_required - Aucune protection (vulnérable)
  • port open, SSL handshake failed - Port répondant mais échec de négociation SSL
  • port open, Connection error: 104 - Connexion réinitialisée par le pair

Analyse de sécurité

Constatations critiques (🔴 Rouge)

Signature SMB désactivée :

  • Vulnérable aux attaques par relais SMB
  • Un attaquant peut intercepter et relayer l'authentification
  • Recommandation : Activer la signature SMB via la stratégie de groupe

Signature LDAP non requise :

  • Vulnérable aux attaques par relais LDAP
  • Les identifiants peuvent être relayés à d'autres services
  • Recommandation : Définir LdapEnforceChannelBinding=2 et LDAPServerIntegrity=2 dans le registre

LDAPS sans liaison de canal :

  • Vulnérable au relais LDAPS malgré le chiffrement
  • Recommandation : Activer la Protection étendue pour l'authentification

Avertissements (🟡 Jaune)

Signature SMB activée (non requise) :

  • Mieux que désactivé mais non appliqué
  • Les clients peuvent choisir de ne pas signer
  • Recommandation : Passer de "activé" à "requis"

SMB1 pris en charge :

  • Protocole hérité avec des vulnérabilités connues
  • Devrait être désactivé sauf si nécessaire pour des systèmes hérités
  • Recommandation : Désactiver SMBv1 via PowerShell ou stratégie de groupe

Bonnes configurations (🟢 Vert)

Signature SMB requise :

  • Tout le trafic SMB est signé cryptographiquement
  • Empêche les attaques par relais

Signature LDAP/LDAPS requise :

  • Les messages LDAP sont signés
  • Protège contre la falsification et le relais

Liaison de canal appliquée :

  • La liaison de canal TLS empêche le relais SSL
  • Plus haut niveau de sécurité LDAPS

Réglage des performances

Recommandations de timeout

Considérations mémoire

Chaque worker consomme une mémoire minimale (~1-2 Mo). Ajustez les workers en fonction des ressources système :

root@kitploit:~
# High-performance scan (requires good CPU/RAM)
python3 MSFinger.py -i 10.0.0.0/8 -t 0.5 -w 500

# Conservative scan (low resource usage)
python3 MSFinger.py -i 192.168.0.0/16 -t 2.0 -w 50

Dépannage

Aucun résultat n'apparaît

  1. Vérifier la connectivité réseau :

    root@kitploit:~
    ping <target_ip>
    telnet <target_ip> 445
    
  2. Augmenter le timeout :

    root@kitploit:~
    python3 MSFinger.py -i <target> -t 3.0
    
  3. Vérifier les règles de pare-feu :

    • Assurez-vous que les ports 445, 389, 636, 3389, 1433 sont accessibles
    • Vérifiez qu'aucun pare-feu basé sur l'hôte ne bloque les scans

Erreurs de connexion LDAPS

"SSL handshake failed" ou "Connection error: 104" :

  • Le serveur peut exiger une authentification par certificat client
  • Le serveur peut utiliser une configuration SSL/TLS non standard
  • Essayez d'utiliser openssl s_client -connect <ip>:636 pour diagnostiquer

Base de données verrouillée

Si vous scannez depuis plusieurs processus :

root@kitploit:~
# Use different database files
python3 MSFinger.py -i 192.168.1.0/24 -d scan1.db &
python3 MSFinger.py -i 192.168.2.0/24 -d scan2.db &

Erreurs de permission

Assurez-vous que le script est exécutable :

root@kitploit:~
chmod +x MSFinger.py

Exemples d'intégration

Intégration Nmap

Identifiez d'abord les hôtes SMB actifs, puis analysez les empreintes :

root@kitploit:~
nmap -p445 --open -oG - 192.168.1.0/24 | awk '/445\/open/{print $2}' > smb_hosts.txt
python3 MSFinger.py -f smb_hosts.txt

Scan planifié

Surveillez les changements réseau avec cron :

root@kitploit:~
# Add to crontab (every day at 2 AM)
0 2 * * * /usr/bin/python3 /path/to/MSFinger.py -i 192.168.1.0/24 -d /var/scans/daily_scan.db

Export PowerShell

Interrogez et corrigez depuis PowerShell :

root@kitploit:~
# Install SQLite PowerShell module
Install-Module -Name SimplySql

# Query vulnerable hosts
Open-SQLiteConnection -DataSource "MSFinger.db"
$vulnerable = Invoke-SqlQuery -Query "SELECT ip FROM hosts WHERE smb_signing != 'required'"
Close-SqlConnection

# Remediate
foreach ($host in $vulnerable) {
    Set-SmbServerConfiguration -ComputerName $host.ip -RequireSecuritySignature $true -Force
}

Crédits

Auteur : Laurent Gaffie ([email protected])
Licence : GNU General Public License v3.0


Licence

Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la Licence, soit (à votre discrétion) toute version ultérieure.

Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER. Voir la Licence Publique Générale GNU pour plus de détails.

Télécharger l’outil
OptionDescriptionPar défaut
-i, --ipIP cible, plage CIDR ou plage IPRequis*
-f, --fileFichier contenant les cibles (une par ligne)Requis*
-t, --timeoutTimeout de connexion en secondes1.0
-w, --workersNombre de workers simultanés100
-d, --databaseFichier de base de données SQLite pour les résultatsMSFinger.db
--no-colorDésactiver la sortie coloréeDésactivé
ColonneTypeDescription
idINTEGERClé primaire (auto-incrémentée)
ipTEXTAdresse IP (unique)
hostnameTEXTNom d'hôte (réservé pour usage futur)
os_versionTEXTVersion du système d'exploitation
os_buildINTEGERNuméro de build OS
domainTEXTNom de domaine/groupe de travail
boot_timeTEXTHorodatage de démarrage du système
smb_dialectTEXTVersion du protocole SMB
smb_signingTEXTStatut de signature SMB
smb1_supportedINTEGERSMB1 activé (0=non, 1=oui)
smb1_signingTEXTStatut de signature SMB1
rdp_openINTEGERPort RDP ouvert (0=non, 1=oui)
mssql_openINTEGERPort MSSQL ouvert (0=non, 1=oui)
ldap_signingTEXTStatut de signature LDAP
ldaps_signingTEXTStatut de signature LDAPS
ldaps_channel_bindingTEXTStatut de liaison de canal LDAPS
ldaps_errorTEXTErreur de connexion LDAPS (le cas échéant)
scan_timeTIMESTAMPHorodatage du premier scan
last_seenTIMESTAMPHorodatage du scan le plus récent
Plage de buildSystème d'exploitation
10240Windows 10 1507
14393Windows 10 1607 / Server 2016
17763Windows 10 1809 / Server 2019
19041-19045Windows 10 20H2 - 22H2
20348Windows Server 2022 21H2
22000+Windows 11
25398Windows Server 2025
Type de réseauTimeout recommandéWorkers
Réseau local rapide (1 Gbit/s+)0.5s200-300
Réseau interne normal1.0s (défaut)100-150
Réseau lent/sans fil2.0-3.0s50-100
Connexion VPN3.0-5.0s30-50