nmap参数详解

NMAP 定义

官方定义:https://nmap.org;
Nmap—网络探测工具和安全/端口扫描器;
Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具;
Nmap扫描结果可包括端口状态,使用协议,服务版本等指纹信息,甚至还可以提供目标主机的其他信息,例如反向域名,设备类型,MAC地址;
Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行;

nmap参数解释

目标说明

除了选项,所有出现在Nmap命令行上的都被视为对目标主机的说明。 最简单的情况是指定一个目标IP地址或主机名;
Nmap命令行接受多个主机说明,它们不必是相同类型;
虽然目标通常在命令行指定,下列选项也可用来控制目标的选择:

-iL (从列表中输入)
当主机多时,可使用此参数,后跟列表文件;
注:主机名接受格式(IP地址,主机名,CIDR,IPv6,或者八位字节范围),但每一项必须以一个或多个空格,制表符或换行符分开

-iR (随机选择目标)
一般使用某互联网范围的调查;
-iR 0 表示无休止的扫描,不推荐使用;

–exclude <host1[,host2][,host3],…> (排除主机/网络)
可搭配-iL 一起使用;
排除一些不想扫描的主机;

–excludefile (排除文件中的列表)
与–exclude功能一样;
只不过不需要在命令行输入多个主机,直接从文件获取即可;

主机发现

-Pn
使用 Nmap 进行网络扫描时,跳过主机发现阶段(即不进行 Ping 扫描);

-sL (列表扫描)
列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机, 不发送任何报文到目标主机;

-sP (Ping扫描)
该选项告诉Nmap仅仅 进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机;
仅此而已,不会再进行进一步的测试,比如端口扫描或者操作系统探测;
不过若防火墙位于运行Nmap的源主机和目标网络之间时, 推荐使用那些高级选项。否则,当防火墙捕获并丢弃探测包或者响应包时,一些主机就不能被探测到;

-P0 (无ping)
该选项完全跳过Nmap发现阶段;
第二个字符是数字0而不是字母O;
通常Nmap在进行高强度的扫描时用它确定正在运行的机器;
默认情况下,Nmap只对正在运行的主机进行高强度的探测如 端口扫描,版本探测,或者操作系统探测。用-P0禁止 主机发现会使Nmap对每一个指定的目标IP地址 进行所要求的扫描。所以如果在命令行指定一个B类目标地址空间(/16), 所有 65,536 个IP地址都会被扫描;

-PS [portlist] (TCP SYN Ping)
该选项发送一个设置了SYN标志位的空TCP报文
SYN标志位告诉对方您正试图建立一个连接;
如果端口关闭,则个RST (复位) 包会发回来;
如果端口开放,目标会进行TCP三步握手的第二步,回应 一个SYN/ACK TCP报文,然后运行Nmap的机器则会扼杀这个正在建立的连接, 发送一个RST而非ACK报文,所以不会和一般的ping一样有一个正常的tcp三次握手;

-PA [portlist] (TCP ACK Ping)
当一些主机防火墙封锁禁止了SYN的报文请求时,ACK的请求就刚好可以使用;
如果不指定端口,默认是31338(非常不常用);
ACK报文表示确认一个建立连接的尝试,但该连接尚未完全建立,所以远程主机正在运行,应该总是回应一个RST报文, 因为它们并没有发出过连接请求到运行Nmap的机器;

