十大黑客工具之nmap( 二 )

实例(一)探索目标主机是否在线
主机发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的 。Nmap支持十多种不同的主机探测方式,用户可以在不同的条件下灵活选用不同的方式来探测目标机 。主机发现常用参数如下 。
-sn: Ping Scan 只进行主机发现,不进行端口扫描 。-PE/PP/PM: 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机 。-PS/PA/PU/PY[portlist]: 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现 。-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现 。-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程 。-PO[protocollist]: 使用IP协议包探测对方主机是否开启 。-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析 。--dns-servers <serv1[,serv2],...>: 指定DNS服务器 。--system-dns: 指定使用系统的DNS服务器 --traceroute: 追踪每个路由节点 当探测公网 ip时
nmap -snNmap会发送四种不同类型的数据包来探测目标主机是否在线 。
ICMP echo requesta TCP SYN packet to port 443(https)a TCP ACK packet to port 80(http)an ICMP timestamp request 例: nmap -sn 114.114.114.114

十大黑客工具之nmap

文章插图
 
依次发送四个报文探测目标机是否开启 。只要收到其中一个包的回复,那就证明目标机开启 。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误 。通常主机发现并不单独使用,而只是作为端口扫描、版本侦测、OS侦测先行步骤 。而在某些特殊应用(例如确定大型局域网内活动主机的数量),可能会单独专门使用主机发现功能来完成 。
nmap -PE/-PP/-PM-PE 的ICMP Echo扫描简单来说是通过向目标发送ICMP Echo数据包来探测目标主机是否存活,但由于许多主机的防火墙会禁止这些报文,所以仅仅ICMP扫描通常是不够的 。
nmap -PE 114.114.114.114
十大黑客工具之nmap

文章插图
 
-PP 的ICMP time stamp时间戳扫描在大多数防火墙配置不当时可能会得到回复,可以以此方式来判断目标主机是否存活 。倘若目标主机在线,该命令还会探测其开放的端口以及运行的服务!
nmap -PP 114.114.114.114
十大黑客工具之nmap

文章插图
 
-PM 的ICMP address maskPing地址掩码扫描会试图用备选的ICMP等级Ping指定主机,通常有不错的穿透防火墙的效果
nmap -PM 114.114.114.114.
十大黑客工具之nmap

文章插图
 
  • -PS的TCP SYN扫描
当探测内网ip时
nmap -sn使用 nmap -sn 内网ip 这个命令会发送arp请求包探测目标ip是否在线,如果有arp回复包,则说明在线 。此命令可以探测目标主机是否在线,如果在线,还可以得到其MAC地址 。但是不会探测其开放的端口号 。
nmap -PE/-PP/-PM使用 nmap -PE/PP/PM 内网ip 探测主机的开启情况,使用的是ARP请求报文,如果有ARP回复报文,说明主机在线 。-PP/PE/PM命令探测到主机在线后,还会探测主机的端口的开启状态以及运行的服务 。
探测该主机所在网段内所有主机的在线情况,使用的是 nmap -sn 网段/子网掩码。
例:nmap -sn 192.168.1.0/24 或 nmap -sn 192.168.1.100-200
十大黑客工具之nmap

文章插图
 
二:端口扫描及其原理端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况 。
默认情况下,Nmap会扫描1000个最有可能开放的TCP端口
Nmap通过探测将端口划分为6个状态:
  • open:端口是开放的 。
  • closed:端口是关闭的 。
  • filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态 。
  • unfiltered:端口没有被屏蔽,但是否开放需要进一步确定 。
  • open|filtered:端口是开放的或被屏蔽 。
  • closed|filtered :端口是关闭的或被屏蔽
TCP SYN 扫描(-sS)
这是Nmap默认的扫描方式,通常被称作半开放扫描 。该方式发送SYN到目标端口,如果收到SYN/ACK回复,那么可以判断端口是开放的;如果收到RST包,说明该端口是关闭的 。如果没有收到回复,那么可以判断该端口被屏蔽了 。因为该方式仅发送SYN包对目标主机的特定端口,但不建立完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用范围广 。
TCP connent 扫描(-sT)
TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭 。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标主机上留下记录信息,不够隐蔽 。所以,TCP connect是TCP SYN无法使用才考虑使用的方式


推荐阅读