假设我们正在进行 TCP 连接扫描。
谷歌上的 nmap 扫描返回以下输出:
港口国务
80/tcp 打开http
443/tcp 打开https
但是,例如,如果我尝试在 google.com 上的端口 12 上使用 netcat 或 telnet 打开套接字,则 netcat 或 telnet 会无限期挂起。
Nmap 检测到端口 12(以及除 80 或 443 之外的其他端口)已关闭,但启动与它们的 TCP 连接不会立即关闭。
nmap 怎么知道那些端口没有被过滤而是关闭?
假设我们正在进行 TCP 连接扫描。
谷歌上的 nmap 扫描返回以下输出:
港口国务
80/tcp 打开http
443/tcp 打开https
但是,例如,如果我尝试在 google.com 上的端口 12 上使用 netcat 或 telnet 打开套接字,则 netcat 或 telnet 会无限期挂起。
Nmap 检测到端口 12(以及除 80 或 443 之外的其他端口)已关闭,但启动与它们的 TCP 连接不会立即关闭。
nmap 怎么知道那些端口没有被过滤而是关闭?
使用 nmap 扫描,您通常会获得 3 种状态:
打开一个 netcat 到端口 80 并等待不会做任何事情。端口 80(通常)意味着 http 服务器正在侦听另一端,并且正在等待 HTTP 命令(直到它自己超时)。netcatting 到 80 端口后,尝试 sedinng aGET /以查看是否收到回复(可能是 http 错误)。
关闭的端口是没有任何软件侦听的端口,因此在该系统上尝试连接到该端口将导致系统发回 TCP RST 数据包。
另一方面,过滤端口通常是被网络路径中的防火墙阻止的端口,因此尝试连接到该系统上的该端口将导致根本没有任何返回......甚至不是TCP RST ...因此连接尝试将一直存在,直到 TCP 连接尝试超时。