Nmap扫描教程之Nmap基础知识

Nmap扫描Nmap基础知识

Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper)。Nmap工具可以用来扫描电脑上开放的端口,确定哪些服务运行在哪些端口,并且推断出计算机运行的操作系统。通过使用该工具,可以评估网络系统安全。所以,Nmap是大部分用户所必要的工具之一。本章将对Nmap工具的基础知识进行详细介绍。

Nmap扫描Nmap概述

Nmap是一款非常不错的网络扫描工具,支持各种操作系统,如Windows、Linux、Mac OS等。为了帮助用户更好的使用该工具,本节将对Nmap工具做一个简单介绍。

Nmap扫描什么是Nmap

Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。目前,Nmap工具的最新版本是6.47。

由于Nmap工具具有许多优点,所以该工具被广泛应用。其中,Nmap工具的优点如下所示:

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

Nmap扫描 Nmap的功能

Nmap主要包括四个方面的扫描功能,分别是主机发现、端口扫描、应用与版本侦测、操作系统侦测。这四项功能之间,又存在大致的依赖关系。通常情况下顺序关系,如图1.1所示。


图1.1  Nmap功能架构图

下面将详细介绍以上Nmap各功能之间的依赖关系。如下所示:

(1)首先用户需要进行主机发现,找出活动的主机。然后,确定活动主机上端口状况。

(2)根据端口扫描,以确定端口上具体运行的应用程序与版本信息。

(3)对版本信息侦测后,对操作系统进行侦测。

在这四项基本功能的基础上,Nmap提供防火墙与IDS(IntrusionDetection System,入侵检测系统)的规避技巧,可以综合应用到四个基本功能的各个阶段;另外Nmap提供强大的NSE(Nmap Scripting Language)脚本引擎功能,脚本可以对基本功能进行补充和扩展。

Nmap扫描 Nmap工作原理

Nmap使用TCP/IP协议栈指纹准确地判断目标主机的操作系统类型。首先,Nmap通过对目标主机进行端口扫描,找出有哪些端口正在目标主机上监听。当侦测到目标主机上有多于一个开放的TCP端口、一个关闭的TCP端口和一个关闭的UDP端口时,Nmap的探测能力是最好的。Nmap工具的工作原理如表1-1所示。

表1-1  Nmap工作原理


Nmap对目标主机进行一系列测试,如表1-1所示。利用得出的测试结果建立相应目标主机的Nmap指纹。最后,将此Nmap指纹与指纹库中指纹进行查找匹配,从而得出目标主机的操作系统类型。

Nmap扫描Nmap扫描类型

Nmap常见的扫描类型如表1-2所示。

表1-2  Nmap主要扫描类型


Nmap扫描获取Nmap安装包

当用户对Nmap工具有一个清晰的认识后,即可安装并使用该工具了。如果要安装该工具,则必须要先获取其软件包。本节将介绍如何获取Nmap工具的安装包。

Nmap工具的官网是http://nmap.org/。在该官网提供了Nmap各种类型包的下载地址。其中,下载地址是:

https://nmap.org/download.html

在浏览器中输入以上地址后,将打开如图1.2所示的界面。


图1.2  Nmap下载页面

在该界面根据自己的系统版本,选择相应的软件包。由于章节的原因,上图只截取了一部分(包括源码包和Windows二进制包的下载地址)。

Nmap扫描安装Nmap工具

通过上一节的介绍,用户可以顺利的获取到Nmap工具的安装包。接下来,用户就可以在操作系统中安装该工具了。为了使任何所有用户都可以很好的使用该工具,下面将分别介绍在Windows和Linux操作系统中安装Nmap工具的方法。

Nmap扫描在Windows下安装

【示例1-1】下面将介绍在Windows下安装Nmap工具的方法。具体操作步骤如下所示:

(1)在Windows下双击下载的Nmap软件包,本例中的软件包名为nmap-6.47-setup.exe。双击该软件包后,将弹出许可协议对话框,如图1.3所示。

(2)该界面显示了安装Nmap工具的许可证协议。这里单击I Agree按钮,将弹出选择组件对话框,如图1.4所示。


图1.3  许可证协议对话框                                   图1.4  选择组件对话框

(3)在该界面选择安装Nmap其它功能的一些组件,如Zenmap、Ndiff、Nping等。如果用户不想安装某组件的话,将组件名前面复选框中的对勾去掉即可。这里选择默认设置,安装所有组件。然后,单击Next按钮,将弹出安装位置选择对话框,如图1.5所示。

(4)该界面是用来设置Nmap安装位置的。如果用户希望安装到其它位置的话,则单击Browse按钮,选择要安装的位置。这里使用默认的位置,然后单击Install按钮,将弹出WinPcap许可协议对话框,如图1.6所示。


