自从上次女神节征文获得一盒巧克力之后,我总是盼望着再来一个什么征文。那时正是写得顺手的时候,仿佛觉得自己提笔就是一本爱情小说。奈何幻觉它也是有时效性的,巧克力吃完之后,我又变回到一个技术作者的身份,还是一名文思枯竭的作者。就在这时,51CTO又有征文活动,不参加吧,舍不得京东的购书卷,参加吧,这枯竭状态能挤出什么来?两难之时,远处知识的海洋里泛起玲玲波光,定睛一看,好家伙,Wireshark!就是它了,京东的购书卷就靠它了!让我们先来看看,外国的技术人员怎么使用Wireshark的,之后的博客中,我们再讨论自己的想法。
在本文中,您将学习当***者使用NMAP端口扫描方法扫描目标时,如何使用Wireshark捕获网络数据包。 在这里,您将注意到Wireshark如何捕获用于打开和关闭端口的不同网络流量数据包。
TCP扫描
Tcp扫描将扫描TCP端口(例如端口22、21、23、445等),并通过源端口和目标端口之间的三向握手连接确保侦听端口(打开)。如果端口是开放的,则源发出带有SYN数据包的请求,响应目标发送SYN,ACK数据包,然后源发送ACK数据包,最后,源再次发送RST,ACK数据包。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sT -p 445 192.168.1.102
从给定的图像中,您可以观察到端口445打开的结果。
查看通过Wireshark捕获的源与目标之间的数据包传输顺序。您会注意到它捕获了与上述相同的标志序列:
1)源将SYN数据包发送到目标
2)目标已将SYN,ACK发送到源
3)源将ACK数据包发送到目标
4)源再次发送RST,ACK到目标
让我们找出关闭端口的网络流量。 根据给定的图像,它显示了扫描端口是否关闭,则源和目标之间将无法进行三向握手连接。源发送了SYN包,如果端口关闭,则接收器将通过RST,ACK发送响应。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sT -p 3389 192.168.1.102
从给定的图像中,您可以观察到端口3389关闭的结果。 查看通过Wireshark捕获的源与目标之间的数据包传输顺序。您会注意到它捕获了与上述相同的标志序列:
1)源将SYN数据包发送到目标
2)目标发送了RST,ACK数据包到源
Stealth扫描
出于充分的原因,SYN扫描是默认的也是最受欢迎的扫描选项。 它可以快速执行,在不受限制性防火墙阻碍的快速网络上每秒扫描数千个端口。 由于它从不完成TCP连接,因此它也是相对典型且隐蔽的。
如果收到一个SYN数据包(无ACK标志)作为响应,则该端口也被认为是开放的。
这种技术通常称为半开扫描,因为您没有打开完整的TCP连接。 您发送SYN数据包,就像要打开一个真实的连接,然后等待响应。 SYN,ACK表示端口正在侦听(打开)
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sS -p 22 192.168.1.102
从给定的图像中,您可以观察到端口22打开的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将SYN数据包发送到目标
2)目的地向源发送了SYN,ACK数据包
3)源将RST数据包发送到目标
现在使用隐身扫描找出关闭端口的流量。 当源在特定端口上发送SYN数据包时,如果端口关闭,则目标将通过发送RST数据包进行回复。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sS -p 3389 192.168.1.102
从给定的图像中,您可以观察到端口3389关闭的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序。
1)源将SYN数据包发送到目标
2)目标向目标发送了RST,ACK数据包
Fin扫描
通常在数据传输完成后,使用FIN数据包终止源端口和目标端口之间的TCP连接。Nmap代替SYN数据包,通过使用FIN数据包开始FIN扫描。 如果端口是开放的,则当通过源端口发送FIN数据包时,目标端口将没有响应。
Fin-Scan仅在Linux机器上可用,而在最新版本的Windows上不可用。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sF -p 22 192.168.1.102
从给定的图像中,您可以观察到端口22打开的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将FIN数据包发送到目标
2)目的地未回复来源
同样,如果对任何关闭都执行Fin扫描,则将向源端口发送FIN数据包至特定端口,而目标端口将通过发送RST,ACK数据包进行回复。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sF -p 3389 192.168.1.102
从给定的图像中,您可以观察到端口3389关闭的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序。
1)源将SYN数据包发送到目标
2)目标已将RST数据包发送到目标
Null扫描
空扫描是一系列TCP数据包,其序列号为“零”(0000000),并且由于未设置任何标志,因此目的地将不知道如何回复请求。它将丢弃该数据包,并且不会发送任何答复,这表明该端口已打开。
空扫描仅在Linux机器上可用,而在最新版本的Windows上不可用。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sN -p 22 192.168.1.102
从给定的图像中,您可以观察到端口22打开的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将Null数据包发送到目标
2)目的地未回复来源
如果端口关闭,则当源在特定端口上发送空数据包时,目标将发送RST ACK数据包作为响应。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sN -p 3389 192.168.1.102
从给定的图像中,您可以观察到端口3389关闭的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将Null(无)数据包发送到目标
2)目标已将RST,ACK发送到源
UDP扫描
UDP扫描通过将UDP数据包发送到每个目标端口来进行。 这是一个无连接协议。 对于某些常见端口(例如53和161),将发送协议特定的有效负载以提高响应速率,服务将使用UDP数据包进行响应,证明其已打开。重发后,如果未收到响应,则将端口分类为openn|filtered。 这意味着端口可能是开放的,或者数据包筛选器正在阻止通信。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sU -p 161 192.168.1.119
从给定的图像中,您可以观察到端口161打开的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将UDP数据包发送到目标
2)目标发送了带有一些数据的UDP数据包到源
类似地,如果源在关闭端口上向目标发送了UDP数据包,则目标发送了带有无法访问的ICMP数据包端口的回复,并带有相应的错误。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sU -p 53 192.168.1.119
从给定的图像中,您可以观察到端口53关闭的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将UDP数据包发送到目标
2)目标发送的ICMP数据包端口无法到达源
Xmas扫描
这些扫描旨在处理TCP标头的PSH,URG和FIN标志,设置FIN,PSH和URG标志,从而像圣诞树一样照亮数据包。当源将FIN,PUSH和URG数据包发送到特定端口时,如果该端口已打开,则目标将丢弃该数据包,并且将不向源发送任何答复。
Xmas Scan仅在Linux机器上可用,而在最新版本的Windows上不可用。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sX -p 22 192.168.1.102
从给定的图像中,您可以观察到端口22打开的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将FIN,PUSH和URG数据包发送到目标
2)目的地未回复来源
同样,如果源将FIN,PUSH和URG数据包发送到特定端口,并且如果端口关闭,则目标将向源发送RST,ACK数据包。
键入以下NMAP命令以进行TCP扫描,并在另一只手上启动Wireshark以捕获已发送的数据包。
nmap -sX -p 3389 192.168.1.102
从给定的图像中,您可以观察到端口3389关闭的结果。
查看通过Wireshark捕获的源和目标之间的数据包传输顺序:
1)源将FIN,PUSH和URG数据包发送到目标
2)目标RST,ACK数据包到源
亲爱的读者请注意,此为译文,原文来自网络,早前找好的参考资料,现在原文的地址我也忘了,如果涉及版权问题,请及时联系我。