您当前的位置:首页 > 电脑百科 > 安全防护 > 软件工具

Linux网络安全运维:网络探测和安全审核工具nmap

时间:2020-01-03 14:26:58  来源:  作者:

对于nmap,相信很多安全运维人员并不陌生,它曾经在电影《黑客帝国》中出现过,是黑客和网络安全人员经常用到的工具,本文介绍此工具的实现原理和使用技巧。

 

1、nmap和Zenmap简介

 

nmap是一个开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本。由此可见,nmap是一个功能非常强大的网络探测工具,同时它也成为网络黑客的最爱,因为nmap所实现的这些功能正是黑客入侵网络的一个基本过程。站在安全运维的角度,只有了解了黑客入侵的基本方式和过程,才能有目的、有针对性地进行安全防护。

 

nmap是Network MApper的缩写,由Fyodor在1997年创建,现在已经成为网络安全必备的工具之一。nmap作为一个流行的安全工具,它的主要特点有:

 

非常灵活。nmap支持10多种扫描方式,并支持多种目标对象扫描。

 

支持主流操作系统。nmap支持windowslinux、BSD、Solaris、AIX、mac OS等多种平台,可移植性强。

 

使用简单。nmap安装、使用都非常简单,基本用法就能满足一般使用需求。

 

自由软件。nmap是在GPL协议下发布的,在GPL License的范围内可自由使用。

 

Zenmap是nmap的GUI版本,由nmap官方提供,通常随着nmap安装包一起发布。Zenmap是用Python语言编写的,能够在Windows、Linux、UNIX、Mac OS等不同系统上运行。开发Zenmap的目的主要是为nmap提供更加简单的操作方式。

 

2、nmap基本功能与结构

 

nmap功能非常强大,从它实现功能的方向性来划分,主要有如下四个基本功能:

 

● 主机发现。

● 端口扫描。

● 应用程序及版本侦测。

● 操作系统及版本侦测。

 

这四个基本功能既相互独立,又依次依赖,因为一般的网络嗅探都是从主机发现开始的,在发现在线的主机后,接着需要进行端口扫描,进而通过扫描到的端口确定运行的应用程序类型及版本信息,并最终确定操作系统的版本及漏洞信息。另外nmap还提供了防火墙与入侵检测系统的规避技巧,这个功能可以应用到基本功能的各个阶段中。最后,nmap还提供了高级用法,即通过NSE(Nmap Scripting Language)脚本引擎功能对nmap基本功能进行补充和扩展。

 

3、nmap的安装与验证

 

nmap的安装非常简单,官方提供源码编译安装和RPM包两种方式,可根据自己的喜好选择安装即可。这里下载的版本为nmap-6.40.tar.bz2,下面分别介绍两种安装方式。

 

(1)源码编译安装

 

从官方网站下载源码包,然后编译安装即可。编译安装过程无需额外参数,操作如下:

 

[root@localhost ~]# tar jxvf nmap-6.40.tar.bz2

[root@localhost ~]# cd nmap-6.40

[root@localhost nmap-6.40]# make

[root@localhost nmap-6.40]# make install

 

至此,源码编译编译方式安装nmap完成。

 

(2)RPM包安装

 

nmap官方也提供RPM格式的安装包,直接从网站下载RPM格式的安装包,然后进行安装即可,操作过程如下:

 

[root@localhost ~]# wget http://nmap.org/dist/nmap-6.40-1.x86_64.rpm

[root@localhost ~]# rpm -Uvh nmap-6.40-1.x86_64.rpm

 

在完成安装后,执行“namp -h”,如果能输出帮助信息,表示安装成功,否则根据错误提示重新安装。

 

4、nmap的典型用法

 

前面提到了nmap主要包含四个方面的扫描功能,在详细介绍每个功能之前,首先介绍nmap的典型用法。最简单的nmap命令形式如下:

 

namp 目标主机

 

通过这个命令,可以确定目标主机的在线情况和端口的监听状态,如图1所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

图1 nmap的典型用法

 

由输出可知,目标主机“192.168.12.189”处于“up”状态,并且此主机上开放了22、21、3306端口,同时还侦测到每个端口对应的服务,在最后还给出目标主机网卡的MAC信息。

 

如果希望了解目标主机更多的信息,可以通过完全扫描的方式实现,nmap命令内置了“-A”选项,可以实现对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统识别等完整全面的扫描,命令形式如下:

 

nmap –T4 –A –v 目标主机

 

