Ping a.b.c.d 的工作原理类似于雷达,如果Ping包被正确反弹回来,说明至少3件事:
目标IP地址(a.b.c.d)被正确配置在目标主机上,且没有禁止ICMP Echo Reply + 防火墙阻断。
目标主机------> 源主机IP网络连通状态,且没有防火墙阻断。
以上3件事,要同时为True,才能成功Ping a.b.c.d。
隐含的意思是,如果以上3件事,只要有任意一件事为False,则无法成功Ping a.b.c.d。
问题来了,Ping a.b.c.d 的应答报文(Echo Reply)一定是目标主机(IP ==a.b.c.d)发出的吗?
不一定。
为什么?
Ping的请求报文(Echo Request)与 应答报文(Echo Reply)皆为明文传输,伪造易如反掌。凡是能够看到Echo Request的互联网节点,都可以伪造并正确响应。
互联网凡是明文传输的报文如DNS、HTTP、ICMP都是可以伪造的!
即使看不到Echo Request的互联网主机,一样可以伪造应答报文(Echo Reply)并发给源主机,只是难度更大而已。需要盲猜ICMP Identifier、Sequence Number、ICMP Data。
这是互联网安全话题,本文默认没有其它第三方伪造报文攻击。
由于Ping受限于只能验证网络的IP连通性(OSI参考模型的第三层),无法提供更多的信息。
如果想验证目标主机(IP ==a.b.c.d),是否有服务器在侦听(Listening)TCP端口23,并接受(Accept)Client的连接,Ping是无法胜任的,则需要另外一个工具,它的名字是?
Telnet
“Telnet a.b.c.d” 恰好满足以上需求,工作如下:
尝试与Destination IP == a.b.c.d 且TCP Destination Port ==23 建立TCP连接。
如果Timeout,说明网络可能不通、a.b.c.d可能没有上线、防火墙可能阻断TCP 23端口。
如果Refused,说明到达服务器a.b.c.d网络是通的,但是服务器没有进程侦听TCP 23端口。或者该Client IP被Server以地域歧视、或者曾经做过不光彩的事,而被拉黑(Blocked)。
如果Reset,说明到达服务器a.b.c.d网络是通的、且服务器TCP 23端口工作正常。只是Client发出的应用层报文,Server无法理解或者无法处理而Reset连接。
Ping是网络IP连通性验证工具,工作在网络层(OSI模型的网络层/第3层)。 如果Telnet工作在官方默认端口(TCP Port ==23),则Telnet不仅是TCP传输层验证工具,还是应用层Telnet协议的验证工具。比如 Telnet a.b.c.d,这里的默认端口为TCP Port ==23。
如果Telnet工作不在官方默认端口(TCP Port ==23),则Telnet仅仅是TCP传输层验证工具,工作在传输层TCP(OSI模型的传输层/第4层)。比如Telnet a.b.c.d 80,这里端口为TCP Port ==80。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...