使用Nmap扫描Windows主机445端口:脚本无法执行的问题
问题原因与解决方法
核心原因
- FIN扫描无法建立完整TCP连接:
-sF属于FIN隐蔽扫描,仅发送FIN包而不完成TCP三次握手,SMB协议需要完整的连接才能进行协议交互,脚本无法在这种模式下获取有效响应。 - 脚本仅识别
open状态端口:Nmap的SMB系列脚本默认只将状态为open的端口视为有效端口,open|filtered状态会被脚本排除,因此出现"SMB: Couldn't find a valid port to check"错误。
解决办法
方法1:改用常规扫描模式(推荐)
使用能建立完整TCP连接的扫描类型,让端口被识别为open状态,脚本即可正常运行:
- SYN扫描(需root权限,Nmap默认扫描方式):
sudo nmap -sS --script smb2-security-mode.nse 192.168.184.135 -p 445 -Pn
- TCP连接扫描(无需root权限):
nmap -sT --script smb2-security-mode.nse 192.168.184.135 -p 445 -Pn
方法2:强制脚本指定端口(适合必须用FIN扫描的场景)
通过--script-args参数强制脚本使用指定的445端口,跳过端口状态检测:
sudo nmap -sF --script smb2-security-mode.nse --script-args smb.port=445 192.168.184.135 -p 445 -Pn
内容的提问来源于stack exchange,提问作者Ghassan AMAIMIA
相关产品推荐
相关产品推荐

