Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/secorizon/msfinger
RicognizioneMappatura della ReteAnalisi delle VulnerabilitàRaccolta InformazioniPenetration TestingAnalisi DNS
GitHubsecorizon/msfinger

MSFinger

Strumento di fingerprinting dei servizi di rete Microsoft

Vedi Repository
7577 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
MSFinger — Strumento di fingerprinting dei servizi di rete Microsoft | Kitploit
Sito web

MSFinger - Strumento di fingerprinting dei servizi di rete Microsoft

Versione: 1.0
Autore: Laurent Gaffie
Azienda: Secorizon

Panoramica

MSFinger è uno strumento di fingerprinting di rete ad alte prestazioni progettato per la ricognizione di reti interne. Identifica rapidamente i servizi Microsoft, rileva le configurazioni di sicurezza ed evidenzia le potenziali vulnerabilità nei protocolli SMB, LDAP e LDAPS.

Caratteristiche principali:

  • Scansione concorrente veloce ottimizzata per reti interne (timeout predefinito di 1 secondo)
  • Rilevamento di versione e firma SMB/SMB2/SMB3
  • Rilevamento di firma e channel binding LDAP/LDAPS
  • Identificazione della versione del sistema operativo con mappatura del numero di build
  • Database SQLite per risultati di scansione persistenti
  • Output con codifica a colori che evidenzia i rischi di sicurezza
  • Supporto per IP singoli, range CIDR, intervalli di IP e input da file

Installazione

MSFinger è scritto in puro Python. Non sono richieste dipendenze aggiuntive oltre a Python 3.6+.

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

Utilizzo

Sintassi di base

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

Opzioni della riga di comando

* È necessario specificare -i oppure -f


Esempi

Scansione di un singolo host

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

Scansione di sottorete (CIDR)

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

Scansione di intervallo IP

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

Più intervalli da file

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

Esempio di 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 e worker personalizzati

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

Database personalizzato

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

Disabilita i colori (per il logging)

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

Formato di output

Output della console

I risultati vengono visualizzati in tempo reale con indicatori di sicurezza codificati a colori:

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)

Codifica dei colori

  • 🟢 VERDE: Configurazione sicura (firma obbligatoria)
  • 🟡 GIALLO: Avviso (abilitata ma non obbligatoria, oppure porta aperta con errori)
  • 🔴 ROSSO: Vulnerabile (firma disabilitata o non obbligatoria)
  • 🔵 BLU: Informativo (SMB1 disabilitato, stato del servizio)

Campi di output

Informazioni SMB:

  • SMB: X.X.X - Versione del dialetto SMB (2.0.2, 2.1, 3.0, 3.0.2, 3.1.1)
  • Signing: <status> - required (obbligatoria)/enabled (abilitata)/disabled (disabilitata)
  • OS: <version> - Versione di Windows con numero di build
  • Domain: <name> - Nome del dominio/gruppo di lavoro NetBIOS
  • Boot: <time> - Ora di avvio del sistema (oppure Disabled/Unknown - disabilitata/sconosciuta)

Stato SMB1:

  • SMB1: disabled - SMB1 non supportato (sicuro)
  • SMB1: supported, Signing: <status> - SMB1 abilitato (rischio potenziale)

Servizi:

  • RDP - Protocollo Remote Desktop (porta 3389) aperta
  • MSSQL - Microsoft SQL Server (porta 1433) aperta
  • LDAP (signing: <status>) - LDAP sulla porta 389
  • LDAPS (signing: <status>, channel binding: <status>) - LDAPS sulla porta 636
  • LDAPS (port open, <error>) - Porta LDAPS che risponde ma handshake SSL fallito

Schema del database

MSFinger memorizza tutti i risultati delle scansioni in un database SQLite per l'archiviazione e l'analisi persistenti.

Tabella: hosts

