Connect Scan:正式建立三次握手。SYN,SYN-ACK,ACK,RST。耗费资源,很多系统会对正式连接进行LOG记录,而对半开连接不进行log,所以常用半开连接扫描。
主机扫描:
nmap -sV 判断操作系统和应用软件版本号。
不加任何参数(默认行为):进行主机发现,然后对每个活动目标执行SYN端口扫描,默认地对本地以太网上的目标执行ARP发现,进行traceroute。然后查本地service表显示服务。
扫描自己:Windows does not allow you to scan your own IP address, 127.0.0.1 loopback or localhost. You must use the -sT and -PN command-line options to scan your own Windows system.
-n:以数字格式显示,不进行域名反解。
-R:进行主机的域名反解。
-sP:主机发现。扫描出主机来。MAC地址(判断厂家)、IP地址。跨网段使用两个包 (tcp/80,icmp/echo),直连网络总是发送 (ARP request),不会使用其他方法。
-PE:通过ICMP echo request,就是PING。
-PS:仅仅发送TCP/80的SYN。收到reset说明端口关闭,收到SYN-ACK说明开放,,如果没响应,说明没有节点活动或被防火墙过滤。
-PA:发送TCP/80的ACK,收到reset说明节点active,或是防火墙给reset。PS和PA结合使用可判断是否存在状态化防火墙。
-PU:连接一个UDP高端口号31338,会收到ICMP端口不可达,如果没回应应该没有该接口,或者开放了这个端口。1.回送ICMP port unreachable表明active;2.回送错误信息,或者没有响应(1.主机不存在,2.开放端口)
-PP:发送ICMP时间请求。
-PM:发送ICMP掩码请求。
-PO:制造协议不可达。扫描协议号。-PO1协议号1。
-PR:ARP ping。
注意:-sP参数表明只做主机发现不做进一步扫描。只配置-sP表示使用默认方式实施主机扫描,也可以跟上-PS -PA -PP -PM...等等参数实施主机扫描,但是如果只配置-PS -PA -PP...参数,不仅仅主机发现,并且会对active主机实施端口扫描。默认-PS选项使用tcp/80端口。
-p:指定端口。-p 443 -p 1-65535 -p-(所有端口)
-oG:保存文件。
-A:进行综合扫描,默认端口扫描、发现服务、操作系统版本判断、tracerouting、脚本扫描。
-iL:调用文件,对文件中的IP进行扫描。
--scanflags:指定标记位。nmap --scanflags PSH -p135 10.129.0.196 使用PSH和SYN两种不同的flag扫描相同主机相同服务得到的不同结果。发送PSH会收到reset,nmap会显示端口 closed,但不代表端口没有开放。URG, ACK, PSH, RST, SYN, FIN,
--dns-servers:指定DNS服务器。
--system-dns:使用系统配置的DNS服务器。
--reason:显示原因。nmap -n -p 443 --scanflags PSH 172.16.97.35 --reason
--send-ip:直连网络不通过ARP ping而使用IP报文进行发现。
-iR:随机扫描。-iR 10,随机扫描10个主机。
-v vv:详细信息。
-d dd:debug信息。
-packet-trace:trace包信息,查看所有包发送和接收。
-sL:对主机进行DNS解析,来判断是否有这么个主机。不发任何扫描包,只进行DNS。
-P0:关闭主机发现。直接进行发包。一般先判断主机是否存在才会发包扫描探测。