Imagen de portada sobre qué es Nikto y para qué sirve, con un experto en ciberseguridad frente a una terminal.
Nikto: De la terminal a la auditoría. Tu primer paso en el mundo del pentesting web.

Nikto: Qué es y para qué sirve un escáner de vulnerabilidades

Cuando comienzas a interesarte en la seguridad web y el pentesting, es común sentirse algo perdido. Las vulnerabilidades, los ataques, las auditorías… todo esto puede parecer rápidamente reservado para expertos o para películas de hackers un tanto caricaturescas.

Pero, ¿y si te dijéramos que puedes realizar tu primera auditoría de vulnerabilidades hoy mismo con una sola herramienta de línea de comandos?

Esa herramienta se llama Nikto, y en esta guía te llevaremos de la mano para que domines este potente escáner de vulnerabilidades web.

Resultados de un escaneo con Nikto escáner de vulnerabilidades web
Nikto en acción: identificando posibles puntos débiles en un servidor web.
  • Comprende cómo funciona Nikto y por qué esta herramienta de línea de comandos es útil para identificar las debilidades visibles de un servidor web, incluso sin conocimientos avanzados en seguridad.
  • Aprende a instalar y utilizar Nikto con ejemplos concretos de comandos y gana autonomía en tus primeras auditorías de sitios o aplicaciones web.
  • Sabe cómo leer e interpretar los resultados de un escaneo para identificar los puntos a vigilar, evitar errores comunes y adoptar mejores prácticas de seguridad en el día a día.

Nikto no promete magia, pero ayuda a comprender de forma concreta cómo un servidor web puede estar mal configurado o expuesto. Y, sobre todo, lo hace desde la línea de comandos, es decir, desde el terminal, lo que puede impresionar al principio.

En esta guía, vas a descubrir Nikto paso a paso. El objetivo no es transformarte en un experto en ciberseguridad, sino darte bases sólidas y útiles para comprender mejor lo que sucede “bajo el capó” de un sitio web.

¿Qué es Nikto exactamente?

Nikto es un escáner de vulnerabilidades web de código abierto que funciona desde la línea de comandos. Su principal función es analizar un servidor o aplicación web para detectar miles de archivos peligrosos, configuraciones desactualizadas y otros problemas de seguridad conocidos, actuando como una herramienta de auditoría esencial para un primer diagnóstico.

Concretamente, Nikto envía una gran cantidad de peticiones HTTP a un servidor. Luego, compara las respuestas obtenidas con una base de datos de vulnerabilidades conocidas. Si detecta algo anómalo, te lo notifica claramente.

Es importante comprender una cosa desde el principio: Nikto no hackea nada. No explota las vulnerabilidades. Se limita a identificarlas. Es una herramienta de auditoría, no de ataque. Este matiz es esencial, sobre todo cuando se está empezando.

Suele ser utilizado por administradores de sistemas, desarrolladores web o profesionales del pentesting para realizar un primer diagnóstico de seguridad. Permite responder a una pregunta simple pero crucial: «¿Mi servidor expone problemas evidentes?».

¿Para qué sirve Nikto en la práctica?

Nikto sirve, ante todo, para ahorrar tiempo. Escanear manualmente un servidor web para localizar archivos olvidados, versiones obsoletas o errores de configuración sería un proceso largo y tedioso. Nikto automatiza este trabajo.

Puede, por ejemplo, detectar la presencia de archivos sensibles como páginas de administración no protegidas, scripts de prueba dejados en producción o archivos de configuración accesibles públicamente. También puede identificar la versión del servidor web y verificar si contiene vulnerabilidades conocidas.

Para un principiante, es una excelente herramienta pedagógica. Cada alerta mostrada es una oportunidad de aprendizaje. ¿Por qué este archivo es peligroso? ¿Por qué esta configuración supone un problema? No te conformas con un veredicto, descubres el razonamiento que hay detrás.

La primera vez que en nuestro equipo ejecutamos Nikto en un sitio de prueba personal, estábamos convencidos de que no encontraría nada. El resultado: varias alertas relacionadas con una mala configuración de Apache. Nada crítico, pero suficiente para recordarme que, en seguridad, la ignorancia suele ser el verdadero problema.

Comprender el funcionamiento de Nikto