Comportamento del database

  • Database esistente: I record vengono aggiornati con i dati della scansione più recente (operazione upsert)
  • Nuovo database: Creato automaticamente con lo schema appropriato
  • IP duplicati: L'ultimo risultato della scansione sovrascrive i dati precedenti per lo stesso IP

Interrogazione del database

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"

Dettagli di rilevamento

Rilevamento SMB/SMB2/SMB3

Protocolli testati:

  • SMB1 (protocollo legacy, rischio per la sicurezza se abilitato)
  • SMB2/3 (protocolli moderni con più dialetti)

Informazioni raccolte:

  1. Versione del dialetto: 2.0.2, 2.1, 3.0, 3.0.2, 3.1.1
  2. Stato della firma:
    • required - Il server richiede la firma dei messaggi (sicuro)
    • enabled - Il server supporta ma non richiede la firma
    • disabled - Nessun supporto alla firma (vulnerabile)
  3. Versione del sistema operativo: Estratta dalla challenge NTLMSSP
  4. Numero di build: Numero di build di Windows per l'identificazione precisa della versione
  5. Dominio: Nome del dominio o gruppo di lavoro NetBIOS
  6. Ora di avvio: Timestamp di avvio del sistema (se disponibile)

Mappatura delle versioni del sistema operativo:

Rilevamento LDAP (porta 389)

Verifica il bind anonimo per determinare i requisiti di firma:

  • Codice risultato 0: Successo - la firma NON è richiesta (vulnerabile agli attacchi relay)
  • Codice risultato 8: Autenticazione forte richiesta - la firma È richiesta (sicuro)
  • Altri codici: Vari errori di autenticazione

Rilevamento LDAPS (porta 636)

Verifica la connessione SSL/TLS con bind LDAP:

  1. Handshake SSL: Tenta una connessione TLS con supporto permissivo dei cipher
  2. Rilevamento della firma: Verifica la firma dei messaggi LDAP su SSL
  3. Channel Binding: Rileva se il channel binding TLS è imposto

Risultati possibili:

  • signing: required, channel binding: required - Massima sicurezza (sicuro)
  • signing: not_required, channel binding: not_required - Nessuna protezione (vulnerabile)
  • port open, SSL handshake failed - La porta risponde ma la negoziazione SSL è fallita
  • port open, Connection error: 104 - Connessione reimpostata dal peer

Analisi della sicurezza

Riscontri critici (🔴 Rosso)

Firma SMB disabilitata:

  • Vulnerabile agli attacchi relay SMB
  • L'attaccante può intercettare e inoltrare l'autenticazione
  • Raccomandazione: Abilitare la firma SMB tramite Criteri di gruppo

Firma LDAP non richiesta:

  • Vulnerabile agli attacchi relay LDAP
  • Le credenziali possono essere inoltrate ad altri servizi
  • Raccomandazione: Impostare LdapEnforceChannelBinding=2 e LDAPServerIntegrity=2 nel registro di sistema

LDAPS senza channel binding:

  • Vulnerabile al relay LDAPS nonostante la crittografia
  • Raccomandazione: Abilitare la protezione estesa per l'autenticazione (Extended Protection for Authentication)

Avvisi (🟡 Giallo)

Firma SMB abilitata (non richiesta):

  • Meglio che disabilitata, ma non imposta
  • I client possono scegliere di non firmare
  • Raccomandazione: Passare da "enabled" a "required"

SMB1 supportato:

  • Protocollo legacy con vulnerabilità note
  • Dovrebbe essere disabilitato a meno che non sia richiesto da sistemi legacy
  • Raccomandazione: Disabilitare SMBv1 tramite PowerShell o Criteri di gruppo

Configurazioni corrette (🟢 Verde)

Firma SMB obbligatoria:

  • Tutto il traffico SMB è firmato crittograficamente
  • Previene gli attacchi relay

Firma LDAP/LDAPS obbligatoria:

  • I messaggi LDAP sono firmati
  • Protegge da manomissioni e attacchi relay

