web-dev-qa-db-fra.com

Liste de tous les arguments de script nmap disponibles

J'ai besoin de faire un scan, par exemple avec http-sql-injection.nse script nmap.

Je sais déjà que je devrais utiliser --script-args pour définir des arguments, mais ma question n'est pas à ce sujet.

Comment puis-je regarder sur l'ensemble du paquet d'arguments, que ce script (ou n'importe lequel des scripts de nmap) peut prendre?

4
F33D34DC47

Conformément à la documentation nmap dans "Exemple 9.2. Aide de script", le paramètre de nmap qui affiche l'aide sur le script est:

nmap --script-help <filename.nse>

À savoir:

nmap --script-help http-sql-injection.nse

Si vous regardez documentation NSE écrit par le propre créateur de Nmap:

3.1. Champ de description

Le champ de description décrit ce qu'un script teste et toutes les notes importantes dont l'utilisateur doit se méfier. Selon la complexité du script, la description peut varier de quelques phrases à quelques paragraphes. Le premier paragraphe doit être un bref résumé de la fonction de script adaptée à une présentation autonome à l'utilisateur. D'autres paragraphes peuvent fournir beaucoup plus de détails sur le script.

Fyodor explique que le champ "description" est utilisé pour tout décrire sur la complexité que le script lui-même pourrait avoir. Alors, allez-y et examinez plus en détail la façon dont le script a été créé:

 $ 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 ]]

Cela explique pourquoi le http-sql-injection.nse le script n'affiche pas les "options d'utilisation", que ce soit ce que vous attendiez.


Les scripts NSE ont la tradition d'inclure des "options d'utilisation" dans les commentaires. Une telle chose qui a été documentée dans la section " 8.1 La tête ":

Viennent ensuite les informations NSEDoc. Ce script ne contient pas les balises @usage et @args courantes car il est si simple, mais il a une balise 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

Comme la documentation ne montre pas explicitement l'utilisation de "@usage", regardez-vous dans /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
...
4
slayer

J'utilise d'abord locate nse | grep scripts pour lister tous les scripts

J'ai simplement cat et grep sur les arguments pour le script que je veux utiliser:

cat /usr/share/nmap/scripts/whatever-script.nse | grep args

Cela devrait vous montrer tous les arguments disponibles pour le script spécifique.

1
anon