Nikto funciona a partir de firmas. Dispone de una base de datos interna que contiene miles de pruebas. Cada prueba corresponde a una vulnerabilidad conocida, un archivo sensible o un comportamiento sospechoso.

Cuando se lanza un escaneo, Nikto prueba estas firmas una por una. Envía peticiones específicas al servidor objetivo y analiza las respuestas HTTP. En función del código de retorno, el contenido o las cabeceras, determina si existe un riesgo.

Por lo tanto, no se trata de un análisis inteligente basado en inteligencia artificial, sino de una herramienta metódica y rigurosa. Este enfoque tiene una ventaja principal: los resultados son explicables y reproducibles.

Nikto está escrito en Perl, lo que explica su presencia en sistemas Linux y macOS. También suele venir preinstalado en distribuciones orientadas a la seguridad, como es el caso de Nikto en Kali Linux.

Verificando la instalación de Nikto en la terminal
Confirmar la instalación de Nikto es tan simple como un comando.

Instalación de Nikto paso a paso

Antes de instalar Nikto, es necesario verificar algunos puntos sencillos. Necesitas un terminal, acceso a internet y un sistema compatible. Nikto funciona muy bien en Linux y macOS. En Windows, la instalación es posible, pero un poco menos cómoda para un principiante.

Nikto requiere Perl para funcionar. En la mayoría de los sistemas modernos, Perl ya está instalado por defecto. Puedes verificarlo con el siguiente comando:

perl -v

Si se muestra una versión, estás listo para continuar.

Instalación con Homebrew en macOS

Si estás en macOS, Homebrew es, con diferencia, la solución más sencilla. Homebrew es un gestor de paquetes que permite instalar herramientas con un solo comando.

Si Homebrew aún no está instalado, el comando oficial es el siguiente:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Una vez que Homebrew esté operativo, la instalación de Nikto se realiza con una sola línea:

brew install nikto

Homebrew se encarga de todo. Descarga Nikto, gestiona las dependencias y coloca la herramienta en la ubicación correcta de tu sistema.

Para verificar que la instalación se ha completado correctamente, simplemente teclea:

nikto -Version

Si se muestra una versión, significa que todo funciona correctamente.

Después de instalar Nikto, siempre es buena idea mantener su base de datos de vulnerabilidades al día (los chequeos se actualizan más a menudo que la versión principal del programa). Para ello ejecuta:

nikto -update

Esto descarga las últimas firmas y plugins directamente desde los servidores oficiales. Hazlo antes de cualquier escaneo serio.

Instalación manual en Linux

En Linux, puedes obtener la herramienta desde su repositorio oficial de Nikto en GitHub. Sin embargo, la forma más sencilla es usar el gestor de paquetes. Para instalar Nikto en Ubuntu o sistemas basados en Debian, el proceso es directo:

sudo apt update
sudo apt install nikto

Nuevamente, un simple comando permite verificar la instalación:

nikto -Help

Este comando muestra la ayuda integrada de Nikto, lo que suele ser el primer reflejo que se debe tener con una herramienta CLI.

Primeros pasos con Nikto

Una vez instalado Nikto, la tentación de lanzar un escaneo de inmediato es grande. Sin embargo, es importante recordar una regla esencial. Solo debes escanear sitios que te pertenezcan o para los cuales tengas autorización explícita.

Para lanzar un escaneo simple, el comando básico es el siguiente:

nikto -h https://ejemplo.com

La opción -h permite definir el host a escanear. Nikto comienza entonces su análisis y muestra progresivamente los resultados en el terminal.

Cada línea que aparece corresponde a una prueba o a una alerta. Algunas son informativas, mientras que otras señalan problemas potenciales reales. Tómate el tiempo de leer, aunque no todo te parezca claro al principio.

Cómo Interpretar los Resultados de Nikto

Cuando Nikto finaliza un escaneo, muestra una serie de mensajes que a veces pueden resultar impresionantes para un principiante. Es a menudo en este preciso momento cuando uno se pregunta si ha hecho algo grave o si el servidor está realmente en peligro.

Tranquilo, la mayoría de la información mostrada está ahí para alertarte, no para alarmarte.

