De acuerdo con la documentación de nmap en "Ejemplo 9.2. Ayuda de script", el parámetro de nmap que muestra ayuda sobre el guión es:
nmap --script-help <filename.nse>
A saber:
nmap --script-help http-sql-injection.nse
Si observa documentación de NSE escrita por el propio creador de Nmap:
3.1. campo de descripción
El campo de descripción describe para qué está probando un script y cualquier nota importante que el usuario deba tener en cuenta.
Dependiendo de la complejidad del script, la descripción puede variar de unos pocos
Oraciones a unos pocos párrafos. El primer párrafo debe ser un breve
Sinopsis de la función de script adecuada para una presentación independiente.
al usuario. Otros párrafos pueden proporcionar muchos más detalles del script.
Fyodor explica que el campo "descripción" se usa para describir todo sobre la complejidad que podría tener el script. Por lo tanto, siga adelante y observe más a fondo cómo se creó el script:
$ vi /usr/share/nmap/scripts/http-sql-injection.nse
...
11 description = [[
12 Spiders an HTTP server looking for URLs containing queries vulnerable to an SQL
13 injection attack. It also extracts forms from found websites and tries to identify
14 fields that are vulnerable.
15
16 The script spiders an HTTP server looking for URLs containing queries. It then
17 proceeds to combine crafted SQL commands with susceptible URLs in order to
18 obtain errors. The errors are analysed to see if the URL is vulnerable to
19 attack. This uses the most basic form of SQL injection but anything more
20 complicated is better suited to a standalone tool.
21
22 We may not have access to the target web server's true hostname, which can prevent access to
23 virtually hosted sites.
24 ]]
Esto explica por qué el script http-sql-injection.nse
no muestra "opciones de uso" si eso es lo que esperaba ver.
Los scripts NSE tienen la tradición de incluir "opciones de uso" dentro de los comentarios. Tal cosa que se documentó en la sección " 8.1 The Head ":
A continuación viene la información NSEDoc. A este script le falta el común
Las etiquetas @usage y @args son muy simples, pero tienen un
Etiqueta NSEDoc @output:
---
--@output
-- 21/tcp open ftp ProFTPD 1.3.1
-- |_ auth-owners: nobody
-- 22/tcp open ssh OpenSSH 4.3p2 Debian 9etch2 (protocol 2.0)
-- |_ auth-owners: root
-- 25/tcp open smtp Postfix smtpd
-- |_ auth-owners: postfix
-- 80/tcp open http Apache httpd 2.0.61 ((Unix) PHP/4.4.7 ...)
-- |_ auth-owners: dhapache
-- 113/tcp open auth?
-- |_ auth-owners: nobody
-- 587/tcp open submission Postfix smtpd
-- |_ auth-owners: postfix
-- 5666/tcp open unknown
-- |_ auth-owners: root
Dado que la documentación no muestra explícitamente el uso de "@usage", búscate en /usr/share/nmap/scripts/
:
$ grep -iR -A5 "@usage" /usr/share/nmap/scripts/
/usr/share/nmap/scripts/ajp-brute.nse:-- @usage
/usr/share/nmap/scripts/ajp-brute.nse--- nmap -p 8009 <ip> --script ajp-brute
/usr/share/nmap/scripts/ajp-brute.nse---
/usr/share/nmap/scripts/ajp-brute.nse--- @output
/usr/share/nmap/scripts/ajp-brute.nse--- PORT STATE SERVICE
/usr/share/nmap/scripts/ajp-brute.nse--- 8009/tcp open ajp13
...