Nmap使用二[主机发现]
?
------------
2. 主机发现
------------
HOST DISCOVERY:
? ? -sL: 仅列出指定网络上的每台主机,不发送任何报文到目标主机
? ? -sP: 进行ping扫描,输出出响应的主机,不做进一步测试(如端口扫描或者操作系统探测),了解多少主机正在运行.
? ? ? ? ?-sP选项在默认情况下,发送一个ICMP回声请求和一个TCP报文到80端口.可以和除-P0)之外的任何发现探测类型-P* 选项结合使用.
? ? -P0: 不使用ping,使用此选项时直接跳过主机发现,认为目标为存活状态以进行深度的主机扫描。而默认情况下Nmap只对正在运行的主机
? ? ? ? ?进行深度探测。
? ? -PS [portlist]: 利用TCP SYN ping,该选项发送一个设置了SYN标志位的空TCP报文.SYN标志位告诉对方您正试图建立一个连接。
? ? ? ? ?如果目标端口是关闭的,一个RST (复位) 包会发回来.如果碰巧端口是开放的,目标会进行TCP三步握手的第二步,
回应一个SYN/ACK TCP报文.然后运行Nmap的机器则会扼杀这个正在建立的连接,发送一个RST而非ACK报文,否则,
一个完全的连接将会建立. RST报文是运行Nmap的机器而不是Nmap本身响应的,因为它对收到 的SYN/ACK感到很意外.
Nmap并不关心端口开放还是关闭,无论RST还是SYN/ACK响应都告诉Nmap该主机正在运行。
? ? -PA [portlist]: 利用TCP ACK ping,该选项发送一个设置了TCP的ACK标志位而不是SYN标志位.ACK报文表示确认一个建立连接的尝试,
? ? ? ? 但该连接尚未完全建立.所以远程主机正在运行的,应该总是回应一个RST报文,因为它们并没有发出过连接请求到运行Nmap的机器.
? ? ? ? 提供SYN和ACK两种ping探测的原因是使通过防火墙的机会尽可能大.许多管理员会配置他们的路由器或者其它简单的防火墙来封锁SYN报文,
除非连接目标是那些公开的服务器像公司网站或者邮件服务器.这可以阻止其它进入组织的连接,同时也允许用户访问互联网.
这种无状态的方法几乎不占用防火墙/路由器的资源,因而被硬件和软件过滤器广泛支持。Linux Netfilter/iptables 防火墙软件提供方便的
--syn选项来实现这种无状态的方法.当这样的无状态防火墙规则存在时,发送到关闭目标端口的SYN ping探测 (-PS) 很可能被封锁。
这种情况下,ACK探测格外有闪光点,因为它正好利用了这样的规则.
? ? ? ? 另外一种常用的防火墙用有状态的规则来封锁非预期的报文,这一特性已开始只存在于高端防火墙.但是这些年类它越来越普遍了.
Linux Netfilter/iptables 通过--state选项支持这一特性,它根据连接状态把报文进行分类。SYN探测更有可能用于这样的系统,
由于没头没脑的ACK报文通常会被识别成伪造的而丢弃.解决这个两难的方法是通过即指定-PS又指定-PA来即发送SYN又发送ACK。
? ? -PU [portlist]: 利用UDP ping,它发送一个空的(除非指定了--data-length UDP报文到给定的端口.
? ? ? ? 端口列表的格式和前面讨论过的-PS和-PA选项还是一样.如果不指定端口,默认是31338.
如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口无法到达的回应报文
? ? -PE/PP/PM: 使用ICMP ping類型,分別為echo, timestamp,netmask request
? ? ? ? Nmap发送一个ICMP type 8 (回声请求),ICMP type 13 (时间戳请求),ICMP type 17 (地址掩码请求)报文到目标IP地址.
时间戳和地址掩码查询可以分别用-PP和-PM选项发送.回声响应(代码0),时间戳响应(ICMP代码14)或者地址掩码响应(代码18)表示主机在运行。
当管理员特别封锁了回声请求报文而忘了其它ICMP查询可能用于相同目的时,这两个查询可能很有价值.
? ? -PR : 利用ARP ping,当进行ARP扫描时,Nmap用它优化的算法管理ARP请求,当它收到响应时,Nmap甚至不需要担心基于IP的ping报文,
? ? ? ? 既然它已经知道该主机正在运行了.这使得ARP扫描比基于IP的扫描更快更可靠.所以默认情况下,如果Nmap发现目标主机就在它所在的局域网上,
它会进行ARP扫描.即使指定了不同的ping类型(如 -PI或者 -PS),Nmap也会对任何相同局域网上的目标机使用ARP.
如果您真的不想要ARP扫描,指定 --send-ip.
? ? -n:不对它发现的活动IP地址进行反向域名解析
? ? -R:对目标IP地址作反向域名解析
? ? --system-dns (使用系统域名解析器)