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扫描教程之Nmap基础知识相关推荐

  1. Nmap扫描教程之Nmap基础知识

    Nmap扫描教程之Nmap基础知识 Nmap扫描Nmap基础知识 Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper).Nmap工具可以用来扫描电脑上开放的端口 ...

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

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

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

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

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

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

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

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

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

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

  7. Scala教程之:Scala基础

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

  8. python def函数_Python教程之Lambda表达式知识概述

    在Python中,除了def之外,还提供了一种生成函数对象的表达式形式,即Lambda表达式,它可以创建小的匿名函数,起到一个函数速写的作用.接下来的好程序员Python学习课程就给大家分享Lambd ...

  9. 廖雪峰python教程之python基础

    Python是一种计算机编程语言.计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能 ...

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

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

最新文章

  1. zTree实现节点修改的实时刷新
  2. Win64 驱动内核编程-8.内核里的其他常用
  3. 在局域网访问_局域网访问共享文件需要密码怎么办?取消访问密码的方法
  4. java版本号管理_微服务项目中如何管理依赖版本号?
  5. java一维数组存入_java一维数组
  6. 【算法学习】双调欧几里得旅行商问题(动态规划)
  7. mysql bat备份_Windows下简单的Mysql备份BAT脚本分享
  8. 若依二次开发添加 select 下拉框 变大 和 有空格存在
  9. Spring MVC JSON自己定义类型转换
  10. ImageJ工具使用简介
  11. 三角网格上高斯曲率和平均曲率
  12. wps 打开xml格式乱码_Word和WPS打开文件乱码怎么办?
  13. linux mysqldump 备份所有数据库,mysqldump导出所有数据库
  14. 远程erp打印文件本地打印机没反应问题
  15. 把视频裁剪成图片Python
  16. 看清接收网络数据包的全过程
  17. Android 车机初体验:Auto,Automotive 傻傻分不清楚?
  18. String.matches()的用法
  19. 解决访问国外公共静态资源速度慢的问题
  20. mysql新建数据库

热门文章

  1. Snaker-designer插件Eclipse安装
  2. 安科瑞无线测温方案part1
  3. pgsql timestamp without time zone > character varying解决方案
  4. 基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现
  5. 2019-3-8-win10-uwp-一张图说明水平对齐和垂直对齐
  6. codeforces C. Multiples of Length
  7. 2021-2022 ACM-ICPC Brazil Subregional Programming Contest C Creating Multiples
  8. App推广:ASO策略篇,清榜频发,优化热情不减
  9. CTF实验找不到ssh2john
  10. 大数据行业必须掌握的核心技术