NIKTO una vulnerabilidad de la aplicación web y un escáner CGI para servidores web

NIKTO una vulnerabilidad de la aplicación web y un escáner CGI para servidores web

Escáner web de Nikto es otra buena herramienta para el arsenal de cualquier administrador de Linux. Es un escáner web de código abierto lanzado bajo la licencia GPL, que se utiliza para realizar pruebas completas en servidores web para múltiples elementos que incluyen más 6500 potencialmente peligroso archivos/CGIS.

Leer sugerido: WPSEKU: un escáner de vulnerabilidad para encontrar problemas de seguridad en WordPress

Está escrito por Chris Solo y David Lodge para Vulnerabilidad evaluación, verifica versiones obsoletas sobre 1250 Servidores web y más 270 Problemas específicos de la versión. También escanea e informa para software y complementos de servidor web obsoleto.

Características del escáner web Nikto

  1. Admite SSL
  2. Admite proxy HTTP completo
  3. Admite texto, HTML, XML y CSV para guardar informes.
  4. Escanear para múltiples puertos
  5. Puede escanear en múltiples servidores tomando entradas de archivos como la salida de NMAP
  6. Apoyo a las identificaciones de Libwhisker
  7. Lo suficientemente capaz como para identificar el software instalado con encabezados, archivos y favicons
  8. Registros para metasploits
  9. Informes para encabezados "inusuales".
  10. Enumeración del usuario de Apache y CGIWRAP
  11. Autenticar hosts con Basic y NTLM
  12. Los escaneos se pueden hacer automáticamente en un tiempo especificado.

Requisitos de Nikto

Un sistema con básico Perl, Módulos perl, Openssl La instalación debe habilitar Nikto correr. Se ha probado a fondo en Windows, Mac OS X Y varios Desastre/Linux distribuciones como sombrero rojo, Debian, Ubuntu, Retractarse, etc.

Instalación del escáner web Nikto en Linux

La mayoría de los sistemas Linux de hoy vienen con preinstalados Perl, Módulos perl, y Openssl paquetes. Si no está incluido, puede instalarlos utilizando la utilidad de Administrador de paquetes de sistema predeterminado llamado beque o apt-get.

En Red Hat/Centos/Fedora
[[correo electrónico protegido]]# yum instalación perl perl-net-sleay openssl
En Debian/Ubuntu/Linux Mint
[[correo electrónico protegido]]# apt-get instalación perl openssl libnet-sleay-plerl

A continuación, clona el último establo Nikto Archivos de origen desde su repositorio de GitHub, pasar a Nikto/programas/ directorio y ejecutarlo usando perl:

