たとえば、http-sql-injection.nsenmapスクリプトを使用してスキャンを実行する必要があります。
--script-args
引数を設定しますが、私の質問はそれについてではありません。
このスクリプト(またはnmapのスクリプトのいずれか)がとることができる引数のパック全体をどのように見ることができますか?
「例9.2。スクリプトヘルプ」の nmapドキュメント に一致すると、スクリプトに関するヘルプを表示するnmapのパラメータは次のようになります。
nmap --script-help <filename.nse>
つまり:
nmap --script-help http-sql-injection.nse
NSEのドキュメント を見ると、Nmapの作成者が作成したものです。
3.1。説明フィールド
説明フィールドには、スクリプトのテスト対象と、ユーザーが注意すべき重要な注意事項が記述されています。スクリプトの複雑さに応じて、説明は数文から数段落まで異なる場合があります。最初の段落は、ユーザーへのスタンドアロン表示に適したスクリプト関数の簡単な概要でなければなりません。さらなる段落は、はるかに多くのスクリプト詳細を提供するかもしれません。
Fyodorは、「説明」フィールドは、スクリプト自体が持つ可能性のある複雑さについてすべてを説明するために使用されると説明しています。では、スクリプトがどのように作成されたかを詳しく見てみましょう。
$ 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 ]]
これは、http-sql-injection.nse
スクリプトは、想定どおりの「使用オプション」を表示しません。
NSEスクリプトには、コメント内に「使用オプション」を含めるという伝統があります。セクション「8.1 The Head」に記載されているようなもの:
次はNSEDoc情報です。このスクリプトは非常に単純なので、一般的な@usageおよび@argsタグがありませんが、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
ドキュメントでは「@usage」の使用を明示的に示していないため、/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
...
まず、locate nse | grep scripts
を使用してすべてのスクリプトをリストします
私は単に、使用したいスクリプトの引数をcat
およびgrep
に出力します。
cat /usr/share/nmap/scripts/whatever-script.nse | grep args
これにより、特定のスクリプトで使用できるすべての引数が表示されます。