图1.5  安装位置选择对话框                              图1.6  WinPcap许可证协议对话框

(5)该界面显示了安装WinPcap组件的许可证协议。WinPcap是重要的组件,用来实现数据包捕获和网络分析。所以,必须安装。这里单击I Agree按钮,将显弹出WinPcap安装完成提示信息对话框,如图1.7所示。

(6)该界面显示WinPcap组件已经完成。此时,单击Next按钮,将弹出WinPcap选项对话框,如图1.8所示。


图1.7  WinPcap安装完成信息                            图1.8  WinPcap选项对话框

(7)该界面用来设置启动NPF选项。这里使用默认设置,然后单击Next按钮,将弹出完成对话框,如图1.9所示。

(8)该界面提示WinPcap组件已设置完成。此时,单击Finish按钮,将显示开始安装Nmap工具。安装完成后,将弹出Nmap安装完成提示信息对话框,如图1.10所示。


图1.9  WinPcap组件设置完成                        图1.10  Nmap安装完成信息

(9)从该界面可以看到Nmap工具已经安装完成。此时,单击Next按钮,将弹出创建快捷方式的对话框,如图1.11所示。

(10)该界面用来设置Nmap工具创建快捷方式的位置。默认是在启动菜单栏和桌面上创建快捷方式,这里使用默认设置。然后,单击Next按钮,将弹出Nmap完成对话框,如图1.12所示。


图1.11  创建快捷方式对话框                                   图1.12  Nmap设置完成

(11)从该界面可以看到Nmap工具已设置完成。此时,单击Finish按钮,退出Nmap安装向导。

提示:如果用户当前系统中已经安装WinPcap的话,将不会弹出图1.6所示的对话框,而是弹出如图1.13所示的对话框。


图1.13  WinPcap已经安装

从该界面可以看到提示WinPcap组件在当前系统中已经安装,接下来将跳过WinPcap组件安装。此时,单击“确定”按钮,将显示如图1.10所示的界面。如果用户不希望弹出图1.13对话框的话,在图1.4中去掉WinPcap 4.1.3组件前面复选框中的对勾即可。

Nmap扫描在Linux下安装

在Linux下可以使用两种方法来安装。其中,一种是使用二进制包,另一种就是源码包。但是,在Linux中二进制包的安装有两大流派,分别是Red Hat的rpm(Redhat Package Management)和Debian的dpkg。所以,对于使用二进制包安装,则需要根据系统的类型选择相应的包进行安装。下面分别介绍这两种类型包的安装方法。

1.Red Hat系列系统安装

【示例1-2】在Red Hat系列系统中安装Nmap工具。下面以RHEL操作系统为例,演示Nmap的安装方法。执行命令如下所示:

  • [root@RHEL ~]# rpm -ivh nmap-6.47-1.i386.rpm
  • Preparing...                ########################################### [100%]
  • 1:nmap                 ########################################### [100%]

看到以上输出信息,则表示Nmap工具安装成功。在以上命令中,rpm是命令,表示安装.rpm格式的软件包;-ivh是-i、-v和-h三个选项的组合,其中-i表示安装、-v显示详细信息、-h用来显示安装进度;nmap-6.47-1.i386.rpm是软件包名。

2.Debian系列系统安装

【示例1-3】在Debian系列系统中安装Nmap工具。下面以Ubuntu操作系统为例,演示Nmap的安装方法。执行命令如下所示:

  • test@testtual-machine:~$ sudo dpkg -i nmap_6.47-4_i386.deb
  • [sudo] password for test                                                  #输入当前登录系统用户的密码
  • (正在读取数据库 ... 系统当前共安装有 175794 个文件和目录。)
  • 正准备解包 nmap_6.47-4_i386.deb  ...
  • 正在将 nmap (6.47-4) 解包到 (6.47-4) 上 ...
  • 正在设置 nmap (6.47-4) ...
  • 正在处理用于 man-db (2.6.7.1-1ubuntu1) 的触发器 ...

看到以上类似输出信息,则表示Nmap功能安装成功。

Nmap扫描源码包安装

源码包可以在各种系列的Linux系统中安装。下面将以RHEL操作系统为例,介绍使用源码包安装Nmap 工具的方法。具体操作步骤如下所示:

(1)解压Nmap安装包。执行命令如下所示:

  • [root@RHEL ~]# tar jxvf nmap-6.47.tar.bz2

执行以上命令后,将会将源码包中的文件解压的当前目录下nmap-6.47文件夹中。

(2)配置Nmap工具。执行命令如下所示:

  • [root@RHEL ~]# cd nmap-6.47
  • [root@RHEL nmap-6.47]# ./configure

执行以上命令,表示为Nmap工具指定了默认的安装位置。