其中,“-A”选项用于开启全面扫描;“-T4”指定扫描过程中使用的时序模板,总共有6个等级(0~5),等级越高,扫描速度越快,但也越容易被防火墙或者入侵检测设备发现并屏蔽,所以选择一个适当的扫描等级非常重要,这里推荐使用“-T4”;“-v”参数可显示扫描细节。图2是nmap对某主机的全面扫描过程。

Linux网络安全运维:网络探测和安全审核工具nmap

 

图2 nmap对主机“192.168.12.188”的全面扫描过程

 

从图2中可以看出,整个扫描过程非常详细:第一部分是对主机是否在线进行扫描;第二部分是对端口进行扫描,在默认情况下nmap会扫描1000个最有可能开放的端口,由于只扫描到22、111、80三个端口处于打开状态,所以在输出中会有“997 closed ports”的描述;第三部分是对端口上运行的应用服务以及版本号进行统计,可以看到,扫描结果非常详细地记录了软件的版本信息;第四部分是对操作系统类型和版本进行探测,从扫描结果来看,还是非常准确的;第五部分是对目标主机的路由跟踪信息。

 

5、nmap主机发现扫描

 

主机发现主要用来判断目标主机是否在线,其扫描原理类似于ping命令,通过发送探测数据包到目标主机,如果能收到回复,那么认为目标主机处于在线状态。nmap支持多种不同的主机探测方法,例如发送TCP SYN/ACK包、发送SCTP包、发送ICMP echo/timestamp/netmask请求报文等,用户可在不同的环境下选择不同的方式来探测目标主机。

 

(1)主机发现的用法

 

nmap提供了丰富的选项以供用户选择不同的主机发现探测方式,使用语法如下:

 

nmap [选项或参数] 目标主机

 

nmap常用的主机发现选项与含义如表1所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

表1 常用的主机发现选项及含义

 

在这些选项中,比较常用的是“-sn”和“-Pn”,例如,查看某个网段有哪些主机在线,就需要使用“-sn”选项,而如果已经知道了目标主机在线,仅仅想扫描主机开放的端口时,就需要用“-Pn”选项。

 

(2)使用实例

 

下面以探测www.abc.com主机的信息为例,简单演示主机发现的用法。首先,在联网的服务器上执行如下命令:

 

nmap-sn -PE -PS22,80 -PU53 www.abc.com

 

执行结果如图3所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

图3 主机发现的执行结果

 

在这个例子中,使用了“-PE”、“-PS”、“-PU”等参数,根据上面的介绍,“-PE”是以发送ICMP echo报文的形式进行主机探测的,“-PS”是以发送TCP SYN/ACK包的形式侦测主机信息的,而“-PU”则是以UDP的方式进行主机侦测的。为了清晰展示nmap的侦测方式和侦测过程,这里通过抓包工具Wireshark动态监测nmap探测主机的过程,如图4所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

图4 通过Wireshark获取的nmap探测主机过程

 

从图4中可以看到,nmap所在的主机“192.168.12.188”向目标主机“61.185.133.234”发送了四个探测包,分别是ICMP Echo(ping)、22端口和80端口的TCP SYN、53端口的UDP包。但是仅仅收到了ICMP Echo(ping)和80端口的回复,22端口返回了“RST”标识,这说明22端口处于关闭状态。不过nmap的原则是只要能收到任何一种探测请求的回复,就认为此主机处于在线状态。

 

6、nmap端口扫描

 

端口扫描是nmap最核心的功能,通过端口扫描可以发现目标主机上TCP、UDP端口的开放情况。nmap在默认状态下会扫描1000个最有可能开放的端口,并将侦测到的端口状态分为6类,分别是:

 

open,表示端口是开放的。

 

closed,表示端口是关闭的。

 

filtered,表示端口被防火墙屏蔽,无法进一步确定状态。

 

unfiltered,表示端口没有被屏蔽,但是否处于开放状态,还需要进一步确定。

 

open|filtered,表示不确定状态,端口可能是开放的,也可能是屏蔽的。

 

closed|filtered,表示不确定状态,端口可能是关闭的,也可能是屏蔽的。

 

在端口扫描方式上,nmap支持10多种探测方法,最常用的有“TCP SYN scanning”,这是默认的端口扫描方式,另外还有“TCP connect scanning”、“TCP ACK scanning”、“TCPFIN/Xmasscanning”、“UDP scanning”等探测方式。具体使用哪种探测方式,用户可自己指定。

 

(1)端口扫描的用法

 

nmap提供了多个选项以供用户来指定扫描方式和扫描端口,使用语法如下:

 

nmap [选项或参数] 目标主机

 

nmap端口扫描的常用选项与含义如表2所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

表2 nmap端口扫描的常用选项及含义

 

(2)使用实例

 

