我与小组中的一位博士生聊天,他告诉我 Windows 有 2,500 个开放的 UDP 端口。
因此,如果在 2500 个开放的 UDP 端口中使用了某个临时端口,那么攻击者就很难知道使用了哪个端口,因为它们都是开放的。
我以前从未听说过,所以我检查了自己的环境并发现了这一点:
C:\Users\Administrator>netstat -ab
Active Connections
TCP [fe80::fc9b:3f4b:206e:b05%9]:49689 WIN-Test:epmap TIME_WAIT
TCP [fe80::fc9b:3f4b:206e:b05%9]:49690 WIN-Test:49667 ESTABLISHED
[lsass.exe]
TCP [fe80::fc9b:3f4b:206e:b05%9]:49691 WIN-Test:ldap ESTABLISHED
[dns.exe]
TCP [fe80::fc9b:3f4b:206e:b05%9]:49695 WIN-Test:epmap ESTABLISHED
[lsass.exe]
TCP [fe80::fc9b:3f4b:206e:b05%9]:49696 WIN-Test:49667 ESTABLISHED
[lsass.exe]
UDP 0.0.0.0:123 *:*
W32Time
[svchost.exe]
UDP 0.0.0.0:389 *:*
[lsass.exe]
UDP 0.0.0.0:500 *:*
IKEEXT
[svchost.exe]
UDP 0.0.0.0:4500 *:*
IKEEXT
[svchost.exe]
UDP 0.0.0.0:5353 *:*
Dnscache
[svchost.exe]
UDP 0.0.0.0:5355 *:*
Dnscache
[svchost.exe]
UDP 0.0.0.0:50271 *:*
[dns.exe]
UDP 0.0.0.0:50272 *:*
[dns.exe]
UDP 0.0.0.0:50273 *:*
[dns.exe]
UDP 0.0.0.0:50274 *:*
[dns.exe]
UDP 0.0.0.0:50275 *:*
[dns.exe]
UDP 0.0.0.0:50276 *:*
[dns.exe]
UDP 0.0.0.0:50277 *:*
[dns.exe]
UDP 0.0.0.0:50278 *:*
[dns.exe]
UDP 0.0.0.0:50279 *:*
[dns.exe]
UDP 0.0.0.0:50280 *:*
[dns.exe]
UDP 0.0.0.0:50281 *:*
[dns.exe]
UDP 0.0.0.0:50282 *:*
[dns.exe]
UDP 0.0.0.0:50283 *:*
[dns.exe]
UDP 0.0.0.0:50284 *:*
[dns.exe]
UDP 0.0.0.0:50285 *:*
[dns.exe]
UDP 0.0.0.0:50286 *:*
[dns.exe]
UDP 0.0.0.0:50287 *:*
[dns.exe]
UDP 0.0.0.0:50288 *:*
[dns.exe]
UDP 0.0.0.0:50289 *:*
[dns.exe]
UDP 0.0.0.0:50290 *:*
[dns.exe]
UDP 0.0.0.0:50291 *:*
[dns.exe]
UDP 0.0.0.0:50292 *:*
[dns.exe]
UDP 0.0.0.0:50293 *:*
[dns.exe]
UDP 0.0.0.0:50294 *:*
[dns.exe]
UDP 0.0.0.0:50295 *:*
[dns.exe]
UDP 0.0.0.0:50296 *:*
[dns.exe]
UDP 0.0.0.0:50297 *:*
[dns.exe]
UDP 0.0.0.0:50298 *:*
[dns.exe]
UDP 0.0.0.0:50299 *:*
[dns.exe]
UDP 0.0.0.0:50300 *:*
[dns.exe]
UDP 0.0.0.0:50301 *:*
[dns.exe]
UDP 0.0.0.0:50302 *:*
[dns.exe]
UDP 0.0.0.0:50303 *:*
[dns.exe]
UDP 0.0.0.0:50304 *:*
[dns.exe]
UDP 0.0.0.0:50305 *:*
[dns.exe]
UDP 0.0.0.0:50306 *:*
[dns.exe]
UDP 0.0.0.0:50307 *:*
[dns.exe]
UDP 0.0.0.0:50308 *:*
[dns.exe]
UDP 0.0.0.0:50309 *:*
[dns.exe]
UDP 0.0.0.0:50310 *:*
[dns.exe]
UDP 0.0.0.0:50311 *:*
[dns.exe]
这只是我的终端显示的一部分。总金额约为2k。
从规范0.0.0.0
意味着端口正在侦听所有接口。第一个*
in*:*
表示连接可以来自任何 IP 地址,第二个*
in*:*
表示连接可以来自远程计算机上的任何端口。因此,它是一个等待连接的套接字。但是,它没有,LISTENING
但我想在这种情况下它是开放的。
现在,我有以下问题:
- 通常不同的接口有不同的端口,这意味着如果 NIC A 和 NIC B 都打开了端口 C,那么 A 的 C 和 B 是不同的东西。但是从输出中,我们可以看到 windows 还提供了所有 NIC 共享的端口。这些端口是否永久可用于所有 NIC?或者,如果某些套接字用于某些服务,则此端口专门用于该 NIC。
- 开放的 2500 个 udp 端口,如果服务器发送一个 UDP 数据包,系统会不会只使用其中一个作为临时端口?
我稍后会自己做一些检查,但我也想听听一些与之相关的观点。
终端中显示的这些端口似乎未打开
[dns.exe]
UDP 0.0.0.0:53161 *:*
[dns.exe]
UDP 0.0.0.0:53162 *:*
[dns.exe]
UDP 0.0.0.0:53163 *:*
[dns.exe]
我向 53162 发送了一个 udp 数据包,Windows 发回了一个 UDP 数据包,并且 ICMP 端口无法访问
根据丹尼尔的评论,该端口似乎是因为dns.exe
. 所以我向 Windows 发送了一个 DNS 查询,但 ICMP 端口也无法访问。但是,A 记录是在 ICMP 之前发送的。