tags: nikto scansione_web_server nikto_nmap Scanning


Quando usare Nikto?

Nikto è particolarmente utile dopo aver identificato un server web con Nmap (ad esempio, una porta 80 o 443 aperta). In altre parole, Nmap ti dice cosa c’è (un server web), mentre Nikto cerca di capire quanto è vulnerabile quel server web.

Come si integra Nikto con Nmap?

Puoi usare Nmap per identificare le porte aperte e i servizi in esecuzione, e poi usare Nikto per analizzare i server web trovati. Ecco un flusso di lavoro tipico:

  1. Scansione con Nmap: Esegui una scansione con Nmap per identificare le porte aperte e i servizi in esecuzione. Ad esempio:

    nmap -sC -sV <indirizzo_ip_target>
    
  2. Identificazione di server web: Analizza l’output di Nmap per trovare porte che indicano la presenza di un server web (ad esempio, 80/http, 443/https, 8080/http-proxy).

  3. Scansione con Nikto: Usa Nikto per scansionare il server web identificato. Ad esempio:

    nikto -h <indirizzo_ip_target>
    

    Se il server web utilizza HTTPS (porta 443), devi specificarlo:

    nikto -h https://<indirizzo_ip_target>
    

    Oppure, se il server web è su una porta non standard (ad esempio, 8080):

    nikto -h <indirizzo_ip_target> -p 8080
    
    #Si possono anche impostare più porte contemporaneamente:
    
    nikto -h 10.10.10.1 -p 80,8000,8080
    

Esempio pratico:

Supponiamo che la scansione Nmap mostri:

80/tcp open  http
443/tcp open  https

Useresti Nikto così:

Bash

nikto -h <indirizzo_ip_target>
nikto -h https://<indirizzo_ip_target>

Nikto e Nmap insieme: un approccio più avanzato

È possibile integrare Nikto con Nmap usando gli script NSE (Nmap Scripting Engine). Esiste uno script di Nmap chiamato http-nikto che automatizza l’esecuzione di Nikto su un target identificato come server web. Per usarlo:

Bash

nmap --script http-nikto <indirizzo_ip_target>

Questo comando esegue una scansione Nmap e, se rileva un server web, esegue automaticamente Nikto su di esso.

Limitazioni di Nikto:

  • Falsi positivi: Nikto può a volte segnalare falsi positivi, quindi è importante verificare manualmente i risultati.
  • Non rileva tutte le vulnerabilità: Nikto si basa su un database di vulnerabilità note, quindi potrebbe non rilevare vulnerabilità zero-day o configurazioni errate molto specifiche.
  • Può essere rumoroso: Le scansioni di Nikto possono generare un traffico significativo e quindi essere facilmente rilevate dai sistemi di intrusion detection (IDS).

Plug-in

Puoi vedere tutti i plug-in di Nikto con il seguente comando:

nikto --list-plugins

Ce ne sono di molto interessanti come quello che verifica la vulnerabilità ms-010-17, la scadenza del certificato ssl, test specifici per Drupal, ecc.

Per usare un determinato plug-in possiamo aggiungere la flag -Plugin con a fianco il nome del plug-in che vogliamo utilizzare come per esempio:

nikto -h 10.10.10.1 -Plugin apacheuser

Questo plug-in cerca utenti direttamente sul web server Apache.

Tuning

Se vogliamo approfondire la scansione in modo più dettagliato possiamo utilizzare l’opzione Tuning che ci permette di fare attacchi specifici, i più utlizzati sono:

Category NameDescriptionTuning Option
File UploadSearch for anything on the web server that may permit us to upload a file. This could be used to upload a reverse shell for an application to execute.0
Misconfigurations / Default FilesSearch for common files that are sensitive (and shouldn’t be accessible such as configuration files) on the web server.2
Information DisclosureGather information about the web server or application (i.e. verison numbers, HTTP headers, or any information that may be useful to leverage in our attack later)3
InjectionSearch for possible locations in which we can perform some kind of injection attack such as XSS or HTML4
Command ExecutionSearch for anything that permits us to execute OS commands (such as to spawn a shell)8
SQL InjectionLook for applications that have URL parameters that are vulnerable to SQL Injection9

Contenuti da mostrare

Quando effettuiamo una scansione con nikto non tutti i dati ci vengono forniti per chiarezza, ma possiamo ottenerli comunque tramite la flag -Display:

ArgumentDescriptionReasons for Use
1Show any redirects that are given by the web server.Web servers may want to relocate us to a specific file or directory, so we will need to adjust our scan accordingly for this.
2Show any cookies receivedApplications often use cookies as a means of storing data. For example, web servers use sessions, where e-commerce sites may store products in your basket as these cookies. Credentials can also be stored in cookies.
EOutput any errorsThis will be useful for debugging if your scan is not returning the results that you expect!

Salvare

Possiamo salvare il contenuto della scansione tramite la flag -o che ci permette di avere i risultati in formato html:

nikto -h http://ip_address -o report.html