Cada línea sigue generalmente la misma lógica. Nikto indica primero lo que ha detectado y luego explica brevemente por qué podría suponer un problema. Por ejemplo, puede señalar que un archivo específico es accesible públicamente o que el servidor revela su versión exacta en las cabeceras HTTP.

Es importante entender que no todas las alertas tienen el mismo nivel de gravedad. Algunas son simplemente informativas, como la detección del tipo de servidor web. Otras, en cambio, merecen claramente tu atención, especialmente las relacionadas con archivos sensibles o versiones de software obsoletas.

Adopta el hábito de leer cada mensaje con calma. Aunque no entiendas todo de inmediato, Nikto suele darte suficientes pistas para realizar búsquedas específicas y progresar.

Ejemplo de prueba: test-lab.esgeeks

Resultado del análisis con nikto

  • Objetivo analizado:
    • URL: https://test-lab.esgeeks.com
    • Herramienta: Nikto v2.5.0 (última versión estable del proyecto; el motor no recibe nuevas versiones frecuentes, pero las pruebas y plugins siguen actualizándose de forma puntual)
    • Fecha del escaneo: 19 de enero de 2026
    • Puerto: 443 (HTTPS)

1. Información General y SSL

Nikto confirma que el objetivo responde en el puerto 443 (HTTPS). La sección SSL Info nos da datos clave sobre el certificado:

  • Issuer: Let's Encrypt (Emitido por una autoridad de certificación reconocida y gratuita).
  • Subject: /CN=test-lab.esgeeks.com (El certificado es válido para nuestro dominio).
  • Ciphers: TLS_AES_256_GCM_SHA384 (Utiliza un cifrado fuerte y moderno).

2. Hallazgos Clave: Cabeceras de Seguridad Faltantes

El núcleo de los hallazgos de Nikto se centra en las cabeceras HTTP que mejoran la seguridad (hardening). Nuestra instalación por defecto carece de varias importantes:

  • The anti-clickjacking X-Frame-Options header is not present.
  • The site uses TLS and the Strict-Transport-Security HTTP header is not defined.
  • The X-Content-Type-Options header is not set.

Estos tres puntos son mejoras de seguridad estándar que evitan ataques como el Clickjacking, obligan al navegador a usar siempre HTTPS (HSTS) y previenen el MIME sniffing.

3.  Punto de Atención y Solución: X-Content-Type-Options

Vamos a centrarnos en el hallazgo más fácil de solucionar para este tutorial: la ausencia de la cabecera X-Content-Type-Options.

  • Riesgo: Permite que un navegador intente “adivinar” el tipo de contenido de un archivo, lo que podría ser explotado en ciertos ataques para ejecutar código malicioso.
  • Nivel de gravedad: Bajo a moderado.
  • Corrección simple recomendada: Para solucionarlo en nuestro servidor Apache, añadiríamos las siguientes líneas al archivo .htaccess en la raíz de WordPress:
<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
</IfModule>

Este simple cambio instruye a los navegadores para que no adivinen el tipo de contenido, eliminando la alerta de Nikto y mejorando la seguridad.

4. Otras Observaciones Relevantes

  • Tecnología Identificada: La cabecera x-redirect-by con el contenido WordPress confirma la tecnología que corre en el sitio.
  • BREACH Attack: Nikto nos advierte que el uso de la compresión deflate podría hacer vulnerable al sitio al ataque BREACH. Si bien el riesgo es bajo en la mayoría de los sitios modernos, es un buen recordatorio de las complejidades de la seguridad web.
  • Error de Escaneo: El análisis se detuvo tras alcanzar el límite de 20 errores, con los mensajes SSL negotiation failed y Connection reset by peer.

5. Interpretación del Error: ¡Una Buena Noticia!

Este comportamiento es consistente con mecanismos de protección activos como limitación de conexiones, reglas anti-escaneo, IPS o un WAF, aunque Nikto por sí solo no permite confirmar qué tecnología específica está bloqueando el escaneo. Estos sistemas detectaron el comportamiento agresivo del escáner y cortaron la conexión para protegerse. Esto confirma que, aunque falten algunas cabeceras de hardening, el servidor no está indefenso.

En conclusión, el escaneo no reveló vulnerabilidades críticas conocidas (según las pruebas de Nikto) para el sitio test-lab.esgeeks.com.

