Nmap扫描原理与用法


1、Nmap介绍


Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。最新版的Nmap6.0在2012年5月21日发布,详情请参见:www.nmap.org。
一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。

Nmap的优点:

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

1.1 Zenmap

Zenmap是Nmap官方提供的图形界面,通常随Nmap的安装包发布。
Zenmap是用Python语言编写而成的开源免费的图形界面,能够运行在不同操作系统平台上Windows/Linux/Unix/Mac OS等)。
Zenmap旨在为nmap提供更加简单的操作方式。
简单常用的操作命令可以保存成为profile,用户扫描时选择profile即可;
可以方便地比较不同的扫描结果;
提供网络拓扑结构(NetworkTopology)的图形显示功能。
或“用户创建的Profile”;
Command栏位,用于显示选择Profile对应的命令或者用户自行指定的命令;
Topology选项卡,用于显示扫描到的目标机与本机之间的拓扑结构。
这里写图片描述
其中Profile栏位,用于选择“Zenmap默认提供的Profile”

1.2 功能架构图

这里写图片描述
Nmap包含四项基本功能:

**主机发现**(Host Discovery)
**端口扫描**(Port Scanning)
**版本侦测**(Version Detection)
**操作系统侦测**(Operating System Detection)  

而这四项功能之间,又存在大致的依赖关系(通常情况下的顺序关系,但特殊应用另外考虑),首先需要进行主机发现,随后确定端口状况,然后确定端口上运行具体应用程序与版本信息,然后可以进行操作系统的侦测。而在四项基本功能的基础上,Nmap提供防火墙与IDS(IntrusionDetection System,入侵检测系统)的规避技巧,可以综合应用到四个基本功能的各个阶段;另外Nmap提供强大的NSE(Nmap Scripting Language)脚本引擎功能,脚本可以对基本功能进行补充和扩展。


2、Nmap基本扫描方法


Nmap主要包括四个方面的扫描功能,主机发现、端口扫描、应用与版本侦测、操作系统侦测。在详细讲解每个具体功能之前,首先可以看看Nmap的典型用法。

2.1 用法引入

2.1.1 确定端口状况

如果直接针对某台计算的IP地址或域名进行扫描,那么Nmap对该主机进行主机发现过程和端口扫描。该方式执行迅速,可以用于确定端口的开放状况。
命令形式:
nmap targethost
可以确定目标主机在线情况及端口基本状况。
这里写图片描述

2.1.2 完整全面的扫描

如果希望对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。
命令形式:
nmap –T4 –A –v targethost
其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。
这里写图片描述
例如,扫描局域网内地址为192.168.1.100的电脑。
显而易见,扫描出的信息非常丰富,在对192.168.1.100的扫描报告部分中(以红框圈出),可以看到主机发现的结果“Host is up”;端口扫描出的结果,有996个关闭端口,4个开放端口(在未指定扫描端口时,Nmap默认扫描1000个最有可能开放的端口);而版本侦测针对扫描到的开放状况进一步探测端口上运行的具体的应用程序和版本信息;OS侦测对该目标主机的设备类型与操作系统进行探测;而绿色框图是nmap调用NSE脚本进行进一步的信息挖掘的显示结果。

2.2 主机发现

主机发现(Host Discovery),即用于发现目标主机是否在线(Alive,处于开启状态)。

2.2.1 主机发现原理

主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。Nmap支持十多种不同的主机探测方式,比如发送ICMP
ECHO/TIMESTAMP/NETMASK报文、发送TCPSYN/ACK包、发送SCTP
INIT/COOKIE-ECHO包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。 主机发现基本原理:(以ICMPecho方式为例)
这里写图片描述
Nmap的用户位于源端,IP地址192.168.0.5,向目标主机192.168.0.3发送ICMP Echo Request。
如果该请求报文没有被防火墙拦截掉,那么目标机会回复ICMP Echo Reply包回来。以此来确定目标主机是否在线。
默认情况下,Nmap会发送四种不同类型的数据包来探测目标主机是否在线。

ICMP echo request  
a TCP SYN packet to port 443  
a TCP ACK packet to port 80  
an ICMP timestamp request

依次发送四个报文探测目标机是否开启。只要收到其中一个包的回复,那就证明目标机开启。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误。

2.2.2 主机发现的用法

通常主机发现并不单独使用,而只是作为端口扫描、版本侦测、OS侦测先行步骤。而在某些特殊应用(例如确定大型局域网内活动主机的数量),可能会单独专门适用主机发现功能来完成。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值