zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    js 格式为2018-08-25 11:46:29 的日期比较方法
    ssh linux免密登录。。。。生产共钥到另一台主机
    linux shell脚本调用java main方法 代码传值
    linux shell脚本调用java main方法 代码
    java FTP各种操作
    java通过http服务执行shell命令
    linux ssh 应用
    java通过反射调用有参数的方法
    TranslucentTB汉化版安装教程及资源
    几行Python代码生成动态二维码 myqr的使用教程
  • 原文地址:https://www.cnblogs.com/zhanghaibin16/p/15099550.html
Copyright © 2011-2022 走看看