El sitio presenta:

  • una configuración SSL sólida,
  • mecanismos de protección contra abusos,
  • una exposición de WordPress normal y esperada.

Única mejora recomendada:

  • Mejora prioritaria recomendada: la adición de la cabecera X-Content-Type-Options, junto con la futura incorporación de HSTS y X-Frame-Options.

En general, la superficie de ataque es baja y la configuración se ajusta a las buenas prácticas habituales. ¡Y eso es una buena noticia!

Comandos de Nikto Esenciales y Opciones Avanzadas

Nikto se vuelve realmente interesante cuando comienzas a utilizar sus opciones. Permiten controlar mejor los escaneos, evitar ciertas limitaciones y obtener resultados más explotables.

Por ejemplo, si deseas escanear un servidor en un puerto específico, puedes utilizar la opción -p:

nikto -h https://ejemplo.com -p 8080

Esto es particularmente útil cuando tu aplicación web no se ejecuta en el puerto estándar 80 o 443.

Otra opción muy práctica es -o, que permite guardar el resultado de Nikto en un archivo. Esto evita perder la información una vez que se cierra el terminal:

nikto -h https://ejemplo.com -o informe_nikto.txt

Luego puedes releer este informe con calma o compartirlo con un colega.

Nikto también permite definir el formato de salida, especialmente en HTML, lo que puede ser útil para un informe más legible:

nikto -h https://ejemplo.com -o informe.html -Format html

Para más detalles, siempre puedes consultar la documentación oficial.

Cómo Usar Nikto sin ser Bloqueado

Un punto que los principiantes suelen ignorar se refiere a la velocidad de los escaneos. Nikto envía muchas peticiones, lo que puede activar protecciones automáticas en algunos servidores.

Para evitarlo, puedes ralentizar voluntariamente el escaneo gracias a la opción -Tuning o limitando ciertas pruebas. Esto permite obtener resultados más estables, sobre todo en servidores sensibles.

Un ejemplo simple consiste en excluir ciertos tipos de pruebas para centrarse únicamente en lo esencial:

nikto -h https://ejemplo.com -Tuning x

Este enfoque es ideal cuando estás empezando y deseas comprender los resultados sin verte abrumado por demasiada información.

Utilizar Nikto con Tor para reforzar el anonimato

En ciertos contextos pedagógicos o de investigación, puede ser útil lanzar Nikto sin exponer directamente tu dirección IP. La idea no es “esconderse para hacer el mal”, sino comprender cómo funcionan las capas de anonimización y los límites de este tipo de enfoque.

Tor actúa aquí como un intermediario: tu tráfico pasa por varios relés antes de llegar al servidor objetivo, lo que hace que tu origen sea mucho más difícil de identificar.

Técnicamente, Nikto no sabe usar Tor por sí solo. Simplemente le pediremos que pase a través del proxy SOCKS proporcionado por Tor. Una vez que Tor esté en ejecución en tu máquina (el servicio debe estar activo), Nikto enviará sus peticiones HTTP a través de este proxy, exactamente como lo haría un navegador configurado con Tor.

El comando básico es el siguiente:

nikto -h https://ejemplo.com -useproxy socks5://127.0.0.1:9050

Aquí, 127.0.0.1:9050 corresponde al proxy SOCKS de Tor por defecto. Ten en cuenta que los escaneos serán más lentos y que algunos resultados pueden ser incompletos. Es el precio a pagar por el anonimato, y también es una buena lección: en seguridad como en otros campos, cada elección técnica implica concesiones.

Ejemplos concretos de uso de Nikto

Tomemos un caso simple y realista. Has creado un sitio web personal y deseas verificar que ningún archivo sensible esté expuesto.

Lanzas el siguiente comando:

nikto -h https://misitio-prueba.es

Nikto te informa de la presencia de un archivo phpinfo.php. Esta información es valiosa, ya que este tipo de archivo muestra detalles internos sobre la configuración del servidor. Aunque no sea peligroso en sí mismo, nunca debería estar accesible en producción.

En otro escenario, podría indicar que el servidor utiliza una versión antigua de Apache. Esto no significa automáticamente que sea vulnerable, pero te invita a verificar las actualizaciones de seguridad disponibles.

Estos ejemplos ilustran bien la utilidad de Nikto. No da un veredicto definitivo, pero llama tu atención sobre puntos específicos que deben ser verificados.

