Nmap介绍及常见用法

一、Nmap介绍

Nmap是有着“诸神之眼”之称的一款用于网络探测安全审计的工具。简单来说,它的原理是向指定的主机发送数据包,并获取主机的回复数据进行分析。通过这些数据,可以得出的信息包括主机的存活性以及开放的服务,还可以对目标进行安全审计。

二、端口状态

通常情况下,使用Nmap扫描到的端口处于以下状态之一:

  • Open:表示端口处于开放状态;
  • Closed:表示端口处于关闭状态;
  • Filterd:表示端口处于过滤无法收到返回的probe状态;
  • UnFilterd:表示端口收到返回的probe,但是无法确认;
  • Opend/UnFilterd:表示端口处于开放或者未过滤状态;
  • Closed/UnFilterd:表示端口处于关闭或者未过滤状态。

三、基本用法

  • nmap [IP地址 / 域名]
    作用: 请求DNS解析域名,然后向指定IP发送数据包,确认主机存活后,对主机的开放端口进行扫描。
    例子:
nmap scanme.nmap.org
  • nmap --dns-servers [DNS] [IP地址/域名]
    作用: 先通过指定的DNS解析域名,再执行后续操作。
    例子:
nmap --dns-serves 8.8.8.8 scanme.nmap.org
  • nmap -Pn [IP地址/域名]
    作用: 停止探测之前的ICMP请求。通常在已确认主机存活的情况下使用。
    例子:
nmap -Pn scanme.nmap.org
  • nmap -p m-n [IP地址/域名]
    作用: 只扫描指定范围内的端口。
    例子:
nmap -p 1-1000 scanme.nmap.org
  • nmap -e [网卡名称] [IP地址/域名]
    作用: 使用指定的网卡进行扫描。
    例子:
nmap -e eth0 scanme.nmap.org

四、侵略性探测

  • nmap -sV [IP地址]
    作用: 识别目标机器的服务信息。
    例子:
nmap -sV scanme.nmap.org
  • nmap -sC [IP地址]
    作用: 使用Nmap脚本进行探测,相当于--script=default
    例子:
nmap -sC scanme.nmap.org
  • nmap -O [IP地址]
    作用: 探测目标机器的操作系统信息。
    例子:
nmap -O 192.168.137.128

五、主机发现

在学习扫描局域网中存活的主机之前,需要先了解无类别域间路由,简称CIDR。CIDR是一种路由表示法,可以快速表示一个网络。
格式: [起始IP地址]/[网段地址位数]
例子:

192.168.137.1/24

上面的例子表示在192.168.137.1-192.168.137.255之间的所有主机的IP地址。其中,24是192.168.137占用的位数。

  • nmap -sn [CIDR]
    作用: 对局域网中所有主机进行ping扫描,以探测主机存活性。扫描过程中使用了TCP SYN扫描、ICMP echo Request来探测主机存活。
    例子:
nmap -sn 192.168.137.1/24

六、扫描结果

6.1 结果输出
  • nmap [其他参数] [IP地址/域名/CIDR] -oX [文件路径]
    作用: 把扫描结果保存到指定的文件中。
    例子:
nmap -sn 192.168.137.1/24 -oX test.xml

-oX输出的是xml格式的文件。除此以外,还可以使用-oN-oS-oG等参数来以不同格式输出结果。

6.2 结果对比

Ndiff是Nmap内置的扫描结果对比工具,可以帮助用户发现网络配置变化、漏洞和安全风险。Ndiff可以比较两个Nmap的XML格式扫描结果,并显示结果之间的差异。用法如下:
ndiff [文件1] [文件2]
作用: 比较并输出两个文件中包含的扫描结果的差异,包括主机状态的改变、端口状态的改变、服务的改变和操作系统探测。
例子:

ndiff result1.xml result2.xml

七、Nmap脚本引擎

7.1 NSE介绍

NSE(Nmap Script Engine)是Nmap内置的脚本引擎,可以驱动Nmap内置的用来扫描或针对特定任务的脚本。通过NSE可以不断拓展Nmap的扫描策略,加强Nmap的功能。当我们使用脚本时,Nmap实际上就是通过NSE来驱动指定的脚本。

7.2 NSE脚本使用
  • nmap --script [脚本1,脚本2,...] [IP地址/域名/CIDR]
    作用: 使用指定的脚本对目标进行扫描。
    例子:
nmap --script version,http-title 192.168.137.128
  • nmap --script "匹配模式" [IP地址/域名/CIDR]
    作用: 使用与表达式匹配的脚本来扫描。
    例子:
nmap --script http* and not http-slowlors 192.168.137.128
  • nmap --script [脚本/匹配模式] --script-args [参数] [IP地址/域名/CIDR]
    作用: 使用脚本并配置参数对目标进行扫描。
    例子:
nmap --script http-title --script-args http.useragent="Mozilla 999" 192.168.137.128