$ git clon https: // github.com/sullo/nikto.git $ cd nikto/programas $ perl nikto.PL -H 
Salida de muestra
El host de opción requiere un argumento -config+ use este archivo de configuración -display+ encendido/apagado salidas de visualización -dbcheck verificar base de datos y otros archivos de clave para errores de sintaxis -format+ guardar archivo (-o) -help de ayuda de ayuda extendida -host+ host de target -id+ La autenticación del host para usar, el formato es id: pase o id: pase: reinom -list -plugins list todos los complementos disponibles -output+ escribir salida a este archivo -sossl deshabilita usando ssl -no404 deshabilita 404 cheques -plugins+ lista de complementos para ejecutar (predeterminado predeterminado (predeterminado predeterminado : All) -port+ puerto para usar (predeterminado 80) -ROOT+ Prepend Root Value en todas las solicitudes, formato IS /Directory -SSL Force Mode SSL en Port -Untuning+ Scan Tuning -TimeOut+ Tiempo de espera para solicitudes (10 segundos predeterminados) -Update Actualizar bases de datos de actualizaciones y complementos de Cirt.Versiones de complemento de impresión y base de datos de netversión -vhost + host virtual (para encabezado de host) + requiere un valor nota: esta es la salida de ayuda corta. Usar -h para el texto de ayuda completa. 

El "Opción Host requiere un argumento"Es claramente revelador que no incluimos los parámetros necesarios al hacer una prueba. Por lo tanto, necesitamos agregar un parámetro básico necesario para hacer una prueba de ejecución.

Prueba básica

El escaneo básico requiere un host al que desea apuntar, de forma predeterminada, escanea el puerto 80 Si no se especifica nada. El anfitrión puede ser un nombre de host o un Dirección IP de un sistema. Puede especificar un host usando "-H" opción.

Por ejemplo, quiero hacer un escaneo en una IP 172.dieciséis.27.56 en el puerto TCP 80.

[[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.PL -H 172.dieciséis.27.56
Salida de muestra
- Nikto V2.1.5 ------------------------------------------------- -------------------------- + Target IP: 172.dieciséis.27.Nombre de host de 56 + Target: Ejemplo.COM + Puerto objetivo: 80 + Hora de inicio: 2014-01-10 00:48:12 (GMT5.5) ------------------------------------------------ --------------------------- + servidor: Apache/2.2.15 (CentOS) + encabezado X-Poleed-By Recuperado: PHP/5.3.3 + El encabezado de opciones X-Frame-Options anti-hechicero no está presente. + El servidor filtra inodos a través de Etags, encabezado encontrado con archivo /robots.txt, inodo: 5956160, tamaño: 24, mtime: 0x4d4865a054e32 + archivo/dir '/' en robots.TXT devolvió un código HTTP no forbido o redirige (200) + "Robots.txt "contiene 1 entrada que debe verse manualmente. + Apache/2.2.15 parece estar desactualizado (la corriente es al menos Apache/2.2.22). Apache 1.3.42 (lanzamiento final) y 2.0.64 también son actuales. + Múltiples archivos de índice encontrados: índice.PHP, índice.HTM, índice.HTML + DEBUG HTTP El verbo puede mostrar información de depuración del servidor. Ver http: // msdn.Microsoft.com/en-us/biblioteca/e8z01xdh%28VS.80%29.ASPX para más detalles. + OSVDB-877: El método HTTP Trace está activo, lo que sugiere que el host es vulnerable a XST + OSVDB-3233: /Phpinfo.PHP: contiene información de configuración de PHP + OSVDB-12184: /índice.php?= PHPB8B5F2A0-3C92-11D3-A3A9-4C7B08C10000: PHP revela información potencialmente confidencial a través de ciertas solicitudes HTTP que contienen cadenas de consulta específicas. + OSVDB-3092: /Test.HTML: Esto podría ser interesante ... + OSVDB-3268: /icons /: Indexación de directorio encontrada. + OSVDB-3233: /icons /readMe: el archivo predeterminado de apache encontrado. + /conectar.php?ruta = http: // cirt.net/rfiinc.TXT?: Potencial Cadena de conexión de base de datos PHP MySQL encontrada. + OSVDB-3092: /Test.PHP: Esto podría ser interesante ... + 6544 elementos verificados: 0 error (s) y 16 elementos informados en host remoto + tiempo de finalización: 2014-01-10 00:48:23 (GMT5.5) (11 segundos) -------------------------------------------- ------------------------------- + 1 host (s) probado

Si desea escanear en un número de puerto diferente, agregue "-pag"[-puerto] opción. Por ejemplo, quiero hacer un escaneo en IP 172.dieciséis.27.56 en el puerto TCP 443.

[[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.PL -H 172.dieciséis.27.56 -P 443
Salida de muestra
- Nikto V2.1.5 ------------------------------------------------- -------------------------- + Target IP: 172.dieciséis.27.Nombre de host de 56 + Target: Ejemplo.com + puerto objetivo: 443 -------------------------------------------- ------------------------------- + SSL Información: Asunto: /O =*.mediodía.com/ou = control de dominio validado/cn =*.mediodía.com CIPHERS: DHE-RSA-AES256-GCM-SHA384 Emisor:/C = US/ST = Arizona/L = Scottsdale/O = Starfield Technologies, Inc./Ou = http: // certificados.starfieldtech.com/Repository/CN = Starfield Secure Certification Authority/SerialNumber = 10688435 + Hora de inicio: 2014-01-10 01:08:26 (GMT5.5) ------------------------------------------------ --------------------------- + servidor: Apache/2.2.15 (CentOS) + El servidor filtra inodo a través de Etags, encabezado encontrado con archivo /, inodo: 2817021, tamaño: 5, mtime: 0x4d5123482b2e9 + el encendido de las opciones X-frame-hechicir anti-hechas no está presente. + Apache/2.2.15 parece estar desactualizado (la corriente es al menos Apache/2.2.22). Apache 1.3.42 (lanzamiento final) y 2.0.64 también son actuales. + El servidor está utilizando un certificado comodín: '*.mediodía.com ' + Métodos HTTP permitidos: Get, Head, Post, Opciones, Trace + OSVDB-877: El método de seguimiento HTTP está activo, lo que sugiere que el host es vulnerable a XST + OSVDB-3268: /Icons /: Indexación de directorio encontrado. + OSVDB-3233: /icons /readMe: el archivo predeterminado de apache encontrado. + 6544 Elementos verificados: 0 error (s) y 8 elementos informados en host remoto + hora de finalización: 2014-01-10 01:11:20 (GMT5.5) (174 segundos) -------------------------------------------- ------------------------------- + 1 host (s) probado

También puedes especificar Hospedadores, puerto y protocolos Usando un completo Url sintaxis, y se escaneará.

[[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.pl -h http: // 172.dieciséis.27.56:80

También puede escanear cualquier sitio web. Por ejemplo, aquí hice un escaneo en Google.comunicarse.

[[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.pl -h http: // www.Google.comunicarse
Salida de muestra
- Nikto V2.1.5 ------------------------------------------------- -------------------------- + Target IP: 173.194.38.177 + Nombre de host de Target: www.Google.COM + Puerto objetivo: 80 + Hora de inicio: 2014-01-10 01:13:36 (GMT5.5) ------------------------------------------------ --------------------------- + Servidor: GWS + Cookie Pref creado sin la bandera httponly + cookie nid creada sin la bandera httponly + encabezado poco común 'X-Frame-Opciones' encontrado, con contenido: Sameorigin + encabezado poco común 'X-XSS-Protection' encontrado, con contenido: 1; modo = bloque + encabezado poco común 'alternate-protocol' encontrado, con contenido: 80: quic + raíz página/redireccionamiento a: http: // www.Google.co.en/?GWS_RD = CR & EI = XIROOMSCOXBRAEE34DWCQ + El banner del servidor ha cambiado de 'GWS' a 'SFFE' que puede sugerir un WAF, el equilibrador de carga o el proxy está en su lugar + encabezado poco común 'X-Content-Type-Oppions' encontrado, con contenido: el noniff + + No se encontraron directorios CGI (use '-c todo' para verificar todos los dirs posibles) + archivo/dir '/grupos/' en robots.TXT devolvió un código HTTP no forbido o redirigido (302) .. .

El comando anterior realizará un montón de solicitudes HTTP (yo.mi. más que 2000 pruebas) en el servidor web.

Prueba de puertos múltiples

También puede realizar múltiples puertos escaneando en la misma sesión. Para escanear múltiples puertos en el mismo host, agregue "-pag"[-puerto] opción y especifique la lista de puertos. Los puertos se pueden definir como un rango (i.mi., 80-443), o como una coma separada (i.mi., 80,443). Por ejemplo, quiero escanear un puerto 80 y 443 en el anfitrión 172.dieciséis.27.56.

[[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.PL -H 172.dieciséis.27.56 -P 80,443
Salida de muestra
- Nikto V2.1.5 ------------------------------------------------- -------------------------- + No se encuentra un servidor web en cmsstage.mediodía.com: 88 ----------------------------------------------- ---------------------------- + Target IP: 172.dieciséis.27.Nombre de host de 56 + Target: Ejemplo.COM + Puerto objetivo: 80 + Hora de inicio: 2014-01-10 20:38:26 (GMT5.5) ------------------------------------------------ --------------------------- + servidor: Apache/2.2.15 (CentOS) + encabezado X-Poleed-By Recuperado: PHP/5.3.3 + El encabezado de opciones X-Frame-Options anti-hechicero no está presente. --------------------------------------------------------------------------- + Target IP: 172.dieciséis.27.Nombre de host de 56 + Target: Ejemplo.com + puerto objetivo: 443 -------------------------------------------- ------------------------------- + SSL Información: Asunto: /O =*.mediodía.com/ou = control de dominio validado/cn =*.mediodía.com CIPHERS: DHE-RSA-AES256-GCM-SHA384 Emisor:/C = US/ST = Arizona/L = Scottsdale/O = Starfield Technologies, Inc./Ou = http: // certificados.starfieldtech.COM/Repository/CN = Starfield Secure Certification Authority/SerialNumber = 10688435 + Hora de inicio: 2014-01-10 20:38:36 (GMT5.5) ------------------------------------------------ --------------------------- + servidor: Apache/2.2.15 (CentOS) + Todos los directorios CGI 'encontrados', use '-c ninguno' para probar ninguno + apache/2.2.15 parece estar desactualizado (la corriente es al menos Apache/2.2.22). Apache 1.3.42 (lanzamiento final) y 2.0.64 también son actuales .. 

Usando un proxy

Digamos un sistema donde Nikto ejecutar solo tiene acceso al host de destino a través de un Http proxy, la prueba aún se puede realizar utilizando dos formas diferentes. Uno está usando Nikto.confusión archivo y otra forma es ejecutarse directamente desde el línea de comando.

Usando nikto.archivo conf

Abierto Nikto.confusión Archivo usando cualquier editor de línea de comandos.

[[correo electrónico protegido] Nikto-2.1.5]# VI Nikto.confusión

Busque la variable "APODERADO"Y la falta de comment el '#'Desde el comienzo de las líneas como se muestra. Luego agregue el host del proxy, puerto, usuario proxy y contraseña. Guarde y cierre el archivo.

# Configuración de proxy: aún debe estar habilitado por -useProxy proxyHost = 172.dieciséis.dieciséis.37 proxyport = 8080 proxyuser = PG proxyPass = PG

Ahora, ejecute el Nikto usando "-usa proxy" opción. Tenga en cuenta que todas las conexiones se transmitirán a través del Http apoderado.

[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.PL -H localhost -p 80 -useproxi
Salida de muestra
- Nikto V2.1.5 ------------------------------------------------- -------------------------- + Target IP: 127.0.0.1 + Nombre de host de Target: Localhost + Puerto objetivo: 80 + Hora de inicio: 2014-01-10 21:28:29 (GMT5.5) ------------------------------------------------ --------------------------- + servidor: calamar/2.6.Stable6 + recuperado a través del encabezado: 1.0 Netserv: 8080 (calamar/2.6.Stable6) + El encabezado de opciones X-Options anti-hinchazón no está presente. + Encabezado poco común 'X-squid-error' encontrado, con contenido: err_cache_access_denied 0 + encabezado poco común 'x-cache-blookup' encontrado, con contenido: ninguno de NetServ: 8080
Usando la línea de comando

Para ejecutar el Nikto directamente desde la línea de comando usando el "-usa proxy"Opción estableciendo el proxy como argumento.

[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.PL -H localhost -useproxy http: // 172.dieciséis.dieciséis.37: 8080/
Salida de muestra
- Nikto V2.1.5 ------------------------------------------------- -------------------------- + Target IP: 127.0.0.1 + Nombre de host de Target: Localhost + Puerto objetivo: 80 + Hora de inicio: 2014-01-10 21:34:51 (GMT5.5) ------------------------------------------------ --------------------------- + servidor: calamar/2.6.Stable6 + recuperado a través del encabezado: 1.0 Netserv: 8080 (calamar/2.6.Stable6) + El encabezado de opciones X-Options anti-hinchazón no está presente. + Encabezado poco común 'X-squid-error' encontrado, con contenido: err_cache_access_denied 0 + encabezado poco común 'x-cache-blookup' encontrado, con contenido: ninguno de NetServ: 8080

Actualización de Nikto

Puedes actualizar Nikto a lo último complementos y bases de datos automáticamente, simplemente ejecute el "-actualizar" dominio.

[[correo electrónico protegido] Nikto-2.1.5]# Perl Nikto.PL -Update

Si hay nuevas actualizaciones disponibles, verá una lista de nuevas actualizaciones descargadas.

+ Recuperando 'nikto_report_csv.plugin ' + recuperando' nikto_headers.Plugin ' + recuperando' nikto_cookies.plugin ' + recuperar' db_tests ' + recuperar' db_parked_strings ' + recuperar' cambios.txt ' + cirt.Mensaje neto: envíe los errores de Nikto a http: // trac2.ensamblaje.com/nikto_2/informe/2

También puede descargar y actualizar manualmente complementos Nikto y bases de datos desde http: // cirt.net/nikto/actualizaciones/.

Enlaces de referencia

Página de inicio de Nikto