web-dev-qa-db-ja.com

使用可能なすべてのnmapスクリプト引数のリスト

たとえば、http-sql-injection.nsenmapスクリプトを使用してスキャンを実行する必要があります。

--script-args引数を設定しますが、私の質問はそれについてではありません。

このスクリプト(またはnmapのスクリプトのいずれか)がとることができる引数のパック全体をどのように見ることができますか?

4
F33D34DC47

「例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
...
4
slayer

まず、locate nse | grep scriptsを使用してすべてのスクリプトをリストします

私は単に、使用したいスクリプトの引数をcatおよびgrepに出力します。

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

これにより、特定のスクリプトで使用できるすべての引数が表示されます。

1
anon