Nmap 中的各种端口扫描技术

Posted Bruce_Liuxiaowei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nmap 中的各种端口扫描技术相关的知识,希望对你有一定的参考价值。

Nmap 中的各种端口扫描技术


1. SYN 扫描

SYN扫描是较为流行的一种扫描方式,同时它也是Nmap所采用的默认扫描方式。这种扫描方式速度极快,可以在一秒内扫描上千个端口,并且不容易被网络中的安全设备发现。

你也可以在扫描的时候,输入参数-sS。其实你只要以root或者administrator用户的权限工作,扫描方式都是SYN。Nmap会向目标设备的一个端口发送请求连接的SYN数据包,而且目标设备在接收到这个SYN数据包之后,扫描器在收到SYN+ACK数据包后,不是发送ACK数据包而是发送RST数据包请求断开连接。这样,3次握手就没有完成,无发建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志里。这种扫描方式不会在目标设备上留下扫描痕迹。

我们在对一个端口进行SYN扫描时,端口的状态全是open \\ close及filtered中的一个。下表中列出了目标设备的回应与目标设备的端口的状态。

​ 目标设备的回应与目标设备的端口的状态(TCP部分)

目标设备的回应目标设备的端口的状态
如果目标设备给出了一个SYN+ACK回应open
如果目标设备给出了一个RST回应closed
如果目标设备没有给出回应filtered
ICMP端口无法抵达错误(类型3,代码1,2,3,4,10,13)filtered

使用SYN扫描端口的语法为“nmap -sS [目标设备IP地址]”。如我们对IP地址为192.168.68.191的设备端口进行扫描,命令如下所示:

┌──(rootkali)-[~]
└─# nmap -sS 192.168.68.191

2. Connect 扫描

使用Connect扫描端口语法为“nmap -sT [目标设备IP地址]”。Connect扫描其实和SYN扫描很像,只是这种扫描方式完成了TCP的3次握手。如我们对IP地址为192.168.68.191的设备的端口进行扫描,命令如下所示:

┌──(rootkali)-[~]
└─# nmap -sT 192.168.68.191

3. UDP 扫描

我们如果对一个端口进行UDP扫描时,端口的状态将会是open\\close及filtered中的一个。下表列出了目标设备的回应与目标设备的端口状态。

​ 目标设备的回应与目标设备的端口状态(UDP部分)

目标设备的回应目标设备的端口状态
从目标设备得到任意的UDP回应open
如果目标设备没有给出回应open|filtered

要注意UDP扫描的速度是相当慢的。IP地址为192.168.68.191的设备的端口进行UDP扫描,命令如下所示:

┌──(rootkali)-[~]
└─# nmap -sU 1500 192.168.68.191

在扫描过程中,可能会产生一些状态为filtered的端口,这些端口的真实状态有可能是open,也可能是closed。要从这些状态为filtered的端口中找到那些其实是open的端口,需要进一步进行测试。

4. 端口扫描范围的确定

对端口的扫描一般使用TCP,但是一台设备上有65536个端口,如果对全部端口都进行扫描,那么花费的时间会相当长,所以Nmap默认扫描的只是65536个端口中最为常用的1000个端口。如果我们不加任何参数的话,Nmap扫描的端口是1000个,而不是65536个。

1. 扫描全部端口

如果对65536个端口扫描,可以使用参数-p “*”。

语法:nmap -p “*” [目标设备IP地址]

如我们要对IP地址为192.168.68.191的目标设备的65536个端口进行扫描,可以使用如下命令:

┌──(rootkali)-[~]
└─# nmap -p "*" 192.168.68.191

2. 扫描使用频率最高的n个端口

如果只想扫描使用频率最高的n个端口,可以使用参数–top-ports n。

语法:nmap --top-ports n [目标设备IP地址]

如我们要对IP地址为192.168.68.191的目标主机开放的使用频率最高的10个端口进行扫描,可以使用如下命令:

┌──(rootkali)-[~]
└─# nmap --top-ports 10 192.168.68.191 

3. 扫描指定端口

如果我们只对指定的端口进行扫描,可以使用参数-p

语法:nmap -p [端口号] [目标设备IP地址]

如我们要对IP地址为192.168.68.191的目标设备的80端口进行扫描,可以使用如下命令:

┌──(rootkali)-[~]
└─# nmap -p 80 192.168.68.191

扫描技术概述与nmap使用

扫描技术

提供扫描、自动化来提高效率。

资产发现:

  • 发现目标环境中有哪些资产
  • 联网设备、主机、服务器、各种服务
  • 资产整理、发现、收集

主要有

  • 主机发现:有哪些主机在线,即有IP地址
  • 端口扫描:确定某台主机开启的端口,以及确定端口上的服务

扫描工具 nmap

  • 网站:nmap.org
  • 跨平台,kali预装
  • 参考书籍《nmap渗透测试指南》

扫描实践

  • nmap 127.0.0.1 扫描自己:可以看见很多信息
  • 添加-sP不进行端口扫描:可以访问主机是否在线
  • 添加-p可以指定端口扫描:后面根参数 1-80 表示1到80端口,1,80表示1和80端口。-p- 表示 1到65535端口(时间长)。

nmap扫描方式:

  • TCP全连接扫描:和目标主机建立三次握手 -sT
  • SYN半连接扫描:只进行前两次握手 -sS
  • 隐蔽扫描(不适用Windows):
    • NULL扫描:发送TCP包全为NULL的数值 -sN
    • Xmas扫描 -sX
    • FIN扫描 -sF
  • -A 全扫描
  • -sV显示服务器版本
  • -O 获取操作系统类型(间断性失效)
  • -oN -oX 以txt、xml保存扫描内容

以上是关于Nmap 中的各种端口扫描技术的主要内容,如果未能解决你的问题,请参考以下文章

如何在Linux上使用Nmap安全扫描工具

Linux 系统扫描nmap与tcpdump抓包

Kali Linux的工具集-1

第一章信息收集—扫描技术与抓包分析

安全工具:nmap

网络安全:Nmap端口扫描