下面仍以探测www.abc.com主机的信息为例,简单演示端口扫描的使用方法。首先,在联网的服务器上执行如下命令:

 

nmap -sU -sS -F www.abc.com

 

执行结果如图5所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

图5 nmap端口扫描应用实例

 

在图5中,参数“-sS”表示使用TCP SYN方式扫描TCP端口,“-sU”表示扫描UDP端口,“-F”表示使用快速扫描模式,扫描最可能开放的前100个端口(TCP和UDP各100个端口),由输出可知,有21个端口处于开放或者屏蔽状态,其他179个端口处于关闭状态。

 

7、nmap版本侦测

 

nmap的版本侦测功能主要用来确定目标主机开放的端口上运行的应用程序及版本信息,nmap的版本侦测支持TCP/UDP协议,支持多种平台的服务侦测,支持IPV6功能,并能识别几千种服务签名,下面介绍nmap版本侦测的使用方法。

 

(1)版本侦测的用法

 

nmap在版本侦测方面的命令选项非常简单,常用的语法如下:

 

nmap [选项或参数] 目标主机

 

nmap在版本侦测方面的常用选项及含义如表3所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

表3 nmap版本侦测的常用选项及含义

 

(2)使用实例

 

下面以探测“23.76.232.59”主机上运行的应用程序的版本信息为例,简单演示版本侦测的使用方法。首先,在联网的服务器上执行如下命令:

 

nmap-sV 23.76.232.59

 

执行结果如图6所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

图6 nmap版本侦测实例

 

从图6中nmap的输出可以看到每个端口对应的服务名称以及详细的版本信息,通过对服务器上运行服务的了解,以及对服务版本的探测,基本能判断出来此服务器是否存在软件漏洞,进而提醒运维管理人员进行端口关闭或升级软件等操作,尽早应对可能出现的安全威胁。

 

8、nmap操作系统侦测

 

操作系统侦测主要是对目标主机运行的操作系统类型及版本信息进行检测。nmap拥有丰富的系统指纹库,目前可以识别近3000种操作系统与设备类型。下面介绍nmap操作系统侦测的使用方法。

 

(1)操作系统侦测的用法

 

nmap在操作系统侦测方面提供的命令选项比较少,常用的语法如下:

 

nmap [选项或参数] 目标主机

 

nmap在操作系统侦测方面的常用选项及含义如表4所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

表4 nmap操作系统侦测的常用选项及含义

 

(2)使用实例

 

下面以探测“192.168.12.118”和“192.168.12.119”主机的操作系统类型为例,简单演示操作系统侦测的使用方法。首先,在联网的服务器上执行如下命令:

 

nmap -O --osscan-guess 192.168.12.118-119

 

执行结果如图7所示。

Linux网络安全运维:网络探测和安全审核工具nmap

 

图7 nmap操作系统侦测实例

 

从图7中可以看出,在指定了“-O”选项后,nmap命令首先执行了主机发现操作,接着执行了端口扫描操作,然后根据端口扫描的结果进行操作系统类型的侦探,获取到的信息有设备类型、操作系统版本、操作系统的CPE描述、操作系统的细节和网络距离。如果不能确定操作系统的版本,会猜测每个系统版本的可能性比率,例如对于“192.168.12.119”主机,nmap给出最可能的操作系统版本是VMware ESXi Server 5.0,而事实上,此主机确实安装了这个版本的系统。由此可见,nmap的操作系统侦测功能是多么的强大。

 

微信公众号:计算机与网络安全

ID:Computer-network



