zoukankan      html  css  js  c++  java
  • 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已经被成千上万的安全专家列为必备的工具之一。

  • 相关阅读:
    基于摸板匹配的目標跟蹤算法
    spoj 2713 Can you answer these queries IV
    zoj 3633 Alice's present
    hdu 3642 Get The Treasury
    poj 1195 Mobile phones
    poj 2760 End of Windless Days
    zoj 3540 Adding New Machine
    spoj 1716 Can you answer these queries III
    spoj 1043 Can you answer these queries I
    spoj 2916 Can you answer these queries V
  • 原文地址:https://www.cnblogs.com/jmjm/p/7840850.html
Copyright © 2011-2022 走看看