(3)编译软件包。执行命令如下所示:

  • [root@RHEL nmap-6.47]# make

(4)安装软件包。执行命令如下所示:

  • [root@RHEL nmap-6.47]# make install

以上命令执行成功的话,将会看到“NMAP SUCCESSFULLY INSTALLED”信息。该信息表示,Nmap工具安装成功。

本文选自:Nmap扫描基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

Nmap扫描教程之Nmap基础知识相关推荐

  1. Nmap扫描教程之DNS服务类

    Nmap扫描教程之DNS服务类 Nmap DNS服务类 DNS(Domain Name System,域名系统)的作用就是将主机名解析为对应IP地址的过程.通常主机域名的一般结构为:主机名.三级域名. ...

  2. nmap教程之nmap命令使用示例(nmap使用方法)

    nmap教程之nmap命令使用示例(nmap使用方法) Nmap是一款网络扫描和主机检测的非常有用的工具.Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于 ...

  3. Nmap扫描教程之网络基础服务DHCP服务类

    Nmap扫描教程之网络基础服务DHCP服务类 Nmap网络基础服务 网络基础服务是网络正常工作的基石,常见的网络基础服务包括DHCP服务和DNS服务.其中,DHCP服务用来为计算机动态分配IP地址:D ...

  4. javascript技术教程蔡敏_程序员都必掌握的前端教程之JavaScript基础教程(上)

    阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到. 本篇文章成哥继续带大家来学习前端教程之JavaScript,网页的动态事件基本上都是靠它来实现的.下面我们就一起来学习内容吧! 01 Ja ...

  5. Python培训教程之Python基础知识点梳理

    Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小编就来给大家分享一篇Python培训教程之Python基础知识 ...

  6. linux namp使用教程,nmap教程之nmap命令使用示例(nmap使用方法)

    1 FINscan(sF)扫描有时不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包.发送一个设置了FIN标志的数据包并不需要完成TCP的 ...

  7. html基础教程之html基础

    HTML 基础- 4个实例 不要担心本章中您还没有学过的例子, 您将在下面的章节中学到它们. HTML 标题 HTML 标题(Heading)是通过<h1> – <h6> 标签 ...

  8. Scala教程之:Scala基础

    文章目录 常量 变量 代码块 函数 方法 类 case类 对象 trait main方法 这篇文章我们大概过一下Scala的基础概念,后面的文章我们会有更详细的讲解Scala的具体内容. 常量 在Sc ...

  9. GIS教程之Cesium 基础入门教程

    Cesium是一个 JavaScript 库,可让您创建 GIS 数据的 3D 可视化. 本教程的主要目标是向您展示如何创建基本场景.建立卫星图像作为基础图层并向其中添加一些 GIS 数据. 先决条件 ...

最新文章

  1. js控制文本栏只能输入数字
  2. Linux top小结
  3. 利用helloworld来检测VPS的对外端口是否打开
  4. java的编辑框丢失焦点_java – 捕获EditText丢失焦点
  5. 超生动图解LSTM和GPU:拯救循环神经网络的记忆障碍就靠它们了!
  6. lightoj 1016
  7. php根据类名字符串,PHP 5.5 新特性 ::class 获取类名字符串
  8. 常见移动机器人多角度对比分析(图片版)
  9. AT89S52单片机C语言编程,单片机的C语言应用程序设计_基于AT89S52单片机的篮球计时计分器.doc...
  10. mysql读写分离延迟问题_MySQL读写分离后的延迟解决方案
  11. 【STM32】中断和事件
  12. httpclient.execute长时间停滞问题
  13. Vue Markdown编辑器
  14. Yapi 可视化接口管理平台部署文档
  15. [转载]Eclipse照亮Java众生
  16. 路由器的配置+telnet
  17. 认识Hive,以及Hive的数据定义与数据操作,hive的数据查询和hive函数
  18. 字体与版式设计 字体设计让你的信息变独特
  19. linux多窗口切换,linux screen 多窗口命令分析
  20. 获取web页面的宽度和高度

热门文章

  1. Asp.NET MVC3添加域(Areas)区分Admin域和用户域
  2. Silverlight实用窍门系列:66.Silverlight的数据模板DataTemplate(二)获取数据模板控件...
  3. 用Jsp来实现文件下载功能的几种方式
  4. java精确除法计算,四舍五入 Java问题通用解决代码
  5. 解决iscroll.js上拉下拉刷新手指划出屏幕页面无法回弹问题
  6. .NET(C#)时间日期字符串(String)格式化转换成Datetime异常报错问题
  7. 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  8. MySQL大小写敏感的解决方案
  9. Redis 5.0.3默认配置启动报错解决方法
  10. “最少惊讶”和可变默认参数