Introduzione
Nikto è uno scanner di vulnerabilità web open source basato su Perl che può scoprire ogni potenziale minaccia sul tuo server web, inclusi file e programmi non sicuri, server e programmi obsoleti, configurazioni errate del server e del software e molto altro.
Nikto può funzionare su quasi tutti i sistemi operativi con interprete Perl installato. Supporta SSL, proxy, autenticazione host, codifica di attacco, evation IDS ecc.
Questa guida illustra come installare e utilizzare Nikto su Ubuntu 18.04.
Se il vostro intento è installare Nikto su di un server in remoto continuate a leggere, altrimenti se volete installare Nikto sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Prerequisiti
Per seguire questo tutorial, avrai bisogno di:
- Un server Ubuntu 18.04 impostato seguendo la Guida alla configurazione del server iniziale per Ubuntu 18.04, incluso un utente non root con privilegi sudo e un firewall configurato con ufw.
Installare Nikto
L'installazione di Nikto è piuttosto semplice poiché il pacchetto è disponibile sui repository predefiniti di Ubuntu 18.04. Quindi, esegui i comandi seguenti per installare Nikto.
Aggiornare la lista di pacchetti disponibili:
sudo apt update
Aggiornare i pacchetti disponibili:
sudo apt upgrade -y
Installare Nikto:
sudo apt-get install nikto -y
Una volta terminata l'installazione, Nikto è pronto all'uso.
Utilizzo di base di Nikto
La sintassi di base della riga di comando di Nikto è la seguente:
nikto [options...]
Se eseguito senza alcuna opzione da riga di comando, mostra una descrizione di base con varie opzioni disponibili:
nikto
Dovreste ricevere un messaggio di output simile al seguente:
- Nikto v2.1.5
---------------------------------------------------------------------------
+ ERROR: No host specified
-config+ Use this config file
-Display+ Turn on/off display outputs
-dbcheck check database and other key files for syntax errors
-Format+ save file (-o) format
-Help Extended help information
-host+ target host
-id+ Host authentication to use, format is id:pass or id:pass:realm
-list-plugins List all available plugins
-output+ Write output to this file
-nossl Disables using SSL
-no404 Disables 404 checks
-Plugins+ List of plugins to run (default: ALL)
-port+ Port to use (default 80)
-root+ Prepend root value to all requests, format is /directory
-ssl Force ssl mode on port
-Tuning+ Scan tuning
-timeout+ Timeout for requests (default 10 seconds)
-update Update databases and plugins from CIRT.net
-Version Print plugin and database versions
-vhost+ Virtual host (for Host header)
+ requires a value
Note: This is the short help output. Use -H for full help text.
Avviare di Nikto Web Scan
Il comando base di Nikto richiede solo un host. L'host di destinazione (target) può essere specificato con l' opzione -h o -host , ad esempio per scansionare un server web il cui indirizzo IP è 192.168.99.99 , eseguire Nikto come segue:
nikto -host 192.168.99.99
Nikto esegue la scansione della porta 80 per impostazione predefinita. Tuttavia, se il server Web è in esecuzione su una porta diversa, è necessario specificare la porta utilizzando l'opzione -p o -port. Quindi:
nikto -h 192.168.99.99 -p 8080
È possibile specificare più porte separandole con una virgola.
nikto -h 192.168.99.99 -p 8080,8888
Puoi anche specificare un intervallo di porte nel formato port1-port, ad esempio:
nikto -h 192.168.99.99 -p 8080-8888
Invece di utilizzare l'indirizzo IP per specificare l'host di destinazione, è possibile utilizzare ad esempio anche gli URL:
nikto -h test.esempio.com
nikto -h https://test.esempio.com
Puoi anche specificare la porta quando usi l'URL:
nikto -h test.esempio.com -p 8080
nikto -h https://test.esempio.com -p 8443
Oppure:
nikto -h test.esempio.com:8080
nikto -h test.esempio.com:8443/
Nella misura in cui è possibile specificare host di destinazione mediante l' opzione -p, è anche possibile specificare un file contenente un elenco di host di destinazione uno per riga. Ad esempio, il file dovrebbe contenere i target nel seguente formato:
192.168.99.99:8888
192.168.99.99
https://test.esempio.com:443/
Supponiamo che il file si chiami target-host Per eseguire la scansione di questi host contemporaneamente, eseguire il comando seguente:
nikto -h target-host
È anche possibile eseguire la scansione degli host utilizzando Nmap e passare l'output a nikto. Ad esempio, per cercare la porta aperta 80 in una rete digitare:
nmap -p80 192.168.99.99/24 -oG - | nikto -h -
Se vuoi usare un server proxy, è possibile utilizzare l'opzione -useproxy . Puoi impostare i dettagli del proxy direttamente nel file di configurazione di Nikto /etc/nikto/config.txt, oppure puoi impostarlo da riga di comando.
Aprire il file di configurazione di Nikto con il proprio editor di testo preferito, qui utilizzeremo nano:
sudo nano /etc/nikto/config.txt
Aggiungere o modificare i seguenti parametri, inserendo i propri dati:
PROXYHOST=192.168.88.88
PROXYPORT=3128
PROXYUSER=nome_utente
PROXYPASS=password
Al termine, salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.
Dopo aver definito i dettagli del proxy nel file di configurazione, eseguire nikto con il parametro -userproxy;
nikto -h 192.168.99.99 -useproxy
Per specificare i dettagli della connessione proxy sulla riga comando senza modificare il file di configurazione, impostare il comando in questo modo:
nikto -h 192.168.99.99 -useproxy http://nome_utente:[email protected]:3128/
Oppure:
nikto -h 192.168.99.99 -useproxy http://@192.168.70.23:3128/
Nikto può esportare i risultati della scansione in diversi formati; CSV, HTML, XML, NBE, testo. Per salvare i risultati in un formato di output specifico, è necessario specificare l'opzione -o/-output e l'opzione -Format per definire il formato di output. Vedere gli esempi seguenti per salvare i risultati della scansione in formato html.
nikto -h 192.168.99.99 -o test.html -F html
Nikto può anche essere ottimizzato per eseguire scansioni specifiche. Di seguito è una descrizione delle opzioni di ottimizzazione che è possibile utilizzare per ottenere questa funzionalità.
1 - Interesting File / Seen in logs
2 - Misconfiguration / Default File
3 - Information Disclosure
4 - Injection (XSS/Script/HTML)
5 - Remote File Retrieval - Inside Web Root
6 - Denial of Service
7 - Remote File Retrieval - Server Wide
8 - Command Execution / Remote Shell
9 - SQL Injection
0 - File Upload
a - Authentication Bypass
b - Software Identification
c - Remote Source Inclusion
x - Reverse Tuning Options (i.e., include all except specified)
Ad esempio, per testare l'SQL Injection e il recupero di file remoti, dare il seguente comando:
nikto -h 192.168.99.99 -Tuning 79 -o test.html -F html
Conclusione
In questo tutorial hai installato e configurato Nikto su Ubuntu 18.04. Per ulteriori informazioni sull'utilizzo di Nikto:
nikto -H