Nmap是一款功能强大的网络扫描工具,具有各种选项和功能。以下是帮助摘要中提到的一些关键特性和选项的概述:
nmap下载地址:
https://nmap.org/download#windows
Nmap 7.93 ( https://nmap.org ) 是Nmap的版本信息和官方网站链接。
Nmap的用法如下:
```
nmap [扫描类型] [选项] {目标说明}
```
目标说明可以是主机名、IP地址、网络等。例如:scanme.nmap.org、microsoft.com/24、192.168.0.1;10.0.0-255.1-254。
其他选项包括:
- -iL <输入文件名>:从主机/网络列表文件中读取输入
- -iR <主机数量>:随机选择目标
- --exclude <主机1[,主机2][,主机3],...>:排除指定的主机/网络
- --excludefile <排除文件>:从文件中读取排除列表
主机发现是Nmap中用于确定目标主机的选项。以下是一些主机发现的选项:
- -sL: 列出扫描目标 - 仅简单列出要扫描的目标
- -sn: Ping扫描 - 禁用端口扫描,只进行Ping检测
- -Pn: 将所有主机视为在线 - 跳过主机发现过程
- -PS/PA/PU/PY[portlist]: 对指定端口进行TCP SYN/ACK、UDP或SCTP探测
- -PE/PP/PM: ICMP回显、时间戳和子网掩码请求探测
- -PO[protocol list]: IP协议Ping
- -n/-R: 永不进行DNS解析/始终解析 [默认: 有时进行解析]
- --dns-servers <serv1[,serv2],...>: 指定自定义DNS服务器
- --system-dns: 使用操作系统的DNS解析器
- --traceroute: 对每个主机进行跟踪路由路径
扫描技术是Nmap中用于执行不同类型扫描的选项。以下是一些常用的扫描技术:
- -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon扫描
- -sU: UDP扫描
- -sN/sF/sX: TCP Null、FIN和Xmas扫描
- --scanflags <flags>: 自定义TCP扫描标志
- -sI <zombie host[:probeport]>: 闲置扫描
- -sY/sZ: SCTP INIT/COOKIE-ECHO扫描
- -sO: IP协议扫描
- -b <FTP relay host>: FTP反弹扫描
这些选项允许您选择不同的扫描技术和扫描方法来探测目标主机的开放端口、服务和操作系统信息。您可以根据需要选择适当的扫描技术。
通过使用这些选项之一,可以选择不同的主机发现方法和探测技术来确定目标主机的可达性和在线状态。
端口规范和扫描顺序是关于Nmap中端口扫描的选项。以下是相关选项的说明:
- -p <port ranges>: 仅扫描指定的端口范围
例如:-p22;-p1-65535;-p U:53,111,137,T:21-25,80,139,8080,S:9
- --exclude-ports <port ranges>: 从扫描中排除指定的端口
- -F: 快速模式 - 扫描比默认扫描更少的端口
- -r: 顺序扫描端口 - 不随机顺序
- --top-ports <number>: 扫描最常见的<number>个端口
- --port-ratio <ratio>: 扫描比<ratio>更常见的端口
这些选项允许您指定要扫描的端口范围、排除特定的端口、选择快速扫描模式、指定扫描顺序以及基于常见性扫描端口。您可以根据需求使用这些选项来定制端口扫描。
服务/版本检测是关于Nmap中的服务和版本识别选项。以下是相关选项的说明:
- -sV: 探测开放端口以确定服务和版本信息
- --version-intensity <level>: 设置探测强度级别,范围从0(轻量级)到9(尝试所有探测)
- --version-light: 限制为最可能的探测(强度2)
- --version-all: 尝试每个单独的探测(强度9)
- --version-trace: 显示详细的版本扫描活动(用于调试)
使用这些选项可以探测目标主机上开放端口的服务和版本信息。您可以根据需求设置探测强度级别,并选择相应的探测模式,以获得所需的详细程度和准确性。
脚本扫描是关于Nmap中的脚本扫描选项。以下是相关选项的说明:
- -sC: 等效于 --script=default,执行默认的脚本扫描
- --script=<Lua scripts>: <Lua scripts> 是一个逗号分隔的目录、脚本文件或脚本类别的列表
- --script-args=<n1=v1,[n2=v2,...]>: 为脚本提供参数
- --script-args-file=filename: 从文件中提供NSE脚本参数
- --script-trace: 显示发送和接收的所有数据
- --script-updatedb: 更新脚本数据库
- --script-help=<Lua scripts>: 显示有关脚本的帮助信息
<Lua scripts> 是一个逗号分隔的脚本文件或脚本类别列表。
使用这些选项可以执行自定义的脚本扫描。您可以指定要执行的脚本,提供脚本所需的参数,查看脚本的帮助信息,并更新脚本数据库。脚本扫描可用于执行各种自动化任务,例如漏洞扫描、服务识别和安全评估。
OS检测是关于Nmap中的操作系统检测选项。以下是相关选项的说明:
- -O: 启用操作系统检测功能
- --osscan-limit: 限制操作系统检测仅针对有希望的目标进行
- --osscan-guess: 更积极地猜测操作系统
使用这些选项可以帮助识别目标主机的操作系统。Nmap通过分析目标主机的网络响应和特征来尝试推断目标主机正在运行的操作系统类型和版本。操作系统检测可以提供关于目标主机的有用信息,例如弱点和安全配置的相关性。通过使用--osscan-limit选项,您可以限制操作系统检测仅针对那些有可能提供准确结果的目标进行,以提高扫描效率。而使用--osscan-guess选项可以更积极地猜测目标主机的操作系统,但这可能会增加误报的风险。
关于Nmap中的计时和性能选项的说明如下:
- Options which take <time> are in seconds, or append 'ms' (milliseconds), 's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
- 这些选项中接受<time>参数的时间单位可以是秒,也可以在值后附加'ms'(毫秒)、's'(秒)、'm'(分钟)或'h'(小时)(例如,30m表示30分钟)。
- -T<0-5>: 设置计时模板(数值越高扫描速度越快)
- --min-hostgroup/max-hostgroup <size>: 并行主机扫描组大小
- --min-parallelism/max-parallelism <numprobes>: 并行探测数量
- --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: 指定探测往返时间
- --max-retries <tries>: 设置端口扫描探测的最大重试次数
- --host-timeout <time>: 在指定的时间后放弃目标主机的扫描
- --scan-delay/--max-scan-delay <time>: 调整探测之间的延迟时间
- --min-rate <number>: 每秒发送的数据包速率不低于<number>
- --max-rate <number>: 每秒发送的数据包速率不高于<number>
通过调整这些选项,您可以根据需要平衡Nmap扫描的速度和性能。您可以选择合适的计时模板(-T<0-5>),设置并行扫描组大小和并行探测数量,调整探测往返时间和重试次数,设置主机超时时间以及控制扫描之间的延迟和数据包发送速率。这些选项可以帮助您根据网络环境和扫描需求进行优化,并提高扫描的效率和准确性。
关于Nmap中的防火墙/入侵检测系统(IDS)规避和欺骗选项的说明如下:
- -f; --mtu <val>: 分片数据包(可选择使用给定的MTU)
- -D <decoy1,decoy2[,ME],...>: 用伪装地址进行扫描
- -S <IP_Address>: 伪造源地址
- -e <iface>: 使用指定的接口
- -g/--source-port <portnum>: 使用给定的端口号
- --proxies <url1,[url2],...>: 通过HTTP/SOCKS4代理中继连接
- --data <hex string>: 向发送的数据包附加自定义负载
- --data-string <string>: 向发送的数据包附加自定义ASCII字符串
- --data-length <num>: 向发送的数据包附加随机数据
- --ip-options <options>: 发送具有指定IP选项的数据包
- --ttl <val>: 设置IP的生存时间字段
- --spoof-mac <mac address/prefix/vendor name>: 伪造MAC地址
- --badsum: 发送具有虚假TCP/UDP/SCTP校验和的数据包
通过使用这些选项,您可以在扫描中使用各种技术来规避防火墙和入侵检测系统的检测。您可以选择分片数据包、使用伪装地址、伪造源地址、指定接口、使用代理进行连接中继等等。此外,您还可以向发送的数据包附加自定义负载、字符串或随机数据,发送具有特定IP选项和生存时间字段的数据包,以及伪造MAC地址和发送具有虚假校验和的数据包。这些选项可用于模拟不同类型的网络流量,并使扫描更难以被检测或干扰。请注意,在使用这些选项时要遵循适用法律和道德准则,并仅在合法授权和控制下使用。
关于Nmap中的输出选项的说明如下:
- -oN/-oX/-oS/-oG <file>: 将扫描结果分别以普通文本、XML、脚本和Grepable格式输出到指定的文件中。
- -oA <basename>: 同时以三种主要格式输出扫描结果。
- -v: 增加详细程度级别(使用 -vv 或更高级别获得更详细的输出)。
- -d: 增加调试级别(使用 -dd 或更高级别获得更详细的调试信息)。
- --reason: 显示端口处于特定状态的原因。
- --open: 只显示开放(或可能开放)的端口。
- --packet-trace: 显示所有发送和接收的数据包。
- --iflist: 打印主机接口和路由信息(用于调试)。
- --append-output: 追加而不是覆盖指定的输出文件。
- --resume <filename>: 恢复中断的扫描。
- --noninteractive: 禁用通过键盘进行交互的运行时操作。
- --stylesheet <path/URL>: 使用XSL样式表将XML输出转换为HTML。
- --webxml: 引用Nmap官方提供的XSL样式表,以获得更便携的XML输出。
- --no-stylesheet: 防止将XSL样式表与XML输出关联。
这些选项允许您根据需要将扫描结果以不同的格式输出到文件中。您可以选择普通文本、XML、脚本和Grepable格式,并且还可以同时将结果以三种格式输出。通过增加详细程度级别和调试级别,您可以获得更详细的输出和调试信息。其他选项可以控制显示开放端口、显示数据包跟踪信息、打印主机接口和路由信息,以及进行输出文件的追加和恢复等操作。还可以使用XSL样式表将XML输出转换为HTML,并引用Nmap官方提供的样式表以获得更便携的XML输出。
关于Nmap中的其他选项的说明如下:
- -6: 启用IPv6扫描,允许扫描IPv6网络和目标。
- -A: 启用OS检测、版本检测、脚本扫描和跟踪路由功能。该选项将执行更全面的扫描和信息收集。
- --datadir <dirname>: 指定自定义的Nmap数据文件位置。您可以将Nmap所需的数据文件放置在指定的目录中。
- --send-eth/--send-ip: 使用原始以太网帧或IP数据包发送扫描请求。这些选项可以影响扫描的网络层级别。
- --privileged: 假设用户具有完全特权。这将使Nmap能够使用更多的特权操作,例如原始套接字访问。
- --unprivileged: 假设用户缺乏原始套接字权限。这将限制Nmap的某些功能,以适应非特权用户。
- -V: 打印Nmap的版本号。
- -h: 打印帮助摘要页面,显示Nmap的选项和说明。
这些选项提供了一些其他功能和配置选项。您可以启用IPv6扫描,执行更全面的扫描和信息收集,指定自定义的数据文件位置,选择发送扫描请求的网络层级别,以及根据特权和权限要求调整Nmap的行为。还可以打印Nmap的版本号和帮助摘要页面,以获取更多信息和指导。
以下是一些Nmap的使用示例:
1. 执行全面扫描,并启用OS检测、版本检测、脚本扫描和跟踪路由功能:
```
nmap -v -A scanme.nmap.org
```
2. 执行Ping扫描,对两个网络范围内的主机进行扫描:
```
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
```
3. 执行随机选择的10000个主机的端口80的扫描,禁用主机发现和Ping扫描:
```
nmap -v -iR 10000 -Pn -p 80
```
请注意,这些示例仅展示了一小部分Nmap的功能和用法。如果您需要了解更多选项和示例,请参阅Nmap的官方文档中的手册页面(https://nmap.org/book/man.html)。 |