3. NSE Nmap Scripting Engine
NSE - Nmap Scripting Engine ---
NSE - Nmap Scripting Engine
Introduzione a NSE
L'Nmap Scripting Engine (NSE) consente di estendere le funzionalità di Nmap attraverso script scritti in Lua. Gli script NSE possono eseguire una varietà di operazioni come la raccolta di informazioni, la rilevazione di vulnerabilità, l'autenticazione, la bruteforce e persino l'exploit di sistemi vulnerabili.
Categorie degli Script NSE
Gli script NSE sono suddivisi in diverse categorie:
- auth → Test di autenticazione su vari protocolli.
- broadcast → Scansioni di rete per identificare dispositivi e servizi.
- brute → Attacchi brute-force su login di vari servizi.
- default → Eseguiti con l'opzione
-sC, forniscono informazioni generali. - discovery → Identificazione di host e servizi.
- dos → Test di Denial-of-Service (DoS).
- exploit → Sfruttamento di vulnerabilità conosciute.
- external → Script che richiedono connessioni a risorse esterne.
- fuzzer → Test di fuzzing per identificare vulnerabilità.
- intrusive → Operazioni più aggressive, potenzialmente dannose.
- malware → Rilevamento di malware su sistemi remoti.
- safe → Operazioni non intrusive, sicure.
- version → Rilevamento dettagliato delle versioni dei servizi.
- vuln → Identificazione di vulnerabilità note.
Gestione degli Script NSE
Elencare gli script disponibili
ls /usr/share/nmap/scripts/Cercare uno script specifico
ls /usr/share/nmap/scripts | grep "nome_script"Ottenere informazioni su uno script
nmap --script-help=nome_scriptEseguire uno script specifico
nmap --script=nome_script targetEseguire più script dello stesso tipo
nmap --script=ftp* targetEseguire una scansione con tutti gli script della categoria 'vuln'
nmap --script=vuln targetEsempi Pratici
Scansione di vulnerabilità generali
nmap -sV --script=vuln 192.168.1.1Scansione di servizi FTP e rilevamento di vulnerabilità note
nmap -p 21 --script=ftp-vuln-cve2010-4221 192.168.1.1Forzare le credenziali di accesso su un servizio SSH
nmap --script=ssh-brute -p 22 192.168.1.1Enumerazione delle cartelle condivise SMB
nmap --script=smb-enum-shares -p 445 192.168.1.1Enumerazione di utenti su Active Directory (LDAP)
nmap --script=ldap-search -p 389 192.168.1.1Scrivere uno Script NSE Personalizzato
Un tipico script NSE è composto da:
1. Regole di esecuzione: Quando lo script deve essere eseguito. 2. Funzioni di azione: Cosa fa lo script. 3. Output: Come vengono presentati i risultati.
Esempio di script personalizzato (scan-http-title.nse)
local http = require "http"
local stdnse = require "stdnse"
portrule = function(host, port)
return port.protocol == "tcp" and port.state == "open"
end
action = function(host, port)
local response = http.get(host, port, "/")
if response and response.body then
return stdnse.format_output(true, "Titolo della pagina: " .. response.body:match("<title>(.-)</title>"))
end
return "Nessun titolo trovato."
end
Salvataggio ed esecuzione dello script
1. Salvare il file nella cartella degli script di Nmap:/usr/share/nmap/scripts/scan-http-title.nse
2. Aggiornare il database degli script:
nmap --script-updatedbnmap --script=scan-http-title 192.168.1.1Conclusione
L'Nmap Scripting Engine è uno strumento estremamente potente per ampliare le funzionalità di Nmap. Permette di automatizzare test di sicurezza, rilevare vulnerabilità e personalizzare scansioni avanzate. La conoscenza del linguaggio Lua è utile per scrivere script personalizzati, migliorando le capacità di rilevamento e analisi in attività di penetration testing.