Tags:nmap   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1. 概述Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务...【详细内容】
2021-06-25  Tags: nmap  点击:(164)  评论:(0)  加入收藏
Nmap (“Network Mapper(网络映射器)”) 是一款免费开源多平台的网络探测和安全审核的工具。Nmap通过主动发送特定数据包在网络中进行探测,并识别、分析返回的信息,用以确认网...【详细内容】
2021-06-11  Tags: nmap  点击:(175)  评论:(0)  加入收藏
官网:https://nmap.org/ 文档: Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具,被用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、...【详细内容】
2020-09-15  Tags: nmap  点击:(535)  评论:(0)  加入收藏
大家应该都知道,nmap是用来扫描端口的标杆级神器,我们经常在运维工作或安全评估中使用到它。在使用的时候,我们可能会碰到明明目标IP端口有开着,但是nmap却死活扫描不出来,等了大...【详细内容】
2020-06-12  Tags: nmap  点击:(231)  评论:(0)  加入收藏
介绍nmap是用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图Nmap的发送特制的数据包到目标主机然后对返回数据包进行分析。Nmap是一款枚举和测试网络...【详细内容】
2020-03-06  Tags: nmap  点击:(119)  评论:(0)  加入收藏
nmap(NSE)脚本引擎Nmap脚本引擎(NSE)是一种其他机制的漏洞扫描工具。不同于Nessus的系统性扫描,它更具有针对性的扫描性。【准备】:安装一个FTP服务器,并且开启ftp服务,用来测试下面...【详细内容】
2020-01-08  Tags: nmap  点击:(195)  评论:(0)  加入收藏
对于nmap,相信很多安全运维人员并不陌生,它曾经在电影《黑客帝国》中出现过,是黑客和网络安全人员经常用到的工具,本文介绍此工具的实现原理和使用技巧。 1、nmap和Zenmap简介 n...【详细内容】
2020-01-03  Tags: nmap  点击:(106)  评论:(0)  加入收藏
Nmap简介 Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用...【详细内容】
2019-10-21  Tags: nmap  点击:(167)  评论:(0)  加入收藏
Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开...【详细内容】
2019-09-04  Tags: nmap  点击:(196)  评论:(0)  加入收藏
介绍Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。一般情况下,Nmap用于列举网络主机清单、管理服...【详细内容】
2019-07-31  Tags: nmap  点击:(409)  评论:(0)  加入收藏
▌简易百科推荐
已经观察到一种新的基于JavaScript的远程访问木马(RAT)利用社会工程学传播,采用隐蔽的"无文件"技术作为其逃避检测和分析的方法。该恶意软件由Prevalyion的对抗性反情报团队(PA...【详细内容】
2021-12-17  网安老葫    Tags:恶意软件   点击:(13)  评论:(0)  加入收藏
关于windows Defender防病毒的问题升级win10后,我们会经常遇到打开或下载文件时弹出提示框提示你下载的文件是病毒之类,直接给你删除。你好不容易找了个激活工具,你刚打开发现...【详细内容】
2021-11-08  IT小哥吧    Tags:defender   点击:(47)  评论:(0)  加入收藏
喽!大家好,我是小易,欢迎来到我的知识分享站!今天给大家分享5个杀毒神器,让你的电脑干干净净,建议收藏起来哟! 1、Windows Defender随着Win10系统的更新已经日趋完善,它可以很好的解...【详细内容】
2021-11-08  知识与技能    Tags:流氓软件   点击:(74)  评论:(0)  加入收藏
介绍其实Iptables服务不是真正的防火墙,只是用来定义防火墙规则功能的"防火墙管理工具",将定义好的规则交由内核中的netfilter即网络过滤器来读取,从而真正实现防火墙功能。fil...【详细内容】
2021-10-18  互联网IT技术全栈    Tags:   点击:(52)  评论:(0)  加入收藏
什么是Nessus?Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件步骤如下:查看当前kali系统内核版本...【详细内容】
2021-09-09  TestGO    Tags:Nessus   点击:(112)  评论:(0)  加入收藏
http 头部信息http头部信息经常包含着主机服务的一些版本信息,经常使用的字段信息有:Server, X-Powered-By, X-AspNet-Version工具可采用curl进行curl --location --head $URL...【详细内容】
2021-08-19  80后IT老民工    Tags:渗透   点击:(227)  评论:(0)  加入收藏
一、杀软常见的三种方式二、免杀的三种常用方式三、利用工具实现免杀1、veil工具基础实现免杀+进阶2、venom免杀3、利用kali自带的shellter进行免杀4、利用avet实现免杀四、...【详细内容】
2021-08-18  白帽hacker淬炼    Tags:免杀   点击:(82)  评论:(0)  加入收藏
关于工具现有工具现在,现成的污点分析工具已经有很多了。其中,我最感兴趣的是Triton和bincat,因为两者已经相当成熟。然而,我们却无法使用这两种工具,因为它们不支持目标设备所...【详细内容】
2021-08-12  Hbo涵    Tags:安全漏洞   点击:(94)  评论:(0)  加入收藏
从实现原理上分,防火墙的技术包括四大类:网络级防火墙、应用级网关、电路级网关和规则检查防火墙。1、网络级防火墙一般是基于源地址和目的地址、应用、协议以及每个IP包的端...【详细内容】
2021-07-20  趣谈文化  搜狐号  Tags:防火墙   点击:(225)  评论:(0)  加入收藏
一、VMware部分1、Vmware简介虚拟机就是一个用来模拟真实的物理机环境的一个软件,可以在虚拟机中安装不同版本的操作系统。就是一个把下载好的ISO安装在物理机操作系统的一个...【详细内容】
2021-07-12  Kali与编程  公众号  Tags:Kali Linux   点击:(113)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条