Nmap入门

1. Nmap介绍

Nmap(Network Mapper,网络映射器)是一款开源免费的针对大型网络的端口扫描工具,可以检测目标主机是否在线、主机端口开放情况、检测主机运行的服务类型及版本信息、检测操作系统与设备类型等信息。它的图形化界面是Zenmap,分布式框架是DNmap。

Nmap的特点如下。

(1)主机探测:探测网络上的主机,如列出响应TCP和ICMP请求、ICMP请求、开放特别端口的主机。

(2)端口扫描:探测目标主机所开放的端口。

(3)版本检测:探测目标主机的网络服务,判断其服务名称及版本号。

(4)系统检测:探测目标主机的操作系统及网络设备的硬件特性。

(5)支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言。

2. 扫描参数

进入安装目录后,在命令行直接执行Nmap或查看帮助文档(输入nmap --help)将显示Namp的用法及其功能

Nmap的相关参数的类型有:

(1)设置扫描目标时用到的相关参数

(2)与主机发现方法相关的参数

(3)与常见的端口扫描方法相关的参数

(4)跟端口参数与扫描顺序的设置相关的参数

(5)与版本侦测相关的参数

扫描命令格式:Nmap+扫描参数+目标地址或网段。比如一次完整的Nmap扫描命令如下。
                    nmap  -T4  -A  -v  ip
其中-A表示使用进攻性(Aggressive)方式扫描;-T4表示指定扫描过程使用的时序(Timing),共有6个级别(0~5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通信状况良好的情况下推荐使用T4。-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,有助于让用户了解当前的扫描状态。

3. 常用方法

(1)扫描单个目标地址:在Nmap后面直接添加目标地址即可。

nmap 192.168.7.1

(2)扫描多个目标地址:若目标地址不在同一网段,或在同一网段但不连续且数量不多,可以使用该方法进行扫描。

nmap 192.168.7.1  192.168.137.1

(3)扫描一个范围内的目标地址:可以指定扫描一个连续的网段,中间使用“-”连接。例如,下列命令表示扫描范围为192.168.7.1~192.168.7.10。

 nmap 192.168.7.1-10

(4)扫描目标地址所在的某个网段:以C段为例,如果目标是一个网段,则可以通过添加子网掩码的方式扫描,下列命令表示扫描范围为192.168.7.1~192.168.7.255。

nmap 192.168.7.1/24

(5)扫描目标地址所在的某个网段:扫描主机列表targets.txt中的所有目标地址。扫描targets.txt中的地址或者网段,因targets.txt文件与nmap.exe在同一个目录下,所以此处直接引用的文件名,也可以导入绝对路径。

nmap -iL targets.txt

(6)扫描除某一个目标地址之外的所有目标地址段:下列命令表示扫描除192.168.7.100之外的其他192.168.7.x地址,从扫描结果来看确实没有对192.168.7.100进行扫描。

nmap 192.168.7.1/24 -exclude 192.168.7.100

(7)扫描除某一文件中的目标地址之外的目标地址:下列命令表示扫描除了target.txt文件夹中涉及的地址或网段之外的目标地址。还是以扫描192.168.7.x网段为例,在targets.txt中添加192.168.7.1和192.168.7.100,从扫描结果来看已经证实该方法有效可用。

nmap 192.168.7.1/24 -excludefile targets.txt

(8)扫描某一目标地址的指定端口:如果不需要对目标主机进行全端口扫描,只想探测它是否开放了某一端口,那么使用-p参数指定端口号,将大大提升扫描速度。

nmap 192.168.7.254 –p 1,100  

(9)对目标地址进行路由跟踪:下列命令表示对目标地址进行路由跟踪。

nmap --traceroute 192.168.31.161

(10)扫描目标地址所在C段的在线状况:下列命令表示扫描目标地址所在C段的在线状况。

nmap –sP 192.168.31.1/24

(11)对目标地址的操作系统进行指纹识别:下列命令表示通过指纹识别技术识别目标地址的操作系统的版本。

nmap –O 192.168.31.161

(12)检测目标地址开放的端口对应的服务版本信息

nmap –sV 192.168.31.161

(13)探测防火墙状态

nmap –sF –T4 192.168.31.161

4. 状态识别

Nmap输出的是扫描列表,包括端口号、端口状态、服务名称、服务版本及协议。通常有如下所示的六种状态:

  • Open 表示端口处于开放状态

  • Closed 表示端口处于关闭状态

  • Filterd 表示端口处于过滤无法收到返回的probe状态

  • Unfilterd 表示端口收到返回的probe,但是无法确认

  • Opend/UnFilterd 表示端口处于开放或者是未过滤状态

  • Closed/UnFilterd 表示端口处于关闭或者未过滤状态

5. Nmap脚本--NSE

NSE(Nmap Script Engine) Nmap脚本引擎,内置了很多可以用来扫描的、针对特定任务的脚本。通过NSE可以不断拓展Nmap的扫描策略,加强Nmap的功能。

Nmap中使用 --script 参数来指定调用的脚本,并且脚本存储在Nmap安装路径下的scripts文件夹下,对于kali linux,存储在/usr/share/nmap/scripts下面。

NSE的使用:

(1)鉴权扫描:使用”--script=auth”对目标主机或目标主机所在的网段进行应用弱口令检测。

nmap --script=auth 192.168.7.1

(2)暴力破解攻击:Nmap具有暴力破解的功能,可对数据库、SMB、SNMP等服务进行暴力破解。

nmap --script=brute 192.168.31.161

(3)漏洞扫描:Nmap具备漏洞扫描的功能,可以检查目标主机或网段是否存在常见的漏洞。

nmap --script=vuln 127.0.0.1

(4)应用服务扫描:Nmap具备很多常见应用服务的扫描脚本,如VNC服务、MySQL服务、Telnet服务、Rsync服务等,此处以VNC服务为例。

nmap  --script=realvnc-auth-bypass 192.168.31.161

(5)探测局域网内更多服务的开启情况:输入以下命令即可探测局域网内更多服务开启的情况。

nmap -n -p 445 --script=broadcast 192.168.7.1

(6)Whois解析:利用第三方的数据库或资源查询目标地址的信息,例如进行Whois解析。

nmap –script external baidu.com

(7)NSE更新

nmap   --script-updatedb

Nmap的脚本主要分为14类,目前为止可以用的有604个脚本,每个脚本都有其独特的作用,具体使用方法可以参考Nmap官方文档。

地址: NSEDoc Reference Portal — Nmap Scripting Engine documentation

6. 对比扫描结果ndiff

对某个网络进行探测的时候,有可能之前有探测过的结果,现在探测过后,需要对之前的结果与现在的结果来对比,找到两次不同点,这种情况下就可以利用ndiff工具进行扫描结果对比。ndiff工具不用重新下载,它包括在了Nmap工具之中。可以使用ndiff.exe -h参数来查看ndiff的帮助信息。

使用命令:ndiff.exe File1 File2 (File1和File2是Nmap扫描结果的xml格式。-oX)

该命令可以对两个文件进行扫描并且输出文件的不同点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值