root@sparrow:~/writeups$ cat nikto.md
// web
Nikto
21 Jul 2026
· 5 min read
Nikto is an open-source web server scanner that looks for insecure configurations, dangerous files and scripts, outdated versions and known vulnerabilities. It is one of the first tools you run against an HTTP/HTTPS target to get a quick map of its attack surface.
Nikto is noisy by design: it fires thousands of known requests without caring about stealth, so any IDS/WAF will spot it instantly. Its value lies not in evasion but in the coverage and speed of a first sweep; its findings are leads you must always verify by hand, because it produces false positives easily.
1. Beginner level — scanning, SSL and reports

| Command | What it does |
|---|---|
nikto -h <t> | Basic web vulnerability scan |
nikto -h <t> -p 80,443 | Specify the ports to scan |
nikto -h <t> -o out.html -Format htm | Save the output as HTML |
nikto -h <t> -ssl | Force the use of SSL/TLS |
nikto -h <t> -Tuning 1 | Limit the scan to a single category |
nikto -h <t> -nointeractive | Run without interactive pauses |
nikto -h <t> -Display V | Show detailed information |
nikto -update | Update the plugin database |
nikto -h <t> -maxtime 60s | Limit the total scan time |
nikto -h <t> -useproxy | Use the default configured proxy |
nikto -h <t> -timeout 10 | Adjust the connection timeout |
nikto -h <t> -no404 | Disable the 404 error check |
nikto -Version | Show the installed version |
nikto -h <t> -ask no | Don't prompt when finding false positives |
2. Advanced level — evasion, plugins and mutation

| Command | What it does |
|---|---|
nikto -h <t> -Tuning 9 | Only tests of interest (SQLi, XSS...) |
nikto -h <t> -evasion 1 | Apply IDS evasion techniques |
nikto -h <t> -mutate 1 | Generate username combinations |
nikto -h <t> -Cgidirs all | Force the check of all CGI directories |
nikto -h <t> -vhost <dominio> | Specify a particular virtual host |
nikto -h <t> -id user:pass | HTTP basic authentication |
nikto -h <t> -Plugins "@@ALL" | Run all available plugins |
nikto -h <t> -404code 302 | Redefine which code means "not found" |
nikto -config <file> | Use your own configuration file |
nikto -h <t> -T 0123456789 | Run all test categories |
nikto -h <t> -root <path> | Add a base path to the tests |
nikto -h <t> -Save <dir> | Save the HTTP responses received |
nikto -h <t> -mutate 4 | Force mutation with your own dictionary |
nikto -h <t> -Format msf+ | Export results ready for Metasploit |
3. Details people miss
- Nikto is extremely noisy: it fires thousands of requests and shows up immediately in any log, IDS or WAF. Don't use it when you need stealth.
- Keep the database up to date with
nikto -updatebefore scanning; an old DB misses recent checks. - It produces plenty of false positives, especially if the server returns 200 for non-existent paths. Always verify findings by hand and tune with
-no404or-404code. - The
-sslflag forces TLS even when the port isn't 443; handy for HTTPS services on non-standard ports that Nikto won't detect on its own. - The
-evasiontechniques obfuscate URLs to bypass simple filters, but a modern WAF recognizes them and they can also break valid checks.
Responsible use
These commands are for systems you own or have explicit written authorisation to test (labs, CTFs, contracted engagements). Using them against third-party infrastructure without permission is illegal in most countries.
Nikto es un escáner de servidores web de código abierto que busca configuraciones inseguras, archivos y scripts peligrosos, versiones desactualizadas y vulnerabilidades conocidas. Es una de las primeras herramientas que se lanza contra un objetivo HTTP/HTTPS para obtener un mapa rápido de su superficie de ataque.
Nikto es ruidoso por diseño: lanza miles de peticiones conocidas sin preocuparse por el sigilo, así que cualquier IDS/WAF lo detectará al instante. Su valor no está en la evasión sino en la cobertura y la velocidad de un primer barrido; los hallazgos son pistas que siempre hay que verificar a mano, porque genera falsos positivos con facilidad.
1. Nivel principiante — escaneo, SSL y reportes

| Comando | Qué hace |
|---|---|
nikto -h <t> | Escaneo básico de vulnerabilidades web |
nikto -h <t> -p 80,443 | Especifica los puertos a escanear |
nikto -h <t> -o out.html -Format htm | Guarda el resultado en HTML |
nikto -h <t> -ssl | Fuerza el uso de SSL/TLS |
nikto -h <t> -Tuning 1 | Limita el escaneo a una categoría |
nikto -h <t> -nointeractive | Ejecuta sin pausas interactivas |
nikto -h <t> -Display V | Muestra información detallada |
nikto -update | Actualiza la base de datos de plugins |
nikto -h <t> -maxtime 60s | Limita el tiempo total de escaneo |
nikto -h <t> -useproxy | Usa el proxy configurado por defecto |
nikto -h <t> -timeout 10 | Ajusta el timeout de conexión |
nikto -h <t> -no404 | Desactiva la comprobación de error 404 |
nikto -Version | Muestra la versión instalada |
nikto -h <t> -ask no | No pregunta al hallar falsos positivos |
2. Nivel avanzado — evasión, plugins y mutación

| Comando | Qué hace |
|---|---|
nikto -h <t> -Tuning 9 | Solo pruebas de interés (SQLi, XSS...) |
nikto -h <t> -evasion 1 | Aplica técnicas de evasión de IDS |
nikto -h <t> -mutate 1 | Genera combinaciones de usuarios |
nikto -h <t> -Cgidirs all | Fuerza el chequeo de todos los CGI |
nikto -h <t> -vhost <dominio> | Especifica un virtual host concreto |
nikto -h <t> -id user:pass | Autenticación básica HTTP |
nikto -h <t> -Plugins "@@ALL" | Ejecuta todos los plugins disponibles |
nikto -h <t> -404code 302 | Redefine qué código es "no encontrado" |
nikto -config <file> | Usa un archivo de configuración propio |
nikto -h <t> -T 0123456789 | Ejecuta todas las categorías de test |
nikto -h <t> -root <path> | Añade un path base a las pruebas |
nikto -h <t> -Save <dir> | Guarda las respuestas HTTP recibidas |
nikto -h <t> -mutate 4 | Fuerza mutación con diccionario propio |
nikto -h <t> -Format msf+ | Exporta resultados listos para Metasploit |
3. Detalles que se pasan por alto
- Nikto es extremadamente ruidoso: dispara miles de peticiones y aparece de inmediato en cualquier log, IDS o WAF. No lo uses cuando necesites sigilo.
- Mantén la base de datos actualizada con
nikto -updateantes de escanear; una BD vieja pasa por alto comprobaciones recientes. - Genera bastantes falsos positivos, sobre todo si el servidor responde 200 a rutas inexistentes. Verifica siempre los hallazgos a mano y ajusta con
-no404o-404code. - El flag
-sslfuerza TLS aunque el puerto no sea 443; útil para servicios HTTPS en puertos no estándar que Nikto no detecta solo. - Las técnicas de
-evasionofuscan las URLs para saltarse filtros simples, pero un WAF moderno las reconoce y además pueden romper comprobaciones válidas.
Uso responsable
Estos comandos son para entornos propios o con autorización explícita por escrito (laboratorios, CTF, auditorías contratadas). Usarlos contra infraestructura ajena sin permiso es ilegal en la mayoría de países.