Nmap基本用法

基本用法

对单台设备进行扫描

nmap [IP地址]

对IP地址不连续的多台设备进行扫描

nmap [IP地址1] [IP地址2] [IP地址3] //以空格隔开

对连续范围内的多台设备进行扫描

nmap [IP地址的范围]

对子网设备进行扫描

nmap [IP地址/掩码位数]

-sn参数

只进行活跃状态扫描

Nmap基本用法

进行设备发现

使用ARP进行设备发现

参数:-PR(nmap7.8版本已经弃用)
这种方式仅能用于与Nmap所在设备同一网段的目标。

nmap -sn [IP地址]

Nmap基本用法

使用sn其实也是通过ARP进行设备发现。

Nmap基本用法

使用ICMP进行设备发现

参数:-Pn

nmap -Pn [IP地址]

通过nmap再进行其他扫描之前,都会对目标进行一个ping扫描,如果对目标没有ping,那么就会结束整个扫描过程。有些主机就利用了这种特性,其实目标在线,但是采取了某种手段屏蔽了ping扫描,那么我们的nmap就扫描不到这个主机了。屏蔽ping扫描的功能就是:在nmap扫描的过程中,不论目标主机能不能ping通,都要将整个扫描过程完成。

使用TCP进行设备发现

TCP主要由三次握手构成:
主动端发送SYN数据包,被动端回应SYN+ACK数据包,主动端再回应ACK包。

nmap向目标设备发送SYN包,如果对方回应SYN+ACK包,说明目标在线。

TCP SYN扫描

参数:-PS
说明:向目标设备发送一个不完整的SYN数据包,目标在收到数据包后,会认为主机想要与自己的端口建立连接;如果端口开放,则返回SYN+ACK包,否则返回RST包,所以,只要主机收到数据包,就能判断目标存活。

TCP ACK扫描

参数:-PA
说明:TCP三次握手规定,只有设备A向设备B发送SYN数据包后,设备B才会返回SYN+ACK包。
如果主机直接发送TCP+ACK包,目标设备不清楚怎么回事,返回RST包,怎判断设备存活。

但是,有些设备会过滤掉SYN+ACK包,有可能目标没有收到该数据包,也有可能目标不存活,Nmap会当第二种情况处理,所以存在错误。

进行端口扫描

端口的6种状态:

open:应用程序在该端口接受TCP或UDP连接。

closed:关闭状态。

filtered:包过滤阻止探测报文到达端口,nmap无法确定端口是否开放。

unfiltered:表示未被过滤状态,可访问,但是无法确定开放还是关闭。

open|filtered:无法确定端口开放还是被过滤。

SYN扫描

参数:-sS
root用户默认使用该扫描方式,并且该扫描方式不会被记录到系统日志,不会再目标设备上留下痕迹。

主机发送SYN数据包,目标返回SYN+ACK,主机发送RST包断开连接;因此,三次握手没有完成。

TCP(connect)扫描

参数:-sT
完成三次握手。

对端口范围的确定

-p * :对65535个端口扫描。

--top-ports n :扫描使用频率最高的n个端口。

-p [端口号] :扫描指定端口。

其他参数

-sV 端口版本扫描
-iL 指定文件内容进行扫描
-O 检测OS
-oX [文件名] 叫扫描结果保存为xml文件
--script 指定脚本进行漏洞扫描(脚本路径:/usr/share/nmap/scripts)

上一篇:TCP/IP协议|IO/NIO原理|Redis/Netty学习


下一篇:【转】Struts1.x系列教程(7):Logic标签库