nmap

nmap是什么?

nmap(Network)是一款开源免费的网络设备发现和安全审查工具。

 

nmap能干什么?

Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。

 

【主机发现】

目的:发现目标是否在线

原理:通过向网络上发送特定的数据包,并根据响应信息分析设备网络情况。

  发的包主要包括 ICMP ECHO、TIMESTAMP、NETMASK、TCPSYN、ACK、SCTP INIT、COOKIE-ECHO
  通过RST方式拒绝建联,确保扫描的安全性。

 

【端口扫描】

目的:用于确定目标主机的TCP/UDP端口的开放情况。

原理1:向目标端口发送TCP SYN包,不建立连接,隐蔽,效率高,安全。

  1)收到SYN/ACK:端口开放,状态为 open

  2)收到RST包:端口关闭,状态为 closed

  3)未收到回复:端口被屏蔽,状态为 filtered 

原理2:TCP connecting ,与目标设备建立TCP连接,如果无法连接,说明端口关闭。速度慢,低效,不安全。

原理3:TCP ACK,向目标端口发送ACK包,收到RST说明端口没有被防火墙屏蔽,否则被防火墙屏蔽。只能用于确定防火墙是否屏蔽某个端口。

原理4:还有好几种,待理解 ......

 

【版本侦测】

目的:用于确定目标主机开放端口上运行的应用程序及版本信息。

原理:

  1)检查存活端口,过滤掉不存活的端口
  2)TCP端口建立TCP连接。等待过程中接收到banner信息。nmap将接收到的Banner与nmap-services-probes中NULL probe中的签名进行对比。查找对应应用程序的名字与版本信息。
  3)如果2步骤中 banner 无法确定版本信息,发送其它探测包(即从nmap-services-probes中挑选合适的probe)
  4)如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配。根据结果对比分析出UDP应用服务类型。
  5)如果探测到应用程序是SSL,那么调用openSSL进一步的侦查运行在SSL之上的具体的应用类型。
  6)如果探测到应用程序是SunRPC,那么调用brute-force RPC grinder进一步探测具体服务。

 

【OS侦测】

目的:用于检测目标主机运行的操作系统类型及设备类型等信息。

 原理:

  1)Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中)。将此指纹数据库作为进行指纹对比的样本库。
  2)分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。
  3)将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。

 

【关键名词】

banner

 

 

 

参考:https://blog.csdn.net/aspirationflow/article/details/7694274

 

posted @ 2021-08-04 16:34  bhz  阅读(317)  评论(0编辑  收藏  举报