nmap使用教程

Nmap是一款强大的网络探测和安全审核工具,可用于主机发现、端口扫描、版本检测和系统指纹识别等。本文详细介绍了Nmap的安装、参数用法、扫描技巧和脚本扫描的应用,涵盖了从基础到高级的各种使用场景,包括扫描单个或多个目标、端口范围以及排除特定目标等。
摘要由CSDN通过智能技术生成


1. Nmap安装

Nmap下载地址

kali中自带Nmap,Windows中安装Nmap直接下载包后,傻瓜式安装即可,到nmap安装目录打开cmd即可使用命令行Nmap,kali中Nmap更新命令``apt-get install nmap`

2. Nmap介绍

Nmap是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、WAF识别及常见安全漏洞。它的图形化界面是Zenmap,分布式框架为DNmap

Nmap的特点如下所示:

  1. 主机探测:探测网络上的主机,如列出响应TCP和ICMP请求,开放特别端口的主机。
  2. 端口扫描:探测目标主机开发端口
  3. 版本检测:探测目标主机的网络服务,判断其服务名称及版本号。
  4. 系统检测:探测目标主机的操作系统及网络设备的硬件特性。
  5. 支持探测脚本的编写:使用Nmap的脚本引擎(NSE) 和Lua编程语言。

3. Nmap入门

3.1 Nmap相关参数的含义和用法

设置扫描目标时用到的相关参数,如下所示:

  • -iL:从文件中导入目标主机或目标网段。

  • -iR:随机选择目标主机。

  • –exclude:后面跟的主机或网段将不在扫描范围内。

  • –excludefile:导入文件中的主机或网段将不在扫描范围中。

主机发现方法相关的参数如下所示:

  • -sL:List Scan(列表扫描),仅列举指定目标的IP,不进行主机发现。
  • -sn:Ping Scan,只进行主机发现,不进行端口扫描。
  • -Pn:将所有指定的主机视作已开启,跳过主机发现的过程。
  • -PS/PA/PU/PY[portlist]:使用TCP SYN/ACK或SCTP INIT/ECHO方式来发现。
  • -PE/PP/PM:使用ICMP echo、timestamp、netmask请求包发现主机。
  • -PO[protocollist]:使用IP协议包探测对方主机是否开启。
  • -n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。
  • –dns-servers<serv1[,serv2],..>:指定DNS服务器。
  • –system-dns:指定使用系统的DNS服务器。
  • –traceroute:追踪每个路由节点。

常见的端口扫描方法相关的参数如下:

  • -sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scans的方式对目标主机进行扫描。
  • -sU:指定使用UDP扫描的方式确定目标主机的UDP端口状况。
  • -sN/sF/sX:指定使用TCP Null/FIN/Xmas scans秘密扫描的方式协助探测对方的TCP端口状态
  • –scanflags<flags>:定制TCP包的flags。
  • -sI<zombie host[:probeport]>:指定使用Idle scan的方式扫描目标主机(前提是需要找到合适的zombie host)。
  • -sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放情况。
  • -SO:使用IP protocol扫描确定目标机支持的协议类型。
  • -b<FTP relay host>:使用FTP bounce scan扫描方式。

端口参数与扫描顺序的设置相关的参数如下。

  • -p<port ranges>:扫描指定的端口。

  • -F:Fast mode(快速模式),仅扫描TOP 100的端口。

  • -r:不进行端口随机打乱的操作(如无该参数,Nmap会将要扫描的端口以随机顺序的方式进行扫描,让Nmap的扫描不易被对方防火墙检测到)。

  • –top-ports<number>:扫描开放概率最高的number个端口(Nmap的作者曾做过大规模的互联网扫描,以此统计网络上各种端口可能开放的概率,并排列出最有可能开放端口的列表,具体可以参见nmap-services文件。默认情 况下,Nmap会扫描最有可能的1000个TCP端口)。

  • –port-ratio <ratio>:扫描指定频率以上的端口。与上述–top-ports类似,这里以概率作为参数,概率大于–port-ratio的端口才被扫描。显然参数必须在0~1之间,想了解具体的概率范围可以查看nmap-services文件。

    > 与`版本侦测相关的参数`如下所示:
    
    - -sV:指定让Nmap进行版本侦测。
    - --version-intensity<level>:指定版本侦测的强度(0~9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
    - --version-light:指定使用轻量级侦测方式(intensity 2)。
    - --version-all:尝试使用所有的probes进行侦测(intensity 9)。
    - --version-trace:显示出详细的版本侦测过程信息。
    
3.2Nmap常用方法

扫描命令格式:Nmap+扫描参数+目标地址或网段。比如一次完整的Nmap扫描命令如下:

nmap -T4 -A -v ip
1. -A表示使用进攻性(Aggressive)方式扫描;
2. -T4表示指定扫描过程使用的时序(Timing),共有6个级别(0~5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通信状况良好的情况下推荐使用T4。
3. -v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,有助于让用户了解当前的扫描状态。 

4. Nmap扫描方法

有局域网192.168.1.1~192.168.1.254,桌面有文件targets.txt,其中包含有许多要扫描的地址

4.1 扫描单个目标
nmap 192.168.1.2
4.2 扫描多个目标地址
nmap 192.168.1.2 192.168.1.3
4.3 扫描一个范围内的目标地址
nmap 192.168.1.20-100
4.4 扫描目标地址所在的网段
nmap 192.168.1.1/24

如上扫描的地址是192.168.1.1~192.168.1.255

4.5 扫描主机列表targets.txt中的所有目标地址
nmap -iL C:\Users\YK\Desktop\targets.txt
4.6 扫描除某一个目标地址之外的所有目标地址
nmap 192.168.1.1/24 -exclude 192.168.1.3

如上扫描的地址是192.168.1.1~192.168.1.255除了192.168.1.3

4.7 扫描除某一个文件中目标地址之外的所有目标地址
nmap 192.168.1.1/24 -excludefile C:\Users\YK\Desktop\targets.txt
4.8 扫描某一目标地址端口21,22,23,80 端口
nmap 192.168.1.1 -p 21,22,23,80
4.9 对目标地址进行路由跟踪
nmap -traceroute 192.168.1.1
4.10 扫描目标地址所在的C段的在线情况
nmap -sP 192.168.1.1/24
4.11 目标地址的操作系统指纹识别
nmap -O 192.168.1.1
4.12 目标地址提供的服务版本检测
nmap -sV 192.168.1.1
4.13 探测防火墙状态
nmap -sF -T4 192.168.1.1

Nmap输出的是扫描列表,包括端口号,端口状态,服务名称,服务版本以及协议

Nmap端口状态及其协议:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ykk6gsW0-1679712044273)(…/…/picture/Nmap1.jpg)]

5. Nmap脚本使用(使用脚本扫描)

5.1脚本介绍

在kali中脚本在/usr/share/nmap/scripts文件夹下Nmap脚本主要分为如下几类

  • Auth:负责处理鉴权证书(绕过鉴权)的脚本。
  • Broadcast:在局域网内探查更多服务的开启情况,如DHCP/DNS/SQLServer等。
  • Brute:针对常见的应用提供暴力破解方式,如HTTP/SMTP等。
  • Default:使用-sC或-A选项扫描时默认的脚本,提供基本的脚本扫描能力。
  • Discovery:对网络进行更多信息的搜集,如SMB枚举、SNMP查询等。
  • Dos:用于进行拒绝服务攻击。
  • Exploit:利用已知的漏洞入侵系统。
  • External:利用第三方的数据库或资源。例如,进行Whois解析。
  • Fuzzer:模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞。
  • Intrusive:入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽。
  • Malware:探测目标机是否感染了病毒、开启后门等信息。
  • Safe:此类与Intrusive相反,属于安全性脚本。
  • Version:负责增强服务与版本扫描功能的脚本。
  • Vuln:负责检查目标机是否有常见漏洞,如MS08-067。
5.2 常用脚本

户还可根据需要设置–script=类别进行扫描,常用参数如下所示:

  • -sC/–script=default: 使用默认的脚本进行扫描。
  • –script=ripts>:使用某个脚本进行扫描。
  • –script-args=keyl=valuel,key2=value2 ·······:该参数用于传递脚本里的参数,key1是参数名,该参数对应value1这个值。如有更多的参数,使用逗号连接。
  • -script-args-file=filename:使用文件为脚本提供参数。
  • –script-trace:如果设置该参数,则显示脚本执行过程中发送与接收的数据。
  • –script-updatedb:在Nmap的scripts目录里有一个script.db文件,该文件保存了当前Nmap可用的脚本,类似于一个小型数据库,如果我们开启Nmap并调用了此参数,则Nmap会自行扫描scripts目录中的扩展脚本,进行数据库
5.3使用脚本扫描
1.鉴权扫描

对目标主机或者目标主机所在的网段进行应用弱口令检测

nmap --script=auth 192.168.1.1
2.暴力破解攻击

可对数据库,SMB,SNMP等进行简单的密码暴力猜解

nmap --script=brute 192.168.1.1
3.扫描常见的漏洞

检测目标主机或者目标主机所在的网段是否存在常见的漏洞

nmap --script=vuln 192.168.1.1
4.应用服务扫描

查看是否有常见的服务(如下以VNC服务为例 )

nmap --script=realvnc-auth-bypass 192.168.1.1
5.探测局域网内更多服务开启的情况
nmap -n -p 445 --script=broadcast 192.168.1.1
6.Whios解析

利用第三方数据库或者资源库查看目标地址信息

nmap --script external 192.168.1.1
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安全天天学

你的鼓励是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值