菠菜网

欧博allbet网址:Nmap常见扫描方式流量剖析

时间:4个月前   阅读:46

环境说明

扫描者:manjaro linux , IP地址:192.168.31.160

被扫描者:centos 7,IP地址:192.168.31.175

剖析工具:wireshark

nmap 版本:version 7.80

TCP 知识回首

这里对TCP的三次握手知识举行简朴的回首,利便后面明白Nmap的扫描流量

关于TCP协议相关内容看:http://networksorcery.com/enp/default.htm

Source Port:源端口

Destination Port:目的端口

Sequence Number:序列号。

Acknowledgment Number:确认号

Control Bits: 包罗一下几种(这几个字段这里要有印象,后续关于nmap的扫描都和这里会有关系):

字段 寄义
URG 紧要指针是否有用。若是设置1,用于通知吸收数据方在处置所有数据包之前处置紧要数据包
ACK 确认号是否有用。用于确认主机乐成吸收数据包。若是Acknowledgment Number包罗有用的确认号码,则设置ACK标志为。例如tcp三次握手的第二步,发送ACK=1和SYN=1 ,就是见告对方它已经收到初始包
PSH 强制将数据压入缓冲区
RST 毗邻重置
SYN 示意确立毗邻
FIN 示意关闭毗邻

下图是TCP三次握手的历程:

SYN 扫描

Nmap 的默认扫描方式就是SYN扫描,在192.168.31.160 执行如下下令举行扫描:

 sudo nmap -p22 192.168.31.175
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-04 11:45 CST
Nmap scan report for 192.168.31.175
Host is up (0.00044s latency).

PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds

192.168.31.175 举行tcpdump 下令举行抓包:tcpdump -i any -w syn_scan.pcap, 下面是通过wireshare分数据包剖析截图:

从获取的流量可以很容易看到,这种扫描的的方式是在三次握手的最后一步没有回复正常的ACK,而是发送了RST

nmap 行使客户端回SYN,ACK 的这个数据包实在就已经知道22这个端口是开放的,若是我们扫描一个没有开放的端口:

  sudo nmap -p80 192.168.31.175 
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-06 22:08 CST
Nmap scan report for 192.168.31.175
Host is up (0.00034s latency).

PORT   STATE  SERVICE
80/tcp closed http
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds

同样我们看一下在192.168.31.175 上抓的数据包的情形,被扫描主机直接恢复RST,ACK断开毗邻,namp从而知道被扫描端口是关闭的,数据包如下:

全毗邻扫描

nmap也可以举行全毗邻扫描,也就是完成完整的三次握手,固然这种扫描方式的效率是不如SYN扫描的

nmap -sT -p端口 目的主机

NULL扫描

是将一个没有设置任何标志位的数据包发送给TCP端口,在正常的通信中至少要设置一个标志位。

凭据FRC 793的要求,在端口关闭的情形下,若收到一个没有设置标志位的数据字段,那么主机应该舍弃这个分段,并发送一个RST数据包,否则不会响应提议扫描的客户端计算机。

也就是说,若是TCP端口处于关闭则响应一个RST数据包,若处于开放则无响应。然则应该知道理由NULL扫描要求所有的主机都相符RFC 793划定,然则windows系统主机不遵从RFC 793尺度,且只要收到没有设置任何标志位的数据包时,不管端口是处于开放照样关闭都响应一个RST数据包。然则基于Unix(nix,如Linux)遵从RFC 793尺度,以是可以用NULL扫描。 经由上面的剖析,我们知道NULL可以鉴别某台主机运行的操作系统是什么操作系统,是为windows呢?照样unix/linux?

NULL的扫描下令参数:nmap -sN

  sudo nmap -sN -p22 192.168.31.175  
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-06 22:30 CST
Nmap scan report for 192.168.31.175
Host is up (0.00022s latency).

PORT   STATE         SERVICE
22/tcp open|filtered ssh
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.67 seconds
 sudo nmap -sN -p999 192.168.31.175
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-06 22:30 CST
Nmap scan report for 192.168.31.175
Host is up (0.00042s latency).

PORT    STATE  SERVICE
999/tcp closed garcon
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds
  share scp root@192.168.31.175:/root/null.pcap ./     
root@192.168.31.175's password: 
null.pcap                             100% 5188    10.4MB/s   00:00 

​ 划分扫描了一个开放的端口22 和未开放的端口999,下面的数据包中,可以看到,发送的第一个TCP包中Control Bits的所有Flags都没有设置,而开发的22端口没有收到任何回复,而关闭的端口,收到了一个RST数据包,nmap也是通过这种方式来判断端口是否开放。固然这种判断对于windows是不准确的了。

​ null的扫描流量特征照样异常显著的,很容易通过流量剖析知道正在被举行null扫描。

FIN扫描

FIN 原理:

与NULL有点类似,只是FIN为指示TCP会话竣事,在FIN扫描中一个设置了FIN位的数据包被发送后,若响应RST数据包,则示意端口关闭,没有响应则示意开放。此类扫描同样不能准确判断windows系统上端口开放情形。

FIN扫描下令参数:nmap -sF

 sudo nmap -sF -p22 192.168.31.175       
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-06 22:46 CST
Nmap scan report for 192.168.31.175
Host is up (0.00014s latency).

PORT   STATE         SERVICE
22/tcp open|filtered ssh
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.61 seconds
 sudo nmap -sF -p999 192.168.31.175
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-06 22:46 CST
Nmap scan report for 192.168.31.175
Host is up (0.00028s latency).

PORT    STATE  SERVICE
999/tcp closed garcon
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.36 seconds

对比null扫描,就可以看出来,FIN扫描是发送一个设置FIN的数据包,同样的若是是linux系统,收到这个若是没有收到RST则以为端口是开放的,收到RST则示意端口没有开发,windows依然无法判断。

XMAS-TREE扫描

扫描原理:

XMAS扫描原理和NULL扫描的类似,将TCP数据包中的URG、PSH、FIN标志位置1后发送给目的主机。在目的端口开放的情形下,目的主机将不返回任何信息

和NULL扫描正好相反,XMAS扫描会把所有的标志为都设置

XMAS-TREE扫描下令参数:nmap -sX

 sudo nmap -sX -p22 192.168.31.175
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-06 22:53 CST
Nmap scan report for 192.168.31.175
Host is up (0.00028s latency).

PORT   STATE         SERVICE
22/tcp open|filtered ssh
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.55 seconds
 sudo nmap -sX -p999 192.168.31.175
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-06 22:54 CST
Nmap scan report for 192.168.31.175
Host is up (0.00021s latency).

PORT    STATE  SERVICE
999/tcp closed garcon
MAC Address: 4C:1D:96:FC:4D:E2 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds

照样扫描开放的22端口和未开放的999端口,可以看到Xmas扫描会发送一个FIN,PSH,URG被设置的数据包,同样若是是linux系统可以凭据是否收到RST包举行判断端口是否开放,windows无法举行判断

延伸阅读

  • http://www.ruanyifeng.com/blog/2017/06/tcp-protocol.html
  • http://networksorcery.com/enp/default.htm
,

欧博app下载

欢迎进入欧博app下载网站:www.aLLbetgame.us,欧博app下载网站是欧博官方网站。欧博app下载网站开放欧博注册、欧博代理、欧博电脑客户端、欧博app下载等业务。

上一篇:欧博注册:用意见意义运动锻炼身体调治情绪,这所学校坚持把体育课开到高考前一天

下一篇:深度论坛:上海 VS 北京战报87:88

网友评论