Nikto: escaneador de servidores web (manual – primera parte).
Posted by admin in Auditoria, Nikto, SeguridadA continuación veremos un pequeño manual sobre la herramienta Nikto, un software bastante interesante.
IMPORTANTE: El mal uso de estas herramientas puede concluír en situaciones de bloqueo, lentitud en tu velocidad de conexión e incluso denegación de servicio de las máquinas analizadas. Estas herramientas sólo deben ser lanzadas contra máquinas ajenas, única y exclusivamente cuando sus responsables nos hayan autorizado a ello. Bajo ninguna circunstancia deben ser empleadas contra máquinas que no sean de nuestra propiedad sin consentimiento expreso por parte de sus propietarios, informando en cada caso de la actividad que vayamos a realizar.
El único fin de este manual es didáctivo. Estas herramientas han sido diseñadas para realizar auditorías en seguridad informática por lo que no me hago responsable de un uso delictivo del texto aquí recogido.
Empecemos…
¿Que es Nikto?.
Nikto es un escaneador de servidores web de código abierto (Licencia GPL) que realiza exhaustivos tests, incluyendo más de 3200 ficheros/CGI que potencialmente son dañinos, en más de 625 tipos de servidores, y problemas típicos de versiones en más de 230 servidores. Lo que se escanea así como sus plugins se actualizan muy frecuentemente y pueden descargarse gratuitamente si se desea.
¿Donde conseguirlo?.
Este programita se puede conseguir desde la web oficial del proyecto:
La descarga del software la podemos hacer en dos tipos de formatos, en .gz como en .bz2.
Requisitos.
Nikto está disponible tanto para plataformas Windows, MAC OS y Linux. En este manual describiremos la instalación y señalaremso que paquetes están disponibles en los repositorios de Ubuntu (estando disponibles también para otras distribuciones como Linux Mint por ejemplo, ya que utiliza los mismos repositorios).
- PERL: http://www.cpan.org/ (Incluido en Ubuntu)
- LibWhisker: http://www.wiretrip.net/ (Incluido en Ubuntu)
- ActiveState Perl: http://www.activestate.com/
- OpenSSL: http://www.openssl.org/ (Incluido en Ubuntu)
- nmap: http://insecure.org/ (Incluido en Ubuntu)
tar -xvf nikto-current.tar.gz
./nikto.pl -h hostAEscanear
./nikto.pl -h xxx.xxx.xxx.xxx o http://www.dominio.xx
./nikto.pl -h host -p puerto
./nikto.pl -h host -p puerto -ssl
./nikto.pl -h host -p puerto1,puerto2,puerto3,…,puertoN
www.hostUno.com
www.hostDos.es:443
www.hostTres.es:80
./nikto.pl -h hosts.txt
# PROXY STUFF
./nikto.pl -h host -p puerto -u
./nikto.pl -update
+ Retrieving ‘nikto_core.plugin’
+ Retrieving ‘CHANGES.txt’
Opciones de Nikto.
A continuación se detallarán cada una de las opciones que podemos usar con Nikto.
- -Cgidirs: Escanea los directorios CGI. Las palabras claves ‘all’ o ‘none’ pueden utilizarse para escanear todos los directorios o ninguno respectivamente.
- -config: Indica un archivo de configuración distinto al que tenemos en el directorio de instalación config.txt.
- -dbcheck: Comprueba posibles errores en nuestra base de datos.
- -evasion: Habilita la detección de intrusiones por medio de técnicas de evasión (consultar documentación de LibWhisker para más información). Para elegir un tipo de detección, utilice los siguientes números (se podrían usar varios al mismo tiempo):
1 – Random URI encoding (non-UTF8)
2 – Directory self-reference (/./)
3 – Premature URL ending
4 – Prepend long random string
5 – Fake parameter
6 – TAB as request spacer
7 – Change the case of the URL
8 – Use Windows directory separator (\)
- -findonly: Solo escanea puertos HTTP(S).
- -Format: Guarda el log con un formato específico. Estos pueden ser csv, html, xml y txt. Si no se indica nada el formato por defecto es txt.
./nikto.pl -h host -p puerto -o nombreArchivo -Format formato
- -host: Host objetivo.
- -Help: Ayuda.
- -id: Autentificación para el host. La estructura es id:pass.
- -mutate: Especifica técnicas de mutación. Utilizando estas técnicas conseguimos un mejor escaneo. utiliza cada técnica según su número, se podrían usar varias a la vez:
1 – Test all files with all root directories
2 – Guess for password file names
3 – Enumerate user names via Apache (/~user type requests)
4 – Enumerate user names via cgiwrap (/cgi-bin/cgiwrap/~user type requests)
- -nolookup: No realizar lookup al servidor.
- -output: Crea un archivo con el log.
- -port: Elige el puerto a utilizar.
- -Pause: Segundos para que termine el test.
- -Display: Elige que datos quieres que aparezca en el log. Elige entre las distintas opciones.
1 – Show redirects
2 – Show cookies received
3 – Show all 200/OK responses
4 – Show URLs which require authentication
D – Debug Output
V – Verbose Output
- -root: Permisos de administrador a todos los pedidos.
- -ssl: Escanea puertos especificos de SSL.
- -Single: Realiza una petición simple. Nikto irá pidiendo datos sobre el servidor para finalizar con el log mostrando los datos pedidos.
- -timeout: Tiempo de espera antes de cerrar la conexión.
- -Tuning: Estas opciones controlarán el tipo de escaneo que se realizará. Si no se especifican se realizará el escaneo con las opciones por defecto.
0 – File Upload
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
a – Authentication Bypass
b – Software Identification
g – Generic (Don’t rely on banner)
x – Reverse Tuning Options (i.e., include all except specified)
- -useproxy: Utilización de un proxy.
- -update: Actualización de Nikto.
- -Version: Muestra la versión de nikto, sus plugins y su base de datos.
- -vhost: Utilizar un host virtual.
Continuará…
Fuente: Web oficial de Nikto.