• Nmap的使用


    (1)Nmap简介

           NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。 Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

            正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。Nmap 常被跟评估系统漏洞软件Nessus混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。

    (2)功能

             Nmap包括四项基本功能:

                               1. 主机发现

                               2. 端口扫描

                               3. 版本侦测

                               4. 操作系统侦测

    1)主机发现

    主机发现是指发现所要扫描的主机是否是正在运行的状态

    例如:获取http://nmap.org 的主机是否开启

    输入命令:nmap -F -sT -v nmap.org

    -F:扫描100个最有可能开放的端口   -v 获取扫描的信息   -sT:采用的是TCP扫描 不写也是可以的,默认采用的就是TCP扫描

    运行如下:

    由上图1可以发现对URL进行解析花了16.5秒,这个地方花费的时间是可以进行优化的,优化的方法会稍后介绍

    图中的2,是总共的运行时间

    图中的3是说明有96个端口被屏蔽了,也就是说明了网站的防火墙是开启的,因为没有开启防火墙是不会对端口进行屏蔽的,

    4是本次返回的关键信息

     端口一般是有以下几种状态的

    2)端口扫描

    获取端口的状态,不能使用参数(-sn),这个参数是可以跳过端口扫描,直接进行主机发现的输入命令:nmap -F -sT -v -n 45.33.49.119-120      45.33.49.119:nmap.org的IP地址

    运行情况如下:

            图片中的1处指的是,采用sT的扫描方法,这种扫描方法准确,速度快,但是这样的扫描容易被防火墙和IDS发现并记录,所以这种方法,实际中并不多用

    由图中的3处我们可以知道在不进行解析的情况下扫描用时为26.92秒,比解析的时候用的时间节约了不少

    图中的4说明了扫描了2个主机,然后只有一个主机为开启。

    分析一下扫描的各种方法:

     

    1、TCP扫描(-sT)

    这是一种最为普通的扫描方法,这种扫描方法的特点是:扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现

    运行的原理:通过建立TCP的三次握手连接来进行信息的传递

    ① Client端发送SYN;

    ② Server端返回SYN/ACK,表明端口开放;

    ③ Client端返回ACK,表明连接已建立;

    ④ Client端主动断开连接。

     

     2、SYN扫描(-sS)

    这是一种秘密的扫描方式之一,因为在SYN扫描中Client端和Server端没有形成3次握手,所以没有建立一个正常的TCP连接,因此不被防火墙和日志所记录,一般不会再目标主机上留下任何的痕迹,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)

    运行的原理图如下:

    3、NULL扫描

    NULL扫描是一种反向的扫描方法,通过发送一个没有任何标志位的数据包给服务器,然后等待服务器的返回内容。这种扫描的方法比前面提及的扫描方法要隐蔽很多,但是这种方法的准确度也是较低的, 主要的用途是用来判断操作系统是否为windows,因为windows不遵守RFC 793标准,不论端口是开启还是关闭的都返回RST包

    但是虽然NULL具有这样的一些用处,但是本人却认为不宜使用NULL

    1、NULL方法的精确度不高,端口的状态返回的不是很准确

    2、要获取目标主机的运行系统,可以使用参数(-O),来获取对于一些操作系统无法准确判断的,可以加上参数(-osscan-guess)

    3、NULL扫描易被过滤

    4、FIN扫描

    FIN扫描的原理与NULL扫描的原理基本上是一样的在这里就不重复了

    5、ACK扫描

    ACK扫描的原理是发送一个ACK包给目标主机,不论目标主机的端口是否开启,都会返回相应的RST包,通过判断RST包中的TTL来判断端口是否开启

    运行原理图:

    TTL值小于64端口开启,大于64端口关闭

    大致上主要的扫描方法就是这些,除了我们可以按照这样些参数去执行扫描外,还可以自己定义一个TCP扫描包

    6、自定义TCP扫描包的参数为(--scanflags)

    例如:定制一个包含ACK扫描和SYN扫描的安装包

    命令:nmap --scanflags ACKSYN nmap.org

     (3)Nmap的优点

     

    1.      灵活。支持数十种不同的扫描方式,支持多种目标对象的扫描。
    2.      强大。Nmap可以用于扫描互联网上大规模的计算机。
    3.      可移植。支持主流操作系统:Windows/Linux/Unix/MacOS等等;源码开放,方便移植。
    4.      简单。提供默认的操作能覆盖大部分功能,基本端口扫描nmap targetip,全面的扫描nmap –A targetip。
    5.      自由。Nmap作为开源软件,在GPL License的范围内可以自由的使用。
    6.      文档丰富。Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap参考书籍。
    7.      社区支持。Nmap背后有强大的社区团队支持。
    8.      赞誉有加。获得很多的奖励,并在很多影视作品中出现(如黑客帝国2、Die Hard4等)。
    9.      流行。目前Nmap已经被成千上万的安全专家列为必备的工具之一。

  • 相关阅读:
    自动化基础知识
    第一章Google软件测试介绍
    《将博客搬至CSDN》
    二叉树的先序遍历和中序遍历分析(递归)
    java 部分快捷功能
    toString
    自增自减运算符剖析
    二进制数的直接表示
    编程中的&&和||
    npm 镜像地址设置
  • 原文地址:https://www.cnblogs.com/jmjm/p/7840850.html
Copyright © 2020-2023  润新知