nmap网络扫描
nmap网络扫描
一、主机存活扫描(主机发现)
该类扫描主要使用了ARP扫描和ICMP扫描,同一个广播域(二层/同网段)它会自动使用ARP协议扫描,如果出了广播域它会使用ICMP探测主机是否存活。
可以使用如下参数扫描网络:
主机发现
nmap -sn { ip | 子网/掩码 }:ARP和ping扫描。
nmap -Pn { ip | 子网/掩码 }:跳过ping检查,直接测试端口。
nmap -sn 10.1.1.0/24
结果显示:

它会分别显示存活主机的IP地址、主机状态(up/down)以及它的mac地址,原理也很简单,就是一个一个地址的使用ARP询问,如果有回复就判断为它存活。

上面是同网段扫描,还在一个广播域当中,当你需要扫描的地址不是一个网段的,它就会使用ICMP协议ping那个地址,假设有回复它就判断为主机up,比如扫描互联网上阿里云的DNS服务器223.5.5.5:
nmap -sn 223.5.5.5


还有一种情况是如果目标设备是Windows时,上面的Defender防火墙它是默认禁ping的,这时候虽然ping不通但是nmap也可以使用-Pn参数跳过主机存活扫描,直接扫描该IP的端口,如果有端口可以通讯它就将其视为up,缺点时该方式需要消耗的时间比较长:
nmap -Pn 10.1.1.4

二、端口扫描
常用扫描:
nmap {目标IP}:扫描常用的1000个端口。
nmap -p- {目标IP}:扫描所有端口1~65535。
nmap -p {端口号} {目标IP}:扫描指定端口。
nmap -sT -p {端口号} {目标IP}:TCP端口扫描。
nmap -sU {目标IP}: UDP端口扫描,由于UDP是无负载扫描,不携带任何数据,所以实际上扫描 UDP 端口可能不会产生任何可靠的结果。
nmap -sS -p {端口号} {目标IP}: SYN扫描,也叫半开扫描,效率比较高。
TCP端口连接扫描
使用-sT参数扫描时它会和目标端口建立完整的三次TCP握手,但是当进连接完毕之后进行三次握手时它会把连接重置:


判断端口是否打开的依据如下图:

该方式会由于进行了完整的TCP连接,不仅耗时长,而且可能会在目标主机上留下痕迹,因此还有一种方式叫做半连接扫描(SYN扫描)。
半连接扫描(SYN扫描)
使用-sS参数扫描时它会向目标主机发起TCP握手请求,而当目标主机回复时它就会停止下一步,这样就避免了TCP握手连接,因此也叫半连接:


三、服务版本检测
nmap -sV -p {端口号} {目标地址}:探测指定端口上的服务版本。

四、操作系统检测
nmap -O {IP地址}:检测目标IP的操作系统,但是它检测的不一定对,只是大概率对。


浙公网安备 33010602011771号