web-dev-qa-db-ja.com

NmapでSMBv1ステータスを検索します

Nmapのスクリプトオプションを使用して、SMB 1がまだサーバー側で有効になっているマシンを見つける方法はありますか?可能な場合は、修復を監視する方がはるかに高速です。

この1つの情報について、完全なOpenVASスキャンを実行する必要はありません。

5
Tim Brigham

現在、これを確認するスクリプトはありません。既存の smbv2-enabled スクリプト。現在、スクリプトには3つの可能な出力があります。

  • 出力なし:SMBどのバージョンでも失敗しました。
  • 「サーバーはSMBv2プロトコルをサポートしています」:サーバーは少なくともSMBv2をサポートし、SMBv1もサポートする可能性があります。
  • 「サーバーはSMBv2プロトコルをサポートしていません」:サーバーはSMBv1をサポートしていますが、SMBv2はサポートしていません。

ご覧のとおり、SMBv2対応のホストがSMBv1もサポートするかどうかについては、あいまいさがいくつかあります。しかし、各方言を順番にテストするようにスクリプトを変更するのは非常に簡単です。

編集:これはNmapすぐに来ています。 https://github.com/nmap/nmap/pull/94

編集2:これは、Nmap 7.60では smb-protocols スクリプト。

8
bonsaiviking

Smbv2-enabledスクリプトを使用して他のすべての方言を削除し、NT LM .12のみを残すことで、半機能のsmbv1-enabled.nseを作成できました。

SMBv1は本当にNT LM .12であることに注意してください

これを行うと、2つの結果のうちの1つが得られます。サーバーでSMBv1が有効になっている場合、サーバーがsmbv2をサポートしていないという偽のエラーが表示されます。 SMBv1が無効になっている場合、メッセージはまったく表示されません(SMBハンドシェイクが失敗するため)。

2
AprilMJ

他の回答とは異なり、smb-vuln-ms08-067およびsmb-vuln-cve2009-3103というスクリプトがあります。これはnmap -sU --script smb-vuln-ms08-067.nse -p U:137 <Host>またはnmap --script smb-vuln-ms08-067.nse -p445 <Host>を介して使用できます

nmap --script smb-os-discovery.nse -p445 127.0.0.1はホストとプロトコルを検出します。grepを使用して、smbv1がまだサポートされているかどうかを確認するだけです。

最新のSMBv2エクスプロイト検出については、次を使用します https://github.com/countercept/doublepulsar-c2-traffic-decryptor

使用例

nmap --script smb-vuln-ms08-067.nse -p445 nmap -sU --script smb-vuln-ms08-067.nse -p U:137

必須

msrpc nmap smb stdnse string table vulns

リファレンス: https://nmap.org/nsedoc/scripts/smb-vuln-ms08-067.html

2