-PU [portlist] (UDP Ping)
它发送一个空的(除非指定了–data-length UDP报文到给定的端口;
如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口无法到达的回应报文,但是可以得出结论主机是在运行;
像主机/网络无法到达或者TTL超时则表示down掉的或者不可到达的主机这样的报错也是一样,虽然最后结果是不通,但是可以得出结论主机是在运行;
该扫描类型的主要优势是它可以穿越只过滤TCP的防火墙和过滤器;

-PE; -PP; -PM (ICMP Ping Types)
众所周知的ping程序发的报文请求;

-PR (ARP Ping)
最常见的Nmap使用场景之一是扫描一个以太局域网;

-n (不用域名解析)
告诉Nmap 永不对它发现的活动IP地址进行反向域名解析。 既然DNS一般比较慢,这可以让事情更快些;

-R (为所有目标解析域名)
告诉Nmap 永远 对目标IP地址作反向域名解析。 一般只有当发现机器正在运行时才进行这项操作;

–system-dns (使用系统域名解析器)
默认情况下,Nmap通过主机上配置的域名服务器来解析域名;
若想用自己的域名服务器,可使用此选择;

端口扫描结果状态

open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文
表示端口是开放的,主机也是up的;
对于攻击者来说,这就是一个入口,可以进行入侵测试;
对于防御者来说,这就是一个风险,需要立即修复;

closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听;
表示端口是关闭的,但是主机是up的;

filtered(被过滤的)
包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放;
一般是防火墙阻止了此端口的请求访问;
表示不确定端口是否开启;

unfiltered(未被过滤的)
只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态;
表示端口可访问,但Nmap不能确定它是开放还是关闭;

open|filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态;
表示不确定端口是否开启;

closed|filtered(关闭或者被过滤的)
Nmap不能确定端口是关闭的还是被过滤的;
表示不确定端口是否关闭;

端口扫描技术

-sS (TCP SYN扫描)
半开放扫描,不是一个完整的TCP连接;

-sT (TCP connect()扫描)
全连接扫描,当SYN扫描不能用时,CP Connect()扫描就是默认的TCP扫描;
耗费时间长点,目标机可能也会记录连接进而溯源捕获;

-sU (UDP扫描)
它可以和TCP扫描如 SYN扫描 (-sS)结合使用来同时检查两种协议;

-sN/sF/sX
使用TCP Null、FIN、Xmas(包含FIN、Push、Urgent)扫描;

-sI <zombie host[:probeport]>
僵尸机扫描;

–scanflags
自定义TCP扫描的flags;

-sY/sZ
使用SCTP协议的INIT/COOKIE-ECHO扫描;

-sO
进行IP协议扫描;

-b
指定FTP中继主机进行FTP反弹扫描;

端口说明和扫描顺序

-p
只扫描指定的端口;

–exclude-ports
排除指定的端口、不对其进行扫描;

-F
快速模式,扫描比默认端口数量更少的端口;

-r
有序地扫描端口而不是随机地扫描;

–top-ports
扫描排名指定的数字前几位的最常用的端口;

–port-ratio
扫描比输入的比例更常用的端口;

服务和版本探测

-sV
探测开启的端口来获取服务、版本信息;

–version-intensity
设置探测服务、版本信息的强度;

–version-light
强度为2的探测强度;

–version-all
强度为9的探测强度;

–version-trace
将扫描的具体过程显示出来;

脚本扫描

-sC
等同于–script=default

–script=
指定使用Lua脚本进行扫描

–script-args=<n1=v1,[n2=v2,…>
指定脚本的参数

–script-args-file=filename
指定提供脚本参数的文件

–script-trace
显示全部发送和收到的数据

–script-updatedb
更新脚本的数据库

–script-help=
显示脚本的相关信息

定时和性能

-T<0-5>
设置时序模块,越高越快

–min-hostgroup/max-hostgroup
指定最小、最大的并行主机扫描组大小

–min-parallelism/max-parallelism
指定最小、最大并行探测数量

–min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout
指定最小、最大的扫描往返时间

–max-retries
指定最大的重发扫描包的次数

–host-timeout
指定超时时间

–scan-delay/–max-scan-delay
指定每次探测延迟多长时间,即两次探测之间间隔多少时间

–min-rate
最小的发包速率

–max-rate
最大的发包速率

–max-rtt-timeout
每次探测的等待时间,以毫秒为单位,设置过低的 --max-rtt-timeout 值可能会导致过早的超时,从而错过一些响应较慢的目标主机。而过高的值则可能会增加扫描的总体时间

-host-timeout
设置扫描一台主机的总时间限制,该参数定义了在扫描特定主机时,Nmap愿意等待的最长时间。如果在这个时间限制内没有完成对该主机的扫描,Nmap将会放弃并继续扫描下一台主机

防火墙IDS绕过和欺骗

-f; --mtu
设置MTU最大传输单元

-D <decoy1,decoy2[,ME],…>
伪造多个IP地址和源地址一同发送包,从而隐藏在众多的IP地址中而不易被发现

-S <IP_Address>
伪造源地址

-e
使用指定的接口

-g/–source-port
使用指定的源端口

–proxies <url1,[url2],…>
指定代理服务器进行扫描

–data :
在发送包的数据字段中追加自定义的十六进制字符串

–data-string
在发送包的数据字段中追加自定义的ASCII字符串

–data-length
在发送包的数据字段中追加随机的数据

–ip-options
使用指定的IP选项发送包

–ttl
设置TTL值

–spoof-mac <mac address/prefix/vendor name>
伪造源Mac地址

–badsum
发送伪造TCP/UDP/SCTP校验和Checksum的数据包;

### Nmap 脚本参数详解及使用教程 Nmap 是一款功能强大的网络扫描工具,其脚本引擎(NSE)允许用户通过编写或调用 Lua 脚本来扩展功能。以下是关于 Nmap 脚本参数的详细说明和使用方法。 #### 1. 默认脚本扫描 Nmap 提供了 `-sC` 参数,等价于 `--script=default`,用于运行默认类别的脚本进行扫描[^1]。这些脚本通常是安全且高效的,适合初步的安全评估。 ```bash nmap -sC <target> ``` #### 2. 指定脚本类别或单个脚本 可以使用 `--script=<Lua scripts>` 参数指定某个或某类脚本进行扫描。支持通配符描述,例如: - 扫描所有与 HTTP 相关的脚本:`--script=http*` - 扫描漏洞检测相关的脚本:`--script=vuln` - 使用单个脚本:`--script=http-methods`[^2] 示例命令: ```bash nmap --script=http-methods <target> ``` #### 3. 传递脚本参数 某些脚本需要额外的参数才能正常工作,可以通过 `--script-args=<n1=v1,[n2=v2,...]>` 或 `--script-args-file=filename` 来提供参数[^3]。例如,为 `http-methods` 脚本指定自定义的 User-Agent: ```bash nmap --script=http-methods --script-args='http.useragent=MyCustomAgent' <target> ``` #### 4. 显示脚本执行数据 如果需要查看脚本执行过程中发送和接收的数据,可以使用 `--script-trace` 参数。这有助于调试和分析脚本行为。 ```bash nmap --script=http-methods --script-trace <target> ``` #### 5. 更新脚本数据库 为了确保使用的是最新版本的脚本,可以运行 `--script-updatedb` 参数更新脚本数据库[^1]。 ```bash nmap --script-updatedb ``` #### 6. 查看脚本帮助信息 通过 `--script-help=<scripts>` 参数可以获取特定脚本的帮助信息。例如,查看 `http-methods` 脚本的帮助: ```bash nmap --script-help=http-methods ``` #### 7. 脚本分类与命名规则 Nmap 的脚本按照功能分类,常见的分类包括: - `auth`: 处理身份验证 - `broadcast`: 网络广播 - `brute`: 暴力猜解 - `default`: 默认扫描 - `discovery`: 服务发现 - `dos`: 拒绝服务攻击 - `exploit`: 漏洞利用 - `fuzzer`: 模糊测试 - `intrusive`: 可能造成不良后果的扫描 - `malware`: 检测后门 - `safe`: 危害较小的扫描 - `version`: 版本识别 - `vuln`: 漏洞检测[^2] 脚本通常以服务名称作为前缀,例如: - HTTP 相关脚本:`http-*` - SSH 相关脚本:`ssh-*` - RPC 相关脚本:`rpc-*` #### 8. 示例:使用所有与 RPC 相关的脚本 通过通配符指定目标机器上的所有与 RPC 相关的脚本[^2]: ```bash nmap --script=rpc* <target> ``` #### 9. 注意事项 - **合法授权**:在实际环境中使用 Nmap 进行扫描时,必须确保已获得目标系统的合法授权[^3]。 - **性能优化**:某些脚本可能耗时较长,建议根据需求选择合适的脚本类别或单个脚本。 - **系统资源**:大规模扫描可能消耗大量系统资源,请合理配置扫描范围和参数--- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值