Channel binding imposto:

  • Il channel binding TLS previene il relay SSL
  • Massimo livello di sicurezza LDAPS

Ottimizzazione delle prestazioni

Raccomandazioni sul timeout

Considerazioni sulla memoria

Ogni worker consuma una quantità minima di memoria (~1-2MB). Regola i worker in base alle risorse di sistema:

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

Risoluzione dei problemi

Nessun risultato visualizzato

  1. Verificare la connettività di rete:

    root@kitploit:~
    ping <target_ip>
    telnet <target_ip> 445
    
  2. Aumentare il timeout:

    root@kitploit:~
    python3 MSFinger.py -i <target> -t 3.0
    
  3. Verificare le regole del firewall:

    • Assicurarsi che le porte 445, 389, 636, 3389, 1433 siano accessibili
    • Verificare che nessun firewall basato su host blocchi le scansioni

Errori di connessione LDAPS

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

  • Il server potrebbe richiedere l'autenticazione con certificato client
  • Il server potrebbe utilizzare una configurazione SSL/TLS non standard
  • Provare a usare openssl s_client -connect <ip>:636 per la diagnosi

Database bloccato

Se si esegue la scansione da più processi:

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 &

Errori di autorizzazione

Assicurarsi che lo script sia eseguibile:

root@kitploit:~
chmod +x MSFinger.py

Esempi di integrazione

Integrazione con Nmap

Identificare prima gli host SMB attivi, poi eseguire il fingerprinting:

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

Scansione pianificata

Monitorare le modifiche della rete con 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

Esportazione PowerShell

Interrogare e correggere da 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
}

Crediti

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


Licenza

Questo programma è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation, sia la versione 3 della licenza, sia (a tua scelta) qualsiasi versione successiva.

Questo programma è distribuito nella speranza che possa essere utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedere la GNU General Public License per maggiori dettagli.

Scarica lo strumento
OpzioneDescrizionePredefinito
-i, --ipIP di destinazione, range CIDR o intervallo di IPObbligatorio*
-f, --fileFile contenente i target (uno per riga)Obbligatorio*
-t, --timeoutTimeout di connessione in secondi1.0
-w, --workersNumero di worker concorrenti100
-d, --databaseFile di database SQLite per i risultatiMSFinger.db
--no-colorDisabilita l'output coloratoDisabilitato
ColonnaTipoDescrizione
idINTEGERChiave primaria (auto-incremento)
ipTEXTIndirizzo IP (univoco)
hostnameTEXTHostname (riservato per uso futuro)
os_versionTEXTVersione del sistema operativo
os_buildINTEGERNumero di build del sistema operativo
domainTEXTNome del dominio/gruppo di lavoro
boot_timeTEXTTimestamp di avvio del sistema
smb_dialectTEXTVersione del protocollo SMB
smb_signingTEXTStato della firma SMB
smb1_supportedINTEGERSMB1 abilitato (0=no, 1=sì)
smb1_signingTEXTStato della firma SMB1
rdp_openINTEGERPorta RDP aperta (0=no, 1=sì)
mssql_openINTEGERPorta MSSQL aperta (0=no, 1=sì)
ldap_signingTEXTStato della firma LDAP
ldaps_signingTEXTStato della firma LDAPS
ldaps_channel_bindingTEXTStato del channel binding LDAPS
ldaps_errorTEXTErrore di connessione LDAPS (se presente)
scan_timeTIMESTAMPTimestamp della prima scansione
last_seenTIMESTAMPTimestamp della scansione più recente
Intervallo di buildSistema operativo
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
Tipo di reteTimeout consigliatoWorker
LAN interna veloce (1Gbps+)0.5s200-300
Rete interna normale1.0s (predefinito)100-150
Rete lenta/wireless2.0-3.0s50-100
Connessione VPN3.0-5.0s30-50