Linux系统中,nmap的脚本一般保存在/usr/share/nmap/scripts目录下,我们可以从中选取合适的脚本来使用。如果想了解某个脚本的用法,可以使用以下命令:
nmap --script-help=[脚本名称]
作用: 输出指定脚本的详细信息。
例子:

nmap --script-help=http-title

除了以上的用法,NSE还提供了调试模式,使得扫描过程更加直观和可控。使用方法如下:

  • nmap --script [脚本/匹配模式] -d [调试级别] --script-trace [IP地址/域名/CIDR]
    作用: 使用脚本扫描并开启调试模式,显示所有发送和接收的数据。其中,调试级别的范围是从0~9,数字越大,调试级别越高。
    例子:
nmap --script exploit -d 3 --script-trace 192.168.137.128

Nmap一直保持着NSE的脚本库更新,可以使用以下命令来更新NSE脚本库:

  • nmap --script-updatedb
    作用: 更新脚本库。
    例子:
$ nmap --script-updatedb         
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-04 22:05 EST
NSE: Updating rule database.
NSE: Script Database updated successfully.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.79 seconds
7.3 NSE脚本分类

我们进入到nmap/scripts目录下可以看到大量的脚本,而Nmap官方对这些脚本进行了分类,可以登录网址http://nmap.org/nsedoc查看,下面简单介绍一下:

  • auth
    auth类脚本主要用于执行身份验证(Authentication)相关的任务。这些脚本可以用于模拟登录、检查弱密码、测试认证机制等。
  • broadcast
    该类是与广播相关的用于网络发现和探测的脚本,这些脚本通常用于识别主机和服务。
  • brute

该类脚本通常用于执行暴力破解攻击,尝试通过尝试多个用户名和密码的组合来访问服务。这可以用于检测弱密码或测试系统的安全性。

  • default

该类是使用-sC或-A选项扫描时的默认脚本,提供基本脚本扫描能力

  • discovery

该类脚本主要用于网络发现和信息收集,帮助用户了解目标网络上的活动主机、服务和其他相关信息。

  • dos

该类脚本用于执行特定类型的拒绝服务(DoS)测试或在目标系统上引起资源耗尽。

  • exploit

该类脚本模拟漏洞利用的过程,对系统漏洞进行扫描,可用于检测和评估系统的安全性。

  • external

该类脚本会与外部系统或服务交互,进行信息收集、渗透测试等任务。

  • fuzzer

该类脚本用于模糊测试,通过发送异常数据包给目标,探测潜在的漏洞。

  • intrusive

这个分类的脚本属于入侵性脚本,因为它们可能导致系统或服务的一些异常行为,或者引发目标的IDS/IPS的记录或屏蔽。

  • malware

该类脚本用于检测与恶意软件相关的特征或行为,如探测目标是否感染了病毒或开启了后门等。

  • safe

该类包含一些不会对目标系统产生负面影响的脚本,用于信息收集和服务识别。

  • version

这个分类包含用于版本检测的脚本,它们旨在识别目标系统上运行的服务及其版本。

  • vuln

该类包含一些用于检测目标系统上已知漏洞的脚本,旨在评估系统的安全性。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细编译原理是计算机专业的一门核心课程,旨在编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细编译原理是计算机专业的一门核心课程,旨在编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细编译原理是计算机专业的一门核心课程,旨在编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细编译原理是计算机专业的一门核心课程,旨在编译程序构造的一般原理和基本
Nmap是一个常用的网络扫描工具,它可以帮助用户了解网络中的主机和服务情况,以及检测网络中可能存在的安全漏洞。以下是Nmap的一些常用用法: 1. 扫描单个主机:使用以下命令来扫描单个主机: ``` nmap <target> ``` 其中,`<target>`可以是IP地址或域名。 2. 扫描多个主机:使用以下命令来扫描多个主机: ``` nmap <target1> <target2> <target3> ``` 其中,`<target1>`、`<target2>`和`<target3>`可以是IP地址或域名。 3. 扫描整个子网:使用以下命令来扫描整个子网: ``` nmap <target>/24 ``` 其中,`<target>`为子网的IP地址前缀,`/24`表示掩码为255.255.255.0。 4. 扫描指定端口:使用以下命令来扫描指定端口: ``` nmap -p <port> <target> ``` 其中,`<port>`为需要扫描的端口号,`<target>`为需要扫描的目标主机。 5. 扫描常用端口:使用以下命令来扫描常用端口: ``` nmap -F <target> ``` 其中,`-F`表示只扫描常用端口。 6. 扫描所有端口:使用以下命令来扫描所有端口: ``` nmap -p- <target> ``` 其中,`-p-`表示扫描所有端口。 7. 扫描操作系统类型:使用以下命令来扫描目标主机的操作系统类型: ``` nmap -O <target> ``` 其中,`-O`表示扫描操作系统类型。 8. 扫描漏洞:使用以下命令来扫描目标主机存在的漏洞: ``` nmap --script vuln <target> ``` 其中,`--script vuln`表示扫描漏洞。 这些是Nmap的一些常用用法,还有很多其他的用法可以根据具体需要进行了解和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值