Nmap常用参数及意义

由 shellme 发布

nmap执行两步操作:主机发现与主机扫描

四层主机发现主要就是指 TCP 和 UDP 协议进行发现
Tcp 主要有两种检测方式

  1. 发送ACK 包,如果目标主机返回RST包,说明主机存活
  2. 发送SYN 包进行正常的连接,如果返回SYN + ACK或者RST 说明主机存活

UDP:UDP进行主机发现比较有特点,只需要向目标的一个陌生端口发送UDP包,如果端口不开放会返回一个icmp的端口不可达,从而判断主机存活。

设置扫描目标时相关的参数

参数意义
-iL从文件中导入目标主机或目标网段
-iR随机选择目标主机
--exclude后面跟的主机或网段将不在扫描范围内
--excludefile导入文件中的主机或网段将不在扫描范围中

与主机发现方法相关的参数

参数意义
-sn/sPPing Scan,只进行主机发现,不进行端口扫描
-Pn将所有指定的主机视作已开启,跳过主机发现的过程
-PS/PA/PU/PY使用TCP SYN/ACK或SCTP INIT/ECHO方式来发现
-PE/PP/PM使用ICMP echo、timestamp、netmask请求发现主机
-PO使用IP协议包探测对方主机是否开启
--traceroute追踪每个路由节点

与常见的端口扫描方法相关的参数

参数意义
-sS/sT/sA指定使用TCP SYN/Connect()/ACK的方式对目标主机进行扫描
-sU指定使用UDP扫描的方式确定目标主机的UDP端口状况
-sN/sF/sX指定使用TCP Null/FIN/Xmas scans秘密扫描的方式协助探测对方的TCP端口状态
-p扫描指定的端口
-sV指定让Nmap进行版本侦测,检测开放的端口对应的服务版本信息
-A进攻性(Aggressive)方式扫描,尝试进行深入的服务枚举和旗标获取
-T4指定扫描过程使用的时序,共有6个级别(0~5),级别越高,扫描速度越快,但容易被检测并屏蔽掉,网络通信状况良好的情况下推荐使用T4
-v显示冗余信息,在扫描过程中显示扫描的细节
-O对目标地址的操作系统进行指纹识别
nmap -sT ip

如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式。不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,
并且要求调用系统的connect()。Tcp connect()扫描技术只适用于找出TCP和UDP端口。
nmap -sS ip

这是一个基本的扫描方式,它被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息。
Nmap发送SYN包到远程主机,但是它不会产生任何会话。因此不会在目标主机上产生任何日志记录,因为没有形成会话。这个就是
SYN扫描的优势。
nmap -sN/sF/sX 秘密扫描的方式协助tcp端口探测

有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在。目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉
SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手。

FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一)。这3个类型的扫描都是具有差异性的,FIN扫描发送的包只包含FIN
标识,NULL扫描不发送数据包上的任何字节,XMAS扫描发送FIN、PSH和URG标识的数据包。

在实战中,可以利用FIN扫描的方式探测防火墙的状态。FIN扫描用于识别端口是否关闭,收到RST回复说明该端口关闭,否则就是open或filtered状态。

常见的6种Nmap端口状态及其含义

状态含义
open开放的,表示应用程序正在监听该端口的连接,外部可以访问
filtered被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问
closed关闭的,表示目标主机未开启该端口
unfiltered未被过滤的,表示Nmap无法确定端口所处状态,需进一步探测
open/filtered开放的或被过滤的,Nmap不能识别
closed/filtered关闭的或被过滤的,Nmap不能识别

暂无评论

发表评论