目录
目标说明
-iL <inpputfilename> - 从列表中读取目标
可以指定一个文件读取,也可以用-代替文件名,通过标准输入读取目标
-iR <hostnum> - 随机选择目标
<hostnum>指定生成多少个IP
--exclude <host1[,host2][,host3],...> - 排除主机/网络
--exclude 192.168.1.1
--excludefile <excludefile> - 排除文件中的目标
主机发现
如果没有给出主机发现的选项,Nmap就发送一个TCP ACK报文到80端口和一个ICMP回声请求到每台机器
-sL - 列表扫描
仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。默认下,Nmap仍对主机进行反向域名解析以获取目标主机的名字
-sP - Ping扫描
仅进行ping扫描(主机发现),不对端口或操作系统等进行扫描
默认情况下,发送一个ICMP回声请求和一个TCP报文到80端口,如果非管理员执行,就发送一个SYN报文到目标的80端口
-P0 - 无Ping
完全跳过Nmap发现阶段,通常在进行高强度的扫描时用它确定正在运行的机器
通常,Nmap只对正在运行的主机进行高强度的探测,-P0会把主机当作正在运行的主机进行扫描
-PS [portlist] - TCP SYN Ping
发送一个设置SYN标志位的空TCP报文,默认目的端口为80,可以指定一个以逗号分隔的端口列表
-PS22,23,80,8080,8088
- 这种情况下,每个端口都会被并发地扫描
SYN标志向目标发起连接建立请求,如果目标端口是关闭的,则回返回一个RST(复位)包,如果端口开放,目标会回应SYN/ACK TCP报文,然后Nmap会直接返回一个RST包,不返回ACK完成TCP三次握手
这里无论目标回应的是RST还是SYN/ACK都说明了目标主机存活
这里是使用-PS80指定80端口进行扫描的,但实际上Nmap也同样对一些常见端口进行了扫描
-PA [portlist] - TCP ACK Ping
类似-PS,只是发送TCP报文的标志位为ACK,ACK报文表示确认一个建立连接的尝试,但目标主机突然接收到ACK报文时并不能理解,因为它并没有向本机请求过建立TCP连接,此时,目标主机通常(没有特殊设置的情况下)会返回一个RST报文
在目标主机有防火墙的情况下,可以尝试交换使用-PA或-PS
-PU [portlist] - UDP Ping
发送一个空的(除非指定--data-length)UDP报文到给定的端口,不同版本Nmap默认端口不同,但通常都是大数字端口
如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口不可达的回应报文,如果到达一个开放的端口,大部分服务仅仅忽略这个空报文而不做回应
可以穿透某些只过滤TCP的防火墙和过滤器
—PE;-PP;-PM - ICMP Ping Types
Nmap发送一个ICMP type8(回声请求)报文到目标IP地址,期待从运行的主机得到一个type 0(回声响应)报文,该报文容易被防火墙封锁,判断不够准确
而-PP和-PM分别为时间戳请求(type 13)和地址掩码请求(type 17)
-PR - ARP Ping
通常在扫描局域网时使用,在本地局域网中防火墙不会禁止ARP请求,在默认情况下,如果nmap发现目标主机就在它所在的局域网上,会进行ARP扫描。即使指定了不同的ping类型,如果不想使用,则可以指定--send-ip
当Nmap试图发送一个原始IP报文(如ICMP回声请求)时,操作系统必须确定对应目标IP的硬件地址(ARP)
ARP(地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议,其功能是:主机将ARP请求广播到峁上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求直接查询ARP缓存。
-n
- 不用域名解析
&nbs