#yyds干货盘点#web安全day44(进阶!使用Nmap+Wireshark理解端口扫描)

行是知之始,知是行之成。这篇文章主要讲述#yyds干货盘点#web安全day44:进阶!使用Nmap+Wireshark理解端口扫描相关的知识,希望能为你提供帮助。
【#yyds干货盘点#web安全day44(进阶!使用Nmap+Wireshark理解端口扫描)】本文使用Nmap和Wireshark进行网络端口扫描的实验和原理探究。
端口扫描端口扫描是人为发送一组端口扫描消息,试图以此了解某台计算机的弱点,并了解器提供的计算机网络服务类型(这些网络服务均与端口号相关)。
nmap支持端口扫描,所有的扫描选项都是以-s< X> 形式出现的。



我们的基础网络拓扑为
kali:192.168.189.141
windows2012:192.168.189.153
其中windows2012中部署了http服务,开放了80端口。


SYN半连接扫描-sS是端口扫描中较常用,高效的一种扫描方式,扫描速度要快于全连接扫描。
SYN半连接扫描由于不会建立完整的TCP连接,因此难以被防火墙或者管理员发现。如果发现目标端口出现被开放或者过滤的情况,可以考虑使用SYN半连接扫描。

nmap -sS 192.168.189.153 -p 80


我们使用wireshark进行抓包分析,使用过滤规则为
ip.addr==192.168.189.153 and tcp.port==80



可以看到我们的kali发送了tcp请求报文,但是没有完成3次握手,在第二次握手后就主动进行了释放。


TCP全连接扫描-sT是端口扫描中最基础、最稳定的扫描方式。
nmap-sT 192.168.189.153 -p 8080


我们使用wireshark进行抓包分析,使用过滤规则为
ip.addr==192.168.189.153 and tcp.port==80


可以看到有2组,每组4个包,表示3次握手和释放连接。
TCP全连接扫描用于SYN扫描不能使用的时候,Nmap会在相应端口上建立完整的3次握手,因此不会因泛红而导致目标主机崩溃。
如果我们扫描没有开放的端口,如8080端口。
nmap -sT 192.168.189.153 -p 8080


我们使用wireshark进行抓包分析,使用过滤规则为
ip.addr==192.168.189.153 and tcp.port==80


可以看到只有两个包,一个是SYN包进行请求,一个是RST包释放连接。
隐蔽扫描只能在linux中使用,原理是发送TCP畸形请求报文,躲避无状态防火墙的检测,如果扫描不出结果或者出现被过滤的情况,可以使用以下三种方式进行扫描。
Null扫描
nmap -sN 192.168.189.153 -p 80

-sN选项是通过发送flags置位全为0的SYN请求报文,如果目标主机的相应端口关闭,就会响应一个RST数据包,反之不会响应任何信息。

我们使用wireshark进行抓包分析,使用过滤规则为
ip.addr==192.168.189.153 and tcp.port==80


可以看到发送的SYN请求中Flags位全空,而正常情况下,SYN请求包中SYN是置位的,这是一种畸形TCP报文。


Xmas扫描
nmap -sX 192.168.189.153 -p 80

-sX选项是通过发送flags为FIN、PSH、URG位置位的请求报文,如果目标主机的相应端口开放,就会响应一个RST数据包,反之不会响应任何信息。

我们使用wireshark进行抓包分析,使用过滤规则为
ip.addr==192.168.189.153 and tcp.port==80


可以看到发送的SYN请求中Flags位URG PSH FIN位置位了,而正常情况下,SYN请求包中只有SYN是置位的,这也是一种畸形TCP报文。
FIN扫描
nmap -sF 192.168.189.153 -p 80

-sF选项是通过发送flags为FIN置位的请求报文,如果目标主机的相应端口开放,就会响应一个RST数据包,反之不会响应任何信息。

我们使用wireshark进行抓包分析,使用过滤规则为
ip.addr==192.168.189.153 and tcp.port==80


可以看到发送的SYN请求中Flags位FIN位置位了,而正常情况下,SYN请求包中只有SYN是置位的,这也是一种畸形TCP报文。


    推荐阅读