web-dev-qa-db-ja.com

nmap NSEスクリプト引数を使用する方法

http-default-accounts.に引数を渡すことで、これをどのように改善できますか?良い結果が出ない

# Find vulnerable web logins

# How many random hosts do you want to scan ?

N_HOSTS=5000

nmap\
 -Pn\
 -sS\
 -sV\
 -n\
 -T5\
 -p 8080, 80, 8000\
 --script http-default-accounts\
 --open\
 -oX results.xml\
 -iR $N_HOSTS
1
Ricky Wilson

NSEスクリプトに引数を渡すことは、適切に理解されれば非常に簡単です。基本的には、luaテーブルのフォーマットに従います。また、Nmapのオプションの使用法に疑問がある場合は、-d<level>フラグを使用してデバッグモードをオンにできます。通常、-d2でスクリプトを確認できます。指定されたスクリプトhttp-default-accountsの場合、次のようになります-

nmap <options> --script http-default-accounts --script-args "http-default-accounts.basepath='/admin', category='web', fingerprintfile=/usr/share/nmap/nselib/data/http-default-accounts-fingerprints.lua"

引数にはscript-name.argument形式とargument形式を使用していることに注意してください。どちらも同じように機能しますが、前者は異なるスクリプトが同じ引数変数を想定していて、異なる値を指定したい場合に使用されます。現在の状態では、このスクリプトは複数のbasepathまたはcategoryまたはfingerprintfileを取りません。スクリプト引数の使用法を習得するには、任意の深さのネストされたテーブルを使用できるhttp-form-fuzzerスクリプトを使用してみてください。

1
Abhishek Singh

ここには基本的に2つの質問があります。

  • なぜ私は良い結果が得られないのですか
  • 結果を改善するために、どのscript引数を使用できますか?

http-default-accountsスクリプトで良い結果が得られない可能性が最も高い理由は、デフォルトではインターネット上にそれほど多くのシステムがないためですスクリプトが認識しているアカウント。 5000アドレスは多くのように思えるかもしれませんが、ルーティング可能なインターネットの0.00012%にすぎません。アクティブであることがわかっているアドレスのリストにスキャンを制限すると、チャンスが大幅に増加します。また、スクリプトが対応していないデフォルトのアカウントがいくつかわかっている場合は、それらをフィンガープリントファイルに追加して(Nmap Projectに送信して))、それらのシステムをより多くキャッチするのに役立ちます。

スクリプトは、使用するライブラリからscript引数を継承します。スクリプトの引数とライブラリ引数のリストは、 NSEdocポータル で確認できます。特定のスクリプトでそれらを見つける方法は次のとおりです。

まず、nmap --script-help your-script-nameを実行して、ドキュメントへのURLを取得します。

 $ nmap --script-help http-default-accounts 
 
 2017年にNmap 7.50(https://nmap.org)から開始-07-11 09:05 CDT 
 
 http-default-accounts 
 Categories:discovery auth intrusive 
 https://nmap.org/nsedoc/scripts/ http-default-accounts.html 
さまざまなWebアプリケーションおよびデバイスで使用されるデフォルトの認証情報を使用したアクセスのテスト。
 <snip> 

Categories:行の下のそのURLは http-default-accountsのNSEdocページ にリンクしています。そこで、Script Argumentsヘッダーの下に、スクリプトがサポートする引数のリストが表示されます。

これらの引数を簡単に確認すると、主にテストの範囲の制限または変更に関係していることがわかります。

  • http-default-accounts.category-テストをすべて試行するのではなく、このカテゴリのみに制限します。
  • http-default-accounts.fingerprintfile-自分で作成した場合は、別の指紋ファイルを使用します。
  • http-default-accounts.basepath-別のベースURIにインストールされているウェブアプリを確認します。このような広範なスキャンには役立ちません。

httpライブラリから継承された引数は、ほとんどがパフォーマンスのチューニング用ですが、http.useragentを設定して、NSEでスキャンしていることを通知しないようにすることができます。他のライブラリ(credssmbauth)は、使用するスクリプトに資格情報を渡すために使用され、このスクリプトは代わりに独自のリストを使用するため、ここでは実際には関係ありません。

ユーザー名とパスワードのリストを指定する方法があるかどうかかどうかを別の回答にコメントで質問しました。 http-default-accountsはありません。これは、さまざまなアプリケーションでdefaultユーザー名とパスワードを使用するためです。代わりに http-brute または http-form-brute を使用して、特定のユーザー名とパスワードのリストに対してさまざまな形式のWeb認証をテストできます。

0
bonsaiviking