Limitaciones de Nikto a tener en cuenta

Nikto es una excelente herramienta, pero no lo hace todo. No detecta las vulnerabilidades lógicas de una aplicación ni las relacionadas con el código de negocio. No reemplaza una auditoría de seguridad completa.

También puede generar falsos positivos. Esto significa que a veces señala un problema que en realidad no lo es. Por eso es esencial analizar siempre los resultados con perspectiva.

Finalmente, Nikto no es discreto. Es fácilmente detectable por los sistemas de seguridad modernos. Por lo tanto, debe utilizarse en un entorno controlado, nunca sobre objetivos no autorizados.

Diagrama del funcionamiento de Nikto
El proceso metódico de Nikto: petición, respuesta y comparación de firmas.

Tabla resumen de comandos y funcionalidades de Nikto

Comando u opciónDescripción
nikto -hDefine el host o sitio web a escanear
-pEspecifica el puerto a analizar
-oExporta los resultados a un archivo
-FormatDefine el formato de salida del informe
-VersionMuestra la versión de Nikto
-TuningPermite filtrar o limitar ciertas pruebas
-HelpMuestra la ayuda completa de la herramienta

Esta tabla puede servir como recordatorio cuando comiences a utilizar Nikto de forma regular.

Buenas prácticas antes de utilizar Nikto

Antes de cada escaneo, hazte siempre la misma pregunta: ¿tengo derecho a probar este servidor? Esta regla es fundamental, incluso para una herramienta de auditoría como esta.

Trabaja preferentemente en entornos de prueba o desarrollo. Esto te permitirá experimentar libremente sin arriesgarte a perturbar un sitio en producción.

Finalmente, ten en cuenta que Nikto es un punto de partida. Abre la puerta a una reflexión más amplia sobre la seguridad web y las buenas prácticas de configuración.

Nikto es una herramienta a la vez simple y potente. No busca impresionar con efectos espectaculares, sino proporcionar información concreta y útil. Para un principiante, es una excelente puerta de entrada al mundo de la seguridad web.

Al tomarte el tiempo de comprender sus resultados y sus limitaciones, desarrollas una visión más crítica sobre tus propios proyectos. Comienzas a ver un sitio web no solo como una interfaz, sino como un conjunto de componentes que deben ser protegidos.

Al final, utilizar Nikto no es solo escanear un servidor. Es adoptar un enfoque. Una forma de pensar en la seguridad desde la concepción, con curiosidad, método y un poco de humildad. Y es a menudo ahí donde comienza el verdadero aprendizaje.

Preguntas Frecuentes sobre Nikto (FAQ)

¿Es ilegal usar Nikto?

No, Nikto es una herramienta de auditoría legítima. Lo que es ilegal es usarla en servidores, sitios web o redes para los que no tienes permiso explícito. Úsala siempre en tus propios proyectos o en entornos autorizados.

¿Cuál es la diferencia entre Nikto y Nmap?

Nikto es un escáner de vulnerabilidades específico para servidores web (capa de aplicación). Busca archivos peligrosos, configuraciones incorrectas y software desactualizado. Nmap es un escáner de red que descubre hosts, puertos abiertos y servicios que se ejecutan en ellos (capas de red y transporte). A menudo se usan juntos: primero Nmap para ver qué puertos web están abiertos, y luego Nikto para analizar esos puertos.

¿Nikto todavía es útil actualmente?

Absolutamente. Aunque hay herramientas más modernas y rápidas como Nuclei (con templates actualizados a diario), Nikto sigue siendo imbatible para una pasada rápida que detecta fruta madura: versiones obsoletas, archivos olvidados, configuraciones chungas y mierdas básicas que siguen matando servidores en producción. Esto lo posiciona como una de las principales alternativas a Nikto para flujos de trabajo automatizados. Es simple, no requiere YAMLs ni configuraciones locas y sirve de lujo para aprender y para primeros chequeos. Para más contexto histórico, puedes consultar la página original de Nikto en CIRT.net o su entrada en Wikipedia.

🤞 ¡El Gran Hermano te vigila, pero sabemos cómo detenerlo!

¡No enviamos spam! Lee nuestra Política de Privacidad para más información.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda