通过Wireshark理解Nmap扫描
自从上次女神节征文获得一盒巧克力之后,我总是盼望着再来一个什么征文。那时正是写得顺手的时候,仿佛觉得自己提笔就是一本爱情小说。奈何幻觉它也是有时效性的,巧克力吃完之后,我又变回到一个技术作者的身份,还是一名文思枯竭的作者。就在这时,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数据包到源
亲爱的读者请注意,此为译文,原文来自网络,早前找好的参考资料,现在原文的地址我也忘了,如果涉及版权问题,请及时联系我。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
用 Go + WebSocket 快速实现一个 chat 服务
前言 在 go-zero 开源之后,非常多的用户询问是否可以支持以及什么时候支持 websocket,终于在 v1.1.6 里面我们从框架层面让 websocket 的支持落地了,下面我们就以 chat 作为一个示例来讲解如何用 go-zero 来实现一个 websocket 服务。 整体设计 我们以 zero-example 中的 chat 聊天室为例来一步步一讲解 websocket 的实现,分为如下几个部分: 多客户端接入 消息广播 客户端的及时上线下线 全双工通信【客户端本身是发送端,也是接收端】 先放一张图,大致的数据传输: 中间有个 select loop 就是整个 chat 的 engine。首先要支撑双方通信: 得有一个交流数据的管道。客户端只管从 管道 读取/输送数据; 客户端在线情况。不能说你下线了,还往你那传输数据; 数据流 数据流是 engine 的主要功能,先不急着看代码,我们先想 client 怎么接入并被 engine 感知: 首先是从前端发 websocket 请求; 建立连接;准备接收/发送通道; 注册到 engine; //HTML操作{js}if(...
- 下一篇
鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙看这篇或许真的够了 | 百篇博客分析HarmonyOS源码 | v50.01
百万汉字注解 >> 精读鸿蒙源码,中文注解分析, 深挖地基工程,大脑永久记忆,四大码仓每日同步更新< gitee | github | csdn | coding > 百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,主流站点定期更新中< oschina | 51cto | csdn | harmony > 编译鸿蒙 因对sourceinsight的爱不释手,所以选择了在windows环境下编译鸿蒙. 本篇记录下编译的过程,以备后续不用再去一大堆无效的误导式软文中搜寻芝麻大点有用的信息,那样真挺费时的. 编译环境 先安装 Docker Desktop 下载windows版本一直下一步. 在windows下拉取openharmony-docker官方镜像,Docker方式获取编译环境 强烈推荐这么做. docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3 2.36G, 拉取看网速, 大概1...
相关文章
文章评论
共有